Data.
Akashic publishes 21,930 static geography records across 13 families, each backed by a stable JSON file at a stable URL. They are free to read without an API key, permissively licensed (CC BY 4.0), deterministically regenerated, hashed, and traceable to first-source releases.
Endpoints
One file per geography. The geo_id segment is the same identifier used in the URL of that geography’s human-readable page on this site (the county FIPS, the state postal abbreviation, the CBSA code, etc.) so any link can be translated by hand.
| URL pattern | Geography | Count | Example |
|---|---|---|---|
/data/per_nation/{id}.json | The United States national rollup. | 1 | /data/per_nation/us.jsonUnited States |
/data/per_region/{slug}.json | The four Census regions. | 4 | /data/per_region/midwest.jsonMidwest |
/data/per_division/{slug}.json | The nine Census divisions. | 9 | /data/per_division/middle-atlantic.jsonMiddle Atlantic |
/data/per_state/{abbr}.json | The 50 states plus the District of Columbia. | 51 | /data/per_state/IL.jsonIllinois |
/data/per_county/{fips}.json | US counties and county equivalents, including the Connecticut planning regions used for current ACS reporting. | 3,143 | /data/per_county/10003.jsonNew Castle County, Delaware |
/data/per_cbsa/{code}.json | Census metropolitan and micropolitan statistical areas. | 918 | /data/per_cbsa/16980.jsonChicago–Naperville–Elgin metro area |
/data/per_csa/{code}.json | Combined statistical areas. | 180 | /data/per_csa/176.jsonChicago–Naperville combined statistical area |
/data/per_city/{geoid}.json | Published incorporated places and census-designated places in the static atlas. | 10,192 | /data/per_city/0455000.jsonPhoenix, Arizona |
/data/per_dma/{id}.json | Nielsen Designated Market Areas (television markets). | 208 | /data/per_dma/602.jsonChicago DMA |
/data/per_cd/{geoid}.json | Congressional districts for the current published district vintage. | 435 | /data/per_cd/1701.jsonIllinois 1st Congressional District |
/data/per_sld_upper/{geoid}.json | State legislative upper-chamber districts. | 1,942 | /data/per_sld_upper/17001.jsonIllinois Senate District 1 |
/data/per_sld_lower/{geoid}.json | State legislative lower-chamber districts. | 4,833 | /data/per_sld_lower/17001.jsonIllinois House District 1 |
/data/per_amnat/{slug}.json | Akashic’s American Nations cultural-region rollups. | 14 | /data/per_amnat/deep-south.jsonDeep South |
The catalog is checked against the shipped /data/_index.json at test time: adding or removing a published family without updating this page fails CI.
On-demand (Worker-served)
The static set above covers every geography family currently published in/data/per_*. A separate long tail of roughly 31,600 US Census places (including incorporated places, CDPs, and towns) is rendered on demand at https://akashic.app/place/{geo_id} and cached at the edge. Request Accept: application/json for the machine-readable response; otherwise the endpoint returns the human-readable place page. User-created custom Places use their own authenticated and share APIs.
Schema
One JSON file per geography. All published geography families share a common envelope (geo_type, name, parent geography fields, elections, demographics,similar_* rows, narrative, source citations); tier-specific fields layer in on top (a county has seat and hero_image; a CBSA has constituent_counties; a CD has representative and allocation_factor).
The canonical TypeScript shape lives at lib/types.ts in the repo; the runtime guarantee is the Zod schema in the same file. A representative sample, from /data/per_county/10003.json (New Castle County, Delaware), trimmed for length:
{
"fips": "10003",
"geo_type": "county",
"name": "New Castle County",
"state": "Delaware",
"state_abbr": "DE",
"region": "the Mid-Atlantic",
"wikipedia_title": "New_Castle_County,_Delaware",
"geography": {
"area_sq_mi": 426.3,
"centroid": { "lat": 39.578, "lng": -75.639 }
},
"elections": [
{ "year": 1892, "dem": null, "rep": null, "other": null,
"total": null, "margin": null, "winner": "N" },
{ "year": 1908, "dem": 12964, "rep": 14979, "other": 701,
"total": 28644, "margin": -0.0703, "winner": "R" },
{ "year": 2024, "dem": 180568, "rep": 90768, "other": 3824,
"total": 275160, "margin": 0.3264, "winner": "D" }
],
"similar_counties": [
{ "fips": "26065", "name": "Ingham County", "state": "Michigan",
"state_abbr": "MI", "similarity": 1.0 }
],
"demographics": {
"totalPopulation": 577961,
"medianHouseholdIncome": 84800,
"races": [ ... ],
"age": [ ... ],
"education": { ... }
},
"sources": {
"elections_through": 2024,
"acs_release": "2024 5-year",
"religion_census": "2020"
}
}Field reference
geo_type- One of the 13 published geography keys listed above. The Worker-served long tail uses
place. elections[*].margin- D-vs-R partisan margin:
(dem − rep) / total. A decimal in[−1.0, +1.0], positive for Democratic, negative for Republican. Drives the sparkline, similarity vectors, and narrative prose. elections[*].winner- True plurality winner among D / R / O. Differs from
marginin strong third-party years: 1892 Populist counties, 1912 Bull Moose, 1924 La Follette, 1948 Dixiecrat, 1968 Wallace. similar_counties[*].similarity- The twin score as a decimal in
[0, 1]— a weighted cosine between tier-standardized fingerprints (2000–2024 presidential trajectory with 12-yr trend and elasticity, ACS demographics, top ancestry shares, religious adherence; methodology on /twins). Engine-era entries also carry optionalcontributions(the closest-shared dimensions, each with its σ gapdz) anddiffersOn(the largest gap ≥1σ); older payloads baked before the engine hold a margins-only cosine of the last 10 cycles with neither field. sources- As-of dates for each upstream feed.
elections_throughis the most recent presidential cycle included;acs_releaseis the 5-year ACS vintage;religion_censusis the Association of Statisticians of American Religious Bodies release.
Bulk archives
Per-place JSON is convenient for one-off lookups; for analysis at scale, use the bulk archives. Each archive is a single gzipped file, deterministically built from the same source, with a version-stamped filename so a citation never points at a moving target.
/data/exports/v2026.05/akashic-elections-2024.csv.gz— every county × every year × D/R/O/total, long format. One row per (fips, year)./data/exports/v2026.05/akashic-demographics-2024-acs.csv.gz— wide-format ACS variables per county. Education, income, age, race, language, household composition./data/exports/v2026.05/akashic-religion-2020-asarb.csv.gz— religious adherence per place, from the 2020 US Religion Census (ASARB). Non-commercial / educational / research use only — unlike the other archives this file is not CC BY 4.0; please cite ASARB.
Each release builds via npm run data:csv. The version segment is v{year}.{month}; older versions stay available indefinitely.
License + citation
Akashic’s original content (the narrative prose, the headline templates, the similarity vectors) is licensed CC BY 4.0. Upstream sources keep their own licenses, listed in ATTRIBUTION.txt.
Every place page renders a Cite this page widget in APA / MLA / Chicago / BibTeX. For dataset citations:
Akashic (2026). akashic-elections-2024 [Data set].
https://akashic.app/data/exports/v2026.05/
akashic-elections-2024.csv.gzStability + freshness
- URLs are permanent. A page that resolves today resolves on every future build. Geographies don’t get removed when they redistrict; they get a
valid_throughstamp and a successor link. - Schema is additive. New fields can appear in a build; existing fields don’t change meaning or get removed. Field renames go through a one-cycle deprecation window with both old and new fields populated.
- Freshness lives at /api/data-freshness. Source-by-source as-of dates, regenerated on every build.
- Versioned bulk archives are immutable. Reproducing a paper’s figures in 2030 against the
v2026.05archive returns the same numbers it did in 2026.
Conventions
- FIPS code padding. County FIPS are always 5 digits, state FIPS always 2 digits, padded with leading zeros.
01001not1001. - Null vs zero. A missing value is
null; a measured zero is0. Pre-1928 election rows are mostlynullbecause the underlying source (MIT Election Lab) doesn’t cover earlier cycles. - Hispanic ethnicity overlaps race. Race shares plus Hispanic/Latino can exceed 100% in heavily Hispanic counties — Hispanic is an ACS ethnicity, not a separate race. See methodology.
See also
Consuming these files programmatically? The API & developers page documents the JSON endpoints and retrieval conventions. Publishing with this data? The creator kit has ready-made angles and citation formats, and the embed widgets put a live figure in your page.