# ROC Pedigree Simulator: independent Jacob-specific adaptation

Prepared 27 October 2026. This is an independent implementation of selected mechanisms in Rohde, Olson and Chang (2004), not the authors' original program or a reproduction of their global MRCA results. It does not estimate the probability that a particular actual person descends from Jacob.

## Reference and purpose

Rohde, D. L. T., Olson, S., & Chang, J. T. (2004). “Modelling the recent common ancestry of all living humans.” *Nature* 431, 562–566. https://doi.org/10.1038/nature02842 . Supplementary Methods B: https://www.stat.yale.edu/~jtc5/papers/CommonAncestors/NatureCommonAncestors-SupplementB.pdf . Page numbers below refer to the supplement's printed pages.

The original Jacob Ancestry main page uses twelve regional coverage equations. This additional page instead follows individual parent choices, births, deaths, and movement. The original page and its mathematics remain available. Its simpler graph-model benchmark is separate from validation of this individual model.

## Calendar and foundation

- Public dates use BC and AD, without a year zero. Internally 1 BC and AD 1 occupy consecutive annual steps.
- A 100-year demographic burn-in starts in 1976 BC. It has no introduced Jacob ancestry. Numerical global coverage begins at the household's entry into Egypt in 1876 BC, not at Jacob's birth.
- Jacob's approximate birth is set to 2006 BC, using age 130 at entry (Genesis 47:9), and his death to 1859 BC, age 147 (Genesis 47:28). His known exceptional lifespan is separate from ordinary simulated mortality; no additional children of Jacob are generated during his old age in Egypt.
- The foundation contains the traditional seventy enumerated members of Genesis 46:8–27: Jacob, twelve sons, fifty-one grandsons, four great-grandsons, Dinah, and Serah. The wives excluded from the enumeration are additional people. The reconstruction uses the text's living descendants; Er and Onan are not living entrants.
- Joseph's age at entry is 39 in this chronology; his two sons are initialized at ages 9 and 8. Other ages, wife ages, and unenumerated spouses are illustrative initialization assumptions, not claims that the text supplies those values. Parent ages are checked. The known Jacob links, including Serah–Asher and Asher–Beriah–Heber/Malchiel, are explicit in small pedigree audit traces.
- Founder spouses are initialized without Jacob descent. Known children inherit the existing parent path. Unknown maternal identities are not invented. The model does not reconstruct intermarriage before the Egypt-entry foundation.

Biblical references: Genesis 41:45, 50–52 (Joseph's Egyptian marriage); Genesis 46:8–27 (enumeration and spouses); Exodus 12:37–38 (about 600,000 men, children, mixed multitude); Numbers 1:45–46 (military-age men, twenty and older). The dates 1876 and 1446 BC are the project's selected evangelical chronology, not ROC inputs or a consensus chronology.

## Egypt: genealogical descent and community membership

Every person has separate genealogical and community states. A child's Jacob-descent flag is the logical OR of the parents' flags. No conversion, membership change, marriage alone, or migration creates descent. In particular, an unrelated spouse remains unrelated until a child inherits the other parent's ancestry.

During the 430-year sojourn, partner selection can cross the community boundary in both directions. When selecting a new partner, a community woman's crossing probability is the displayed parameter *m*. For a host-community woman it is `min(1, m × local community men / local host men)`. The asymmetry prevents the vastly larger host group from making the smaller group the partner of an implausibly large number of women. These are implementation assumptions, not measured historical rates. During the same period, the rule also applies to community members who migrate elsewhere. The 80% preference for the previous father acts before the new-partner calculation; thus a 1% setting does **not** mean 1% of all marriages or births.

The child receives the father's community label and the mother joins that label when a birth occurs. This is a deliberately simplified household-affiliation rule, not a claim about Jewish legal status across history. A descendant can move out of the Israelite community, and unrelated people can join it without changing their own ancestry flags. A full social simulation of conversion, enslavement, or legal identity is not attempted.

The Egyptian community's birth opportunities are adjusted toward about 600,000 resident community men aged 20+ by 1446 BC. If `M0` is the foundation's adult-male count and `g = log(600000/M0)/430`, the desired count at elapsed year *t* is `M0 exp(g t)`. Its fertility controller uses `2 exp(26g) × (desired / actual resident men)^0.6`, bounded below by 0.1 and above by the ceiling recorded in each run. The coefficient 26, feedback exponent, and controller are this implementation's choices; ROC supplies no Jacob-specific controller. Changing a birth probability does not insert people or assign new ancestry.

Runs are accepted for the comparison bundle only if the resident male count at Exodus is between 540,000 and 660,000 (±10%), they complete to AD 2026, and the lineage survives. This is explicit conditioning on the selected biblical anchors. The actual count is always displayed. The counting rule is resident community men aged 20+; it does not separately reconstruct Levite exclusions or military fitness. Failed and incomplete attempts are retained in provenance; they are not silently turned into successful runs. Any non-reference fertility ceiling must be disclosed in the manifest and page.

At Exodus only members of this community in the modeled Egyptian cell move to a broad Sinai–Levant modeling cell. The subsequent forty-year wilderness period is not spatially resolved inside that cell; this is not a claim that entry into Canaan occurred in 1446 BC. Women and juvenile survivors move with it. Descendants outside that community stay where they are. Community members outside the Egyptian cell also remain in place. The size and genealogical composition of the “mixed multitude” are unknown and are not assigned invented values.

**Geographic limitation:** the Egyptian host population starts as one cell in ROC's largely uniform regional initialization. It is not an independently reconstructed population of ancient Egypt. A large biblical community therefore creates a strong local demographic concentration. This and uncertain affiliation rules limit historical interpretation even when the numeric Exodus anchor is satisfied.

After Exodus, community membership no longer limits mate choice; the ordinary ROC-style locality rules apply. This model does not reconstruct subsequent Israelite/Jewish endogamy, expulsions, or individual diaspora histories. The historical Jewish population spreadsheet is not used to label whole communities as Jacob's descendants.

## Individual life and parent selection

Following B pp. 1–2:

- Maturity is at age 16. Only births destined to survive to 16 are generated. Map population counts are adults aged 16 and older; recorded juvenile survivors are included separately in survival checks. No total all-age historical census or infant-mortality estimate is claimed.
- Conditional annual death probability is `0.01 + 0.99 exp((age−100)/12.5)`, with certain death by age 100, except the stated patriarchal exception. A person lives through the sampled death-age year and is removed at the next year boundary. The theoretical mean sampled death age conditional on reaching 16 is approximately 51.866 years.
- Women can produce one adult-surviving birth opportunity annually at ages 16–40 inclusive. The annual probability is `C / 21.604774`, where the denominator sums survival exposure across those ages. Women can have no children or multiple children; childlessness is an outcome, not an independent multiplier.
- A father must be alive, adult, and at least the mother's age. He is sought locally, or in a random order among other towns in the same country if no suitable local father exists. An unpaired man has twice the new-partner selection weight of a previously paired man. An available previous father has 80% retention probability.
- Known initial households have initialized partnerships. After a new birth, parentage and partnership state are updated once. Tests guard against a dead partner's recycled memory slot being mistaken for the original person.

The supplement reports approximately 19% childlessness for women and 36% for men. Those are reported outcomes, not input parameters. The program's female-lifetime diagnostic counts are recorded in raw files and can differ because of demographic trajectories and operational choices. The diagnostic excludes adults present at the initial burn-in, but includes the small set of later initialized biblical founder women, whose births before the foundation are not counted. It is therefore an approximate aggregate check. The simple constant-`C=2` version of this mortality/exposure rule predicts roughly 16% female childlessness, so this implementation must not be described as a numerical reproduction of every published distribution.

## Population and geography

- Twelve regions use the scaled values in B Table 1, p. 6. The target scale is 55 million modeled adults. Before roughly 1000 BC these are unreduced reference populations; afterwards they use ROC's density-sensitive regional reductions rather than a new uniform downscaling. Realized counts can depart from targets.
- The figure extraction contains **496 filled cells and 15,049 towns**, while the text on p. 7 states **497 and 15,059**. This unresolved source discrepancy is disclosed; no missing country has been fabricated.
- “Countries” and “towns” are social/geographic modeling units, not modern states or identified settlements. The displayed schematic and selected route endpoints cannot be used as verified ancient coordinates.
- The initial regional counts are allocated to cells with an exact uniform multinomial distribution. Ages follow a stationary adult survival distribution rather than the source's 40-year initialization window. The model still uses a 100-year burn-in. Storage is grouped by country for performance; that does not weight ancestry or alter the allocation distribution.
- Regional fertility is operationalized as `Cn = 2 sqrt(target in 30 years / current population)`, clamped to `[0.01,4]`. Country fertility follows B p. 6, `Cc = Cn/2 × (1 + mean inhabited-country population / country population)`, capped at 4. ROC does not specify the numerical continental feedback algorithm, so this is an adaptation choice. Egypt's special controller is described separately.
- Population target interpolation is exponential between positive values and linear when a value is zero. For North and South America, the p. 7 account is operationalized with the 1500 table values at 1400, lower targets at 1570 equal to 3% and 7% of those values, then recovery toward 1750. These are targets, not forced deaths or a claim that the published realized losses have been exactly reproduced.
- The final 1970 table column serves as the AD 2000 target, as in ROC's p. 5 footnote. AD 2001–2026 holds the final demographic and mobility assumptions. These are not current census estimates.

Map percentages weight the actual **simulated adult** counts. They do not reweight reduced regions into a claimed fraction of real-world humanity. Exactly 100% is displayed only when the descendant count equals the adult count, not when a near-complete fraction rounds up. This still does not assert universality among all real people, or among juvenile survivors not included in that adult count.

In the first two complete lower-intermarriage trials, final adult populations were 54,876,491 and 54,892,035. Mainland regional counts were within about 2.5% of their reference targets, but small-island targets were less closely achieved: New Zealand was about 10% above target, Hawaii 61–62%, and Greenland about 67%. Easter Island retained 9–15 adults against a zero endpoint target. Immigration and the selected fertility feedback do not enforce exact target counts. These deviations are material limitations of this adaptation, especially for isolated groups; `results-analysis.json` supplies realized counts and target differences for each accepted trial.

## Migration

Following B pp. 2–5, there is one ordinary migration opportunity per person just before adulthood. The Exodus is an explicitly separate biblical movement. Internal town movement and country movement are mutually exclusive with use of a port that year. Countries are selected within the same region with inverse-square schematic-grid distance weights.

The lower-migration setting uses 5% town movement, 0.05% country movement, and baseline port rates from the figure. The higher-migration setting uses 20%, 0.25%, and ten times those port rates. These are reference-inspired parameterizations; the later schedule is not a claim of exact replication of either published run. Country rates double at AD 1500, 1750, and 1900. Town rates reach at least 10% in 1700 and 20% in 1900. Nonlocal port origin probabilities follow 5% (20% in higher setting), then 20%, 50%, 75%, 85%, and 90% at 1500, 1600, 1700, 1800, and 1900. The source mentions smaller modern increases in its conservative cases without specifying them completely; using the full stated schedule in the lower setting is a disclosed departure.

Ports draw a Poisson number of migrants annually with mean `migrants per generation / 30`. Migrants are selected without replacement from that year's eligible maturity cohort. A shortage of eligible origin people yields fewer actual migrants. Source-dependent clusters of five destination towns are selected by a fixed cell-index rule. An arrival in a previously uninhabited town receives five same-parent companions (B p. 3); their genealogical state is copied from the same parents, not invented.

Routes and source opening dates are recorded individually in `reference.json`. The frozen engine uses `opens=-20000` as an already-open sentinel for several routes that predate this simulation; `sourceOpeningYear` preserves the explicit dates in Figure 1 (12000, 11000, 2500, or 3000 BC, as applicable). This metadata distinction has no effect within the simulated period. Null source opening or closing dates mean no separate date is supplied, not a claimed historical beginning or end. Remote island bursts follow B p. 4. The three 1600 BC Lapita-route bursts use a selected 100 per generation because the figure does not state a numerical burst; that is an assumption. Later colonial routes use selected rates of 3,000 primary-direction and 150 reverse-direction migrants per generation, within the source's published ranges of 1,000–5,000 and 100–200. Per-route exact values are not supplied by ROC. France–eastern United States at 1800 represents one of the unspecified additional European routes, rather than duplicating England's already open route.

## Genealogy, computation, and acceptance

For a specified ancestor, forward propagation of a Boolean descent flag is exact conditional on the generated parent choices: `descendant(child) = descendant(mother) OR descendant(father)`. It does not require storing the entire multi-billion-person pedigree after death. Small audit runs retain parent identifiers, independently traverse those links back to Jacob, and compare every flag. Founding companions retain the same parent identifiers in those audits. This calculation answers a different question from finding the most recent common ancestor among **all possible ancestors**.

Complete runs use the full reference target scale. Reduced-size test fixtures are used only to check invariants and are never promoted as equivalent full-scale histories. No live browser mode is shipped as an interchangeable approximation: the page loads saved data, and map/timeline changes do not recompute pedigrees.

The acceptance condition includes **any living descendant**, including juvenile survivors. It does not add descendants after extinction or move descendants back into the community. Complete/failed attempts, seeds, population scale, parameters, runtime, compiler information, and file hashes appear in provenance. Small numbers of saved realizations are illustrative, not confidence intervals or stable estimates of universality probability. Geography, initialization, affiliation, fertility feedback, route rates, and scale sensitivity remain additional uncertainty beyond Monte Carlo seed variation.

The higher-intermarriage continuation uses four prelisted additional seeds (17005–17008), stopping after its first complete accepted realization or after those four attempts. The earlier higher-rate attempts are also retained. For this release the continuation stopped at seed 17006, the first complete accepted higher-rate trial; seeds 17007 and 17008 were not run. If all six higher-rate attempts miss the Exodus band, that comparison is explicitly unavailable and only the two complete lower-rate runs are shown. This is a limit of the attempted parameterization, not proof that 5% intermarriage is historically impossible. No acceptance range, fertility ceiling, or output count is altered to make the comparison appear successful.

## Checks and reproduction

The native checks cover: BC/AD continuity; mortality mean and reproductive exposure; exact seventy-person ancestry foundation; parent ages; independent pedigree traversal; community changes preserving ancestry; the age-19/age-20 census boundary; stale partner handles; father eligibility and in-country fallback; selective Exodus movement; same-parent founding companions; unopened islands; continuity of demographic targets; Egyptian intermarriage in both directions; complete census and parent-pool consistency at each year in a small run; and seed reproducibility.

Every production run also compares its final event-maintained counters with a fresh census of the living individuals and verifies created people = living people + deaths. Web tests check date positions, percentages, data integrity, and publication eligibility. These tests establish implementation properties, not historical truth or a successful replication of ROC's reported global MRCA dates.

Three additional distribution checks use synthetic populations, separately from production histories. Over 200,000 new-partner draws, the unpaired eligible man was selected in 66.645% of draws (expected 66.667%). With an eligible previous partner, total repeat selection was 86.657% (80% retention plus the chance of selecting him again, expected 86.667%). Across 200 fixed-population annual birth-opportunity rounds, the engine generated 370,426 births versus an expectation of about 370,289, a difference of 0.24 sampling standard deviations. These checks exercise the actual engine routines and do not calibrate or alter the published trials.

The raw `seconds` field records elapsed wall-clock time, including computer sleep, suspended trials, and resource contention. It is not a CPU-time measurement or a browser runtime benchmark. Production trials run sequentially to avoid memory pressure; saved map playback does not repeat those calculations.

Compile `engine.cpp` together with `reference.hpp` using C++17 and an optimizing compiler. For example:

```
c++ -O3 -std=c++17 engine.cpp -o roc-pedigree-engine
./roc-pedigree-engine --seed 17001 --mix 0.01 --require-exodus --output run.json
c++ -O2 -std=c++17 tests.cpp -o roc-pedigree-tests
./roc-pedigree-tests
c++ -O2 -std=c++17 distribution_checks.cpp -o roc-distribution-checks
./roc-distribution-checks
```

The runtime architecture, compiler, standard library, and engine/reference hashes must be preserved for bitwise comparison. Although the base pseudorandom generator is explicitly specified, C++ standard-library distribution implementations can differ across platforms. The same numerical seed alone is not a cross-platform bitwise guarantee.
