{
  "fields": [{"id":"_id","type":"int"},{"id":"field_name","type":"text","info":{"label":"Field name","notes":"Name of the variable in the consolidated dataset.","type_override":"text"}},{"id":"label","type":"text","info":{"label":"Variable label","notes":"Human-readable label for the variable.","type_override":"text"}},{"id":"description","type":"text","info":{"label":"Variable description","notes":"Definition and interpretation of the variable.","type_override":"text"}},{"id":"type","type":"text","info":{"label":"Data type","notes":"Declared data type for the variable.","type_override":"text"}},{"id":"format","type":"text","info":{"label":"Format","notes":"Expected representation, encoding, or coordinate/reference format.","type_override":"text"}},{"id":"unit","type":"text","info":{"label":"Unit","notes":"Unit of measurement, when applicable.","type_override":"text"}},{"id":"allowed_values","type":"text","info":{"label":"Allowed values","notes":"Enumerated values observed or allowed for the variable.","type_override":"text"}},{"id":"missing_values","type":"text","info":{"label":"Missing values","notes":"Values interpreted as missing.","type_override":"text"}},{"id":"required","type":"text","info":{"label":"Required field","notes":"Indicates whether the field is expected to be non-missing.","type_override":"text"}},{"id":"example","type":"text","info":{"label":"Example","notes":"Representative example value.","type_override":"text"}},{"id":"total_count","type":"text","info":{"label":"Total count","notes":"Total number of records evaluated for the field.","type_override":"text"}},{"id":"missing_count","type":"text","info":{"label":"Missing count","notes":"Number of missing values observed for the field.","type_override":"text"}},{"id":"non_missing_count","type":"text","info":{"label":"Non-missing count","notes":"Number of non-missing values observed for the field.","type_override":"text"}},{"id":"max_length","type":"text","info":{"label":"Maximum length","notes":"Maximum observed character length.","type_override":"text"}},{"id":"source","type":"text","info":{"label":"Source","notes":"Origin or category of the field.","type_override":"text"}},{"id":"notes","type":"text","info":{"label":"Notes","notes":"Additional interpretation or provenance notes.","type_override":"text"}},{"id":"sensitivity","type":"text","info":{"label":"Sensitivity","notes":"Responsible-use or sensitivity classification.","type_override":"text"}},{"id":"analytical_role","type":"text","info":{"label":"Analytical role","notes":"Suggested analytical role of the field.","type_override":"text"}},{"id":"public_use_guidance","type":"text","info":{"label":"Public-use guidance","notes":"Guidance for responsible public use of the field.","type_override":"text"}}],
  "records": [
    [1,"date","File date","Date associated with the original daily CSV file, derived from the filename in ISO 8601 format.","date","YYYY-MM-DD","day",null,"empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","2020-09-18","80582452","0","80582452","10","curation","Added during consolidation for source-file traceability. It is not a substitute for the UTC ping timestamp.","low","traceability","Use for grouping or auditing source files; use timestamp for the actual ping time."],
    [2,"source_file","Source daily file","Original daily CSV filename from which the record was read.","string",null,"file name",null,"empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","2020-09-18.csv","80582452","0","80582452","14","curation","Added during consolidation to preserve record-level provenance.","low","traceability","Use to trace any row back to its daily source file."],
    [3,"unnamed_column_1","Original unnamed column","Original unlabeled integer column preserved from the source export. It appears to function as a row index or source-export sequence field.","integer",null,"index-like value",null,"empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","1","80582452","0","80582452","7","source_export","Preserved for fidelity to the received files. It should not be interpreted as a scientific mobility variable.","low","technical provenance","Do not use as a person, device, spatial, or temporal identifier."],
    [4,"id_adv","Device identifier","Persistent alphanumeric identifier associated with a mobile device in the source data. It links pings generated by the same device over time.","string",null,"identifier",null,"empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","8d3181f40e52d405f99172286dd888be248acefc858de5a328fc17ca53524345","80582452","0","80582452","64","source_csv","The related publication reports 306,963 device identifiers. The identifier is not a direct personal name, but it enables longitudinal mobility analysis and must be treated as sensitive.","high","longitudinal linkage","Use only for scientific mobility analysis. Do not attempt re-identification, profiling, contact, or inference of personal routines."],
    [5,"timestamp","Ping timestamp","Date and time when the ping was recorded, expressed in UTC.","datetime","YYYY-MM-DD HH:MM:SS","UTC time",null,"empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","2020-09-18 11:52:18","80582452","0","80582452","19","source_csv","Convert to UTC−07:00 for Hermosillo local time analyses. In pandas, Etc/GMT+7 corresponds to UTC−07:00. The file date and timestamp are distinct concepts.","high","temporal observation","Use with care in combination with id_adv and coordinates. Avoid publishing fine-grained examples linked to a device."],
    [6,"lat","Latitude","GPS latitude of the ping in decimal degrees, using WGS84 geographic coordinates (EPSG:4326).","number","decimal degrees; WGS84 / EPSG:4326","degrees north",null,"empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","29.079231","80582452","0","80582452","16","source_csv","The related study reports latitude values approximately ranging from 28.9753 to 29.1960. Coordinates are GPS observations, not deterministic proof of exact physical presence.","high","spatial observation","Aggregate to appropriate spatial units for publication of derived results. Avoid exposing device-level trajectories in examples."],
    [7,"lon","Longitude","GPS longitude of the ping in decimal degrees, using WGS84 geographic coordinates (EPSG:4326).","number","decimal degrees; WGS84 / EPSG:4326","degrees east/west",null,"empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","-110.999886","80582452","0","80582452","17","source_csv","The related study reports longitude values approximately ranging from -111.1002 to -110.8457. Coordinates are GPS observations, not deterministic proof of exact physical presence.","high","spatial observation","Aggregate to appropriate spatial units for publication of derived results. Avoid exposing device-level trajectories in examples."],
    [8,"gender","Gender category","Gender category associated with the device or user profile in the original source data.","string",null,"category","female | male","empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","male","80582452","0","80582452","6","source_csv","Source-provided categorical attribute; not independently verified by the dataset curators.","medium","demographic covariate","Use as a categorical source attribute and document any filtering or stratification based on this field."],
    [9,"country","Country code","Country code associated with the device or user profile in the original source data; it is not a spatial observation field.","string","ISO 3166-1 alpha-2 style code","category","AR | BR | CL | CN | CO | ES | GT | JO | MX | PE | US","empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","MX","80582452","0","80582452","2","source_csv","The observed values are two-letter country codes. The field is source-provided and should not be interpreted as the geographic location of the ping.","medium","demographic/source covariate","Use as a categorical source attribute. Most records are expected to correspond to Mexico in this Hermosillo dataset."],
    [10,"age","Age group","Age band associated with the device or user profile in the original source data.","string",null,"age band","12-17 | 18-25 | 26-40 | 41-55 | >55","empty string | N/A | NA | NULL | NaN | None | nan | none | null","True",">55","80582452","0","80582452","5","source_csv","Source-provided categorical attribute; not independently verified by the dataset curators.","medium","demographic covariate","Use as a categorical age-band variable; do not infer exact age."],
    [11,"income_level","Income level category","Provider-assigned income-level category associated with the device or user profile.","string",null,"category","income_A | income_B | income_C | income_D | income_E","empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","income_A","80582452","0","80582452","8","source_csv","Observed values use codes income_A through income_E. The public release does not include a provider-authenticated interpretation scale for these codes; treat them as categorical labels unless independently justified.","medium","socioeconomic covariate","Use as categorical source codes. Avoid imposing ordinal or monetary interpretation without additional documentation."],
    [12,"tier1","Tier 1 category","Provider-assigned top-level audience, interest, or behavioral taxonomy code(s) associated with the device or source record.","string","pipe-delimited categorical codes","category code(s)",null,"empty string | N/A | NA | NULL | NaN | None | nan | none | null","False","IAB14","80582452","18960066","61622386","59","source_csv","Values may contain one or more pipe-delimited category codes such as IAB-like labels. The precise public taxonomy version is not distributed with this release.","medium","categorical source attribute","Treat as categorical codes. Report any mapping or recoding used in derived analyses."],
    [13,"tier2","Tier 2 category","Provider-assigned second-level audience, interest, or behavioral taxonomy code(s) associated with the device or source record.","string","pipe-delimited categorical codes","category code(s)",null,"empty string | N/A | NA | NULL | NaN | None | nan | none | null","False","IAB1_1","80582452","23551469","57030983","89","source_csv","Values may contain one or more pipe-delimited category codes. The precise public taxonomy version is not distributed with this release.","medium","categorical source attribute","Treat as categorical codes. Report any mapping or recoding used in derived analyses."],
    [14,"file","Source export partition file","Technical source-export partition filename associated with the record in the original data export or storage process.","string",null,"file name",null,"empty string | N/A | NA | NULL | NaN | None | nan | none | null","True","part-00141-a2a8b706-66db-4d25-b080-905c96c1e653-c000.csv","80582452","0","80582452","56","source_export","Preserved from the source files for provenance. It is distinct from the curation field source_file.","low","technical provenance","Use for auditability of source partitions; not a scientific mobility variable."],
    [15,"IDL","Original territorial label","Original territorial or inclusion label preserved from the source export. The observed non-missing value is HERMOSILLO.","string",null,"category","HERMOSILLO","empty string | N/A | NA | NULL | NaN | None | nan | none | null","False","HERMOSILLO","80582452","73966095","6616357","10","source_export","This field is highly incomplete and should not be used as the sole indicator of spatial coverage. Use coordinates and source-file metadata for spatial/temporal filtering.","low","technical/source label","Treat as a source tag. Do not assume missing values imply absence from Hermosillo."]
]}
