← Chronogaia: back to the map

Data provenance

In short: radiocarbon dates from open compilations (CalPal, aDRAC, SARD, p3k14c), calibrated with IntCal20 / SHCal20, grouped into sites, with outliers and contested dates flagged. Seven African sites are entered from the literature with approximate ranges and are marked as such. The extent is a drawing heuristic, not a fitted diffusion model.

This describes the two prototype layers. The rules below now live in pipeline/src/chronogaia/ (layers/neolithic.py, layers/africa.py and transforms/). It was written when the build ran in a network-restricted cloud sandbox, which is why CalPal stands in for RADON. Several of those sources are reachable now; see notes/design.md section 3.

The network databases named in the original plan (RADON, RADON-B, XRONOS) could not be reached from the build environment. Instead, the data comes from open radiocarbon compilations mirrored on GitHub, the same sources the c14bazAAR R package uses. The pipeline downloads them (pinned by commit and checksum), filters them and calibrates them. just data reproduces web/public/data/*.geojson exactly.

Source Used for Citation / licence
CalPal database, 2020-08-20 snapshot (nevrome/CalPal-Database) All Neolithic sites; Khartoum Neolithic, Nabta Playa and Tilemsi pastoral sites Weninger, B. et al., CalPal radiocarbon database. It covers Near East, Europe and North Africa, and records culture attributions.
aDRAC v2 (dirkseidensticker/aDRAC) Central African farming villages (by pottery style), iron (slag, tuyère or iron object found with the date), caprines, Great Lakes sites Seidensticker & Hubau 2021; Seidensticker et al. 2021, Sci. Adv. 7:eabd8352. ODbL.
SARD (emmaloftus/Southern-African-Radiocarbon-Database) Southern African Early Iron Age; direct dates on domestic sheep and cattle Loftus, Mitchell & Bronk Ramsey 2019, Antiquity 93:870
p3k14c 2025.07 (people3k/p3k14c) Nigerian iron-smelting furnaces (Nok region), Taruga Bird et al. 2022, Sci. Data 9:27. This is the "scrubbed and fuzzed" release, so coordinates are flagged as approximate.
Literature (pipeline/curated/africa_literature.csv) 7 key sites the databases lack (Takarkori, Gobero, Lothagam North, Luxmanda, Kwale, Katuruka, Meroë) The publication is cited on each row. These entries use approximate published date ranges and approximate coordinates, and every row is flagged.
IntCal20 / SHCal20 (via rcarbon) Calibration Reimer et al. 2020; Hogg et al. 2020
Natural Earth 1:50m land, lakes, rivers Offline base map Public domain

Nothing in the data files is invented. Every site comes from one of the databases above or from a cited publication. Where this map's compiler added an interpretation the database lacks, such as calling the Rwandan and Burundian furnace sites "Urewe region Early Iron Age", the site carries the attribution_by_compiler flag and its popup says so.

Processing

  1. Calibration. Every date is calibrated in the script: IntCal20 north of the equator, SHCal20 south of it. Each date gets a median and a 95% range. Years are given as calendar years, BC negative, with no year 0 (1 BC is −1): year = 1950 − cal BP for AD dates and 1949 − cal BP for BC dates.
  2. Date filters. Dates are dropped if their standard deviation is above 200 years (250 for Africa), or if they were measured on shell, marine material, sediment, humic acid, bulk organics or food crusts (reservoir and old-carbon effects).
  3. Neolithic selection. The script keeps CalPal dates from Neolithic and Pre-Pottery Neolithic contexts between 11°W–60°E and 29°N–63°N. It excludes ceramic hunter-gatherer groups that CalPal files as "Neolithic" (Ertebølle, Pitted Ware, Comb Ware, Narva, Bug-Dniester and others) and most of the forest zone (Finland, the Baltic, Russia). Each culture has a generous plausible time span, e.g. LBK 5700–4800 BC and TRB 4300–2700 BC. Dates outside that span are dropped, because multi-period sites often carry Mesolithic dates under a Neolithic label. Dates without a culture are kept only in regions where that is unambiguous: the Near East, Greece, the Balkans, the western Mediterranean, Iberia, Britain and Ireland.
  4. Sites. Dates are grouped by site name and position: dates with the same name belong to one site if each lies within 25 km of another. The 25 km allows for sources that record one site at different coordinates; a site whose dates' coordinates differ by more than 5 km is flagged approx_coords. Same-name sites further apart stay separate (see notes/site-aggregation.md). A site's start is its earliest date. If a site has at least four dates and the oldest is more than 300 years older than the next, the oldest is set aside (flag oldest_date_dropped). A site's end is its latest date. Its culture is the culture of its earliest date.
  5. Outliers. A site with three or fewer dates is flagged outlier if it is more than 800 years older than every one of at least three neighbours within 300 km. Outlier sites still appear on the map, drawn as rings, but are not used for the front.
  6. Pioneer filter (Neolithic and Bantu farming only). A site is kept only if its start is within 500 years of the local first arrival, which is computed from sites within 150–250 km. This keeps the dots focused on the spread. Without it, a thousand later Neolithic sites would bury the earliest ones.
  7. Contested dates. Iron dates before 1000 BC (for example Mban in Chad, and the early Great Lakes dates) and the claimed early domestic cattle at Nabta Playa are flagged contested. They are shown as rings and kept out of the front.

How the front is drawn

The front is computed in the browser (web/src/front/front.ts) for each sub-layer on a 0.2–0.3° land grid. The grid is rasterised from Natural Earth land, so the shading follows coastlines. Each cell's arrival year is:

arrival(cell) = min over sites within R km of ( site start + distance / v )

Here v = 1 km/yr, roughly the speed estimated for the Neolithic front by Pinhasi et al. 2005 and Fort 2012, and R = 180 km for Europe, 350 km for Bantu farming and iron, and 400 km for pastoralism. The front at year Y is the contour of arrival ≤ Y, computed with d3-contour. The isochrones are the same contour every 500 years.

This is a drawing heuristic, not a fitted diffusion model. Where there are many sites it reproduces the familiar wave. Where sites are sparse (Saharan and East African pastoralism, eastern Africa generally) it draws isolated circles around the few dated sites. Read that as "dated presence here" and not as a reconstructed frontier. The parameters are set per sub-layer in the layer modules and reach the browser in layers.json.

Simplifications in the method

Four places where the method is simpler than the practice it stands in for. They were raised by the October 2026 review (review/archaeological-methodology.md §1.1, §1.2, §2.2 and §3). The figures are measured on the data as built in October 2026.

Known gaps and caveats