Why include the lookup table in the client code? If you're just mapping (CPU, resolution) to a model, why not just send that tuple to your analytics framework and look it up when displaying? Doing the lookup on the client code means every client has to download the table, and you have to blow away their cached copy whenever you come up with an improvement in the mapping. Limiting it to iDevices certainly makes this table smaller, but I feel like that's a starting off point only... real websites are going to want data about other platforms.