Scientific data review
Meso dinosaur dataset audit
9 October 2026 · Review draft · Gameplay taxonomy unchanged
The full PBDB extraction is reproducible, but it is not ready to become the game's dataset. The main decisions are the non-avian boundary, the working phylogeny, treatment of disputed genera, and how uncertain evidence becomes a clue. There are 1,321 candidate records, not 1,321 scientifically approved genera. This includes 1,320 distinct names and several records requiring correction or exclusion.
The audit covers the entire captured database subtree, every candidate's structure and metadata, all 36 existing profiles, every pair of prototype genera, and actual visible clue combinations. Literature review focuses on cases that change inclusion or guess feedback. It is not an expert re-analysis of every genus or a guarantee that PBDB includes every published dinosaur name.
Decisions recorded on 10 October 2026
The original evidence and findings below describe the 9 October snapshot. Later decisions are recorded in the [roster policy](roster-policy.json) and [Curator’s Notes](curators-notes.html); the live 36-genus dataset remains unchanged.
| Finding | Current treatment | Remaining work |
|---|---|---|
| D01 · Saurornithoides | Select Osborn 1924, PBDB 38573; hold Nopcsa 1928, PBDB 69227, without merging their evidence. | Placement and clue review before daily eligibility. |
| D02 · Kansaignathus and Kurupi | Retain both; locally correct the living flag to extinct, supported by their original fossil descriptions. | Review daily eligibility; preserve database identities and ancestry. |
| D03 · Ancistrodon | Hold PBDB 154360 out of expanded guesses and answers. Its captured occurrence 434618 is Ancistrodon libycus, a fish name in Priem’s study. The Huxley attribution instead points towards the separately spelled Ankistrodon, treated as an Early Triassic proterosuchid in modern work. This is an inferred identity mismatch. | Exact record/occurrence repair remains unresolved. References 37678 and 11298 have not been read independently in full. No new synonym, dinosaur age or replacement identity is assigned. |
After the two explicit record holds, the expansion review queue has 1,319 records. This is a filtered review queue, not 1,319 approved playable genera. The frozen audit still preserves all 1,321 original candidate records. Detailed review evidence is in sources/roster-exception-review.json.
What was captured
Five PBDB API responses were frozen between 22:44:45 and 22:46:26 UTC on 9 October 2026, with exact request URLs, response hashes and retrieval times. All requests used limit=all; none returned errors or warnings. Compressed responses preserve the original bytes.
| Evidence | Records | Purpose |
|---|---|---|
| Entire Dinosauria subtree, all ranks and statuses | 13,008 | Preserve parent relationships, accepted identities, ecology and age metadata |
| Genus-rank name query | 4,226 | Review accepted names, synonyms, invalid names and preservation flags |
| Accepted, regular, extinct genus cross-check | 2,304 | Verify extraction independently; includes fossil birds |
| Selected boundary and disputed-name query | 25 | Inspect the relevant database records explicitly |
| Occurrences under Dinosauria excluding Aves | 22,667 | Preserve identifications, countries, age bounds and references |
Of 3,229 self-accepted regular genus records under Dinosauria, excluding Aves leaves 1,599; additionally excluding Avialae leaves 1,321. Of these, 1,319 are marked extinct and two are marked extant. The occurrence response is filtered by candidate genus IDs during analysis: 6,286 occurrences link to 1,285 candidate records. Birds, tracks, egg/form taxa and higher-level identifications are not treated as candidate body genera.
“Accepted” means PBDB's selected name/opinion in this snapshot. It does not mean universal scientific agreement. The taxa API documentation ↗ distinguishes accepted from valid: the latter also includes junior synonyms. Regular body taxa require pres=regular; merely asking for Dinosauria is insufficient. In the full subtree response, taxon_rank is omitted, so this audit checks self-accepted accepted_rank records against the independent rank/status/preservation query. The ID sets match exactly before bird exclusions.
Decisions that affect the game's science
| ID | Issue and evidence | Effect on play | Suggested treatment for review |
|---|---|---|---|
| T01 | Bird boundary. PBDB places Aves and Avialae in separate subtrees. Excluding Aves alone retains Archaeopteryx and living bird genera such as Gallus and Numida under Avialae. | A supposedly non-avian roster would include birds. | Exclude both database subtrees initially, then review borderline paravians individually. Use stable IDs rather than a word or feather/flight rule. |
| T02 | Borderline paravians. Anchiornis is under Troodontidae here, while published analyses also recover anchiornithines as early avialans or other paravians. Scansoriopterygids such as Yi and Ambopteryx also need an explicit scope decision. Pennaraptoran review ↗. | The same genus can move across the bird exclusion boundary under different hypotheses. | Maintain a cited inclusion/placement register. Do not automatically exclude feathered dinosaurs, dromaeosaurs or alvarezsaurs. |
| T03 | Basal dinosaur topology. The prototype chooses conventional Saurischia, putting theropods with sauropodomorphs. Raw PBDB places Theropoda directly under Dinosauria. Published alternatives include Ornithoscelida and different herrerasaur arrangements. Broad-scale review ↗. | A theropod/sauropodomorph guess shares Saurischia in our game, but Dinosauria in the raw export. | Keep a declared working hypothesis, with sources and explicit amendments. Do not describe it as a consensus tree. |
| T04 | Silesaurs and early ornithischians. The snapshot includes 13 candidate genera on the Parapredentata branch outside Saphornithischia. Silesaurus, Asilisaurus and Pisanosaurus are inside Ornithischia here; studies also place silesaurids outside Dinosauria or as a stem grade. Norman et al. ↗; recent competing analyses ↗. | “Every dinosaur genus” depends on the chosen root and inclusion hypothesis. | Decide this boundary together with T03. Retain the evidence in the review queue; hold uncertain inclusions out of daily puzzles until resolved. |
| T05 | Chilesaurus. PBDB selects Ornithischia; published interpretations differ from its original theropod placement. Reply and analysis ↗. | This can change the broadest branch eliminated by a guess. | Choose and cite a placement, mark it disputed in the journal, and assess daily eligibility separately. |
| T06 | Nanotyrannus. It is accepted under Nanotyrannidae, within Tyrannosauroidea. Zanno and Napoli's 2025 analysis distinguishes it from Tyrannosaurus and places it outside Tyrannosauridae; the publication has a 2026 correction. Paper and correction record ↗. | Treating it as a T. rex alias, or putting it inside Tyrannosauridae by familiarity, would give different feedback. | Review the corrected analysis and retain it as its own candidate genus. This is an example of a recent update, not proof that every debate is settled. |
| T07 | Troodon, Stenonychosaurus and Latenivenatrix. PBDB accepts all three separately. A 2025 study argues for Troodon as senior synonym of Stenonychosaurus and follows a synonymy of Latenivenatrix; other treatments differ. Varricchio et al. ↗. | Separate answer entries or aliasing produce different puzzles and collection counts. | Choose a documented genus policy; never silently merge disputed accepted names through search aliases. Hold daily eligibility pending review. |
| T08 | Coelophysis and Megapnosaurus. Both are accepted separately in PBDB. The game gives Coelophysis Africa and Americas, Triassic and Jurassic, using a museum profile that groups broader historical material. Its raw genus-linked occurrence countries here are only USA. 2024 osteological study discusses the genus issue ↗. | The African clue may describe material assigned to another genus under our chosen nomenclature. | Reconcile the accepted species assignments before changing Coelophysis's region and period clues. Review the accepted Syntarsus record and its naming history at the same time. |
| T09 | Hadrosaurinae / Saurolophinae and other named clades. Usage depends partly on Hadrosaurus's placement. The prototype uses Hadrosaurinae for Edmontosaurus and Maiasaura; the snapshot has separate Hadrosaurinae and Saurolophinae records. Madzia et al. ↗. Newer ornithischian analyses also introduce clades such as Pyrodontia. Fonseca et al. ↗. | Different labels and definitions can look like contradictory ancestry to players researching another source. | Select definitions and reference trees per major branch; record alternative labels separately from genus aliases. |
Brontosaurus is accepted separately from Apatosaurus in this snapshot. Its inclusion is not an extraction error. Dracorex and Stygimoloch are marked subjective synonyms of Pachycephalosaurus; Cryptovolans is a subjective synonym of Microraptor. These provide clear database mappings, but each adopted alias still needs a visible explanation and provenance.
Concrete data problems and gaps
| ID | Finding | Recommended next action |
|---|---|---|
| D01 | Saurornithoides appears twice as accepted: IDs 38573 (Osborn 1924, Troodontidae, eight occurrences) and 69227 (Nopcsa 1928, Compsognathinae, no occurrences). This is also the only normalised name/alias collision detected. | Review original references and nomenclatural history before choosing a canonical record. A name lookup must not silently pick the first row. |
| D02 | Kansaignathus and Kurupi are marked extant. Their records have Cretaceous occurrences; their original descriptions concern fossil dinosaurs. Kansaignathus description ↗; Kurupi description ↗. An extant=no filter drops them. | Use documented local corrections after review. Do not rely on the living/extinct flag as the bird boundary. |
| D03 | Ancistrodon, ID 154360, is a direct Dinosauria child with an Ypresian occurrence, 56–48.07 Ma. Its name, assignment and age need investigation; this audit does not determine the correction. | Quarantine from answers and approved roster until reference 37678 and the linked occurrence are checked. Do not invent a Triassic/Jurassic/Cretaceous value. |
| D04 | 36 candidates have no genus-linked occurrences and lack usable age ranges in this capture. | Review original descriptions. Absence in the occurrence database is not evidence that the genus is invalid; do not remove a legitimate guess simply because it lacks clues. |
| D05 | Diet provenance: 77 missing, 1,232 inherited from another taxon, only 12 entered at genus level. Sixty-six records contain multiple diet categories. “Entered at genus level” is provenance, not a confidence rating. | Store evidence, basis and uncertainty per clue. Allow unknown/multiple categories. Review coarse inheritance before using it to eliminate candidates. |
| D06 | Occurrences are not clean range facts. 226 candidate genera have at least one identification qualified with cf., aff. or ?. Unqualified records can also reflect historical assignments. Raw Brachiosaurus includes Tanzania, Iguanodon spans many countries, and Stegosaurus extends into Cretaceous age bounds. These are review flags, not recommended clue expansions. | Separate vetted assignments from doubtful/historical records and inspect collection age precision. Preserve accepted species and original identifications so corrections are traceable. |
| D07 | Geographical coverage exceeds the app's four regions. The roster includes Australia and Antarctica. Thirty-three candidates have Russia, Kazakhstan or PBDB code O2 records needing explicit region mapping review. Country alone is inadequate for transcontinental localities. | Add Oceania/Australia and Antarctica when expanding. Define the journal's modern discovery-region scheme and use locality evidence for ambiguous mappings. Do not confuse it with palaeogeography. |
| D08 | Source evidence is uneven. Nine playable genera have no extract in checked-facts.json; their facts are hand-coded overrides. Two museum extracts are duplicated. Per-fact references and confidence are not stored, only a profile-level source URL. | Preserve a source and rationale for every imported or corrected fact, deduplicate evidence, and validate links. The missing extracts do not establish that the facts are wrong. |
| D09 | Search coverage is incomplete. The audit identifies 150 synonym/replacement name records pointing to candidates: 130 subjective, six objective and 14 replacement mappings. The game recognises only Cryptovolans plus T. rex spelling/name variants. | Review aliases, reject ambiguous collisions, and retain invalid-name explanations separately. Do not make a synonym a second collectible genus. |
| D10 | Recent publication coverage has gaps. Foskeia and Haolong are captured, but Norellraptor and Dinevenator are absent from the entire captured subtree. Norellraptor also returns no match in a separate PBDB name query. Norellraptor, published 29 September 2026 ↗; Dinevenator, 2026 ↗. | Add a cited supplements register after reviewing the original descriptions and identities. This targeted check demonstrates incompleteness; it does not measure every missing name. |
| D11 | Diplodocus has a recent range update. The game and this PBDB occurrence extraction list only the Americas/USA, but a study published 15 September 2026 assigns Spanish material to the genus. Sánchez-Fenollosa et al. ↗. | Review and adopt a sourced Europe addition if we accept the assignment. This directly affects the current region clue and its balance. |
The nine hand-coded profiles without museum extracts are Brontosaurus, Camarasaurus, Ceratosaurus, Diplodocus, Edmontosaurus, Oviraptor, Styracosaurus, Tarbosaurus and Triceratops. The duplicate extracts are Velociraptor and Protoceratops. The code's country mapping and period extraction are also sample-specific: it selects the first matching period word except for the Coelophysis override. That is unsuitable for a full multi-period roster.
Tree audit and what it means for difficulty
All 1,321 candidate paths reach Dinosauria without cycles or missing parents. The raw candidate hierarchy uses 274 ancestor nodes; the current game uses 72. A raw complete lineage can contain 20 nodes including the genus. These checks establish internal consistency, not scientific correctness.
The game's tree deliberately differs from PBDB. Across all 630 unordered pairs of its 36 genera, 157 pairs produce a different deepest shared label. This includes 102 changes from Dinosauria to Saurischia, 36 from Ornithischia to Genasauria, and 16 involving the repaired Gallimimus ancestry. Two ceratopsian comparisons change from Ceratopsia to Coronosauria; Stegosaurus/Kentrosaurus changes from raw Neostegosauria to the retained Stegosauridae. These are amendments or omitted-clade effects, not 157 proven mistakes.
The Gallimimus amendment cannot remain genus-specific. All 29 candidate genera under Ornithomimosauria lack Coelurosauria in their raw paths. Importing the broader roster with the existing amendment would give Gallimimus deeper shared ancestry than its close relatives. The full builder needs branch-wide, sourced changes.
The current builder has a fixed list of retained clade names and assumes every genus belongs to Theropoda, Sauropodomorpha or Ornithischia. Fifteen candidates fall outside those categories, including Herrerasaurus, Staurikosaurus, Tawa and Nyasasaurus. It would fail or misclassify them. The engine also keys tree nodes by display name; D01 shows why IDs should be used throughout the expanded tree.
Several raw branches are too flat for useful tree-only deduction: 37 genera attach directly to Hadrosauroidea, 32 to Nodosauridae and 24 each to Mamenchisauridae and Somphospondyli. For a set of direct genus siblings, every wrong sibling guess gives the same shared ancestor and removes only that guessed leaf; guesses outside that sibling set cannot distinguish its members. This is a consequence of the exported hierarchy, not a claim that the biology is a 37-way split.
Recommendation: construct a versioned working phylogeny with sourced branch definitions and conservative unresolved groups. Preserve the complete data tree; collapse linear labels only for display. Keep disputed placements explicit rather than adding unsupported resolution to make the game easier. Revisit the 15-guess limit after the reviewed tree and clues exist.
Actual clue balance in the 36-genus game
The earlier audit used journal filter intersections and found seven unique answers. The visible clue gives the entire period and region list, so absence from a second region can also distinguish an answer. Comparing exact category/list combinations gives eight unique answers: it also isolates Dilophosaurus.
The word “Likely” is an additional signal. Pachycephalosaurus is the only “Likely Herbivore” in the sample. Including that visible qualifier produces these results, without any guesses:
| Reveals used | Remaining genera per answer | Answers already unique |
|---|---|---|
| Diet | 1–18, median 16.5 | Pachycephalosaurus |
| Diet and complete period list | 1–11, median 10 | Coelophysis, Pachycephalosaurus, Plateosaurus |
| All three, including complete region list | 1–7, median 4 | Baryonyx, Coelophysis, Dilophosaurus, Iguanodon, Kentrosaurus, Pachycephalosaurus, Plateosaurus, Spinosaurus, Stegosaurus |
Of the 1,260 ordered wrong-first-guess/answer combinations, 409 identify the answer uniquely after all three exact clues and that guess's feedback. This is an exhaustive sample calculation, not an estimate of player success or the final roster's difficulty.
Do not fix this by hiding genuine uncertainty. Decide whether hints disclose complete lists or one truthful broad fact, then balance the actual displayed text, qualifiers and guess feedback together. We cannot report trustworthy full-roster clue intersections while inherited diets and occurrence-derived ranges remain unreviewed.
Proposed decisions for our next discussion
- Working tree: retain conventional Saurischia, use cited branch-level corrections, and label uncertain relationships. Choose the basal/silesaur arrangement explicitly.
- Scope: use both PBDB bird exclusions as the initial technical boundary, with a separate register for borderline genera.
- Names: use one reviewed canonical genus identity, with sourced aliases; give disputed synonymies their own decisions.
- Clues: preserve unknown, mixed and uncertain evidence. Define the precision of region/period hints before final balancing.
- Answers: make the reviewed accepted roster guessable and researchable; select daily answers by reliable placement and clue evidence, rather than familiarity. The app currently draws daily and practice answers from the same entire roster and has no separate eligibility list.
No roster, tree, clue, daily-pool or progress changes have been applied by this audit. The playable dataset version remains prototype-2026-10-09-v1.
Evidence and reproduction
The committed audit includes audit-data.py, the five compressed raw responses and manifest, a flagged candidate roster, a per-genus prototype comparison, every changed pair, and every sample clue/first-guess result. Run python audit-data.py offline to verify hashes, independent accepted-record extraction, stable IDs and connected acyclic lineages, and regenerate the JSON findings. To capture a future audit, pass --fetch --snapshot audits/YYYY-MM-DD with a new directory; this never overwrites the frozen evidence or the playable dataset.
The source files are in audits/2026-10-09/. summary.json contains the aggregate findings; candidate-roster.json contains the complete review queue; prototype-comparison.json and prototype-clue-balance.json contain the detailed comparisons. Raw occurrences and unreviewed diets are deliberately labelled raw. No record has been declared eligible for daily play from this audit alone.
The recent-name spot check and separate no-match diagnostic are preserved in sources/literature-audit-checks.json. The latter is an expected warning, separate from the five successful full snapshot requests. Neither missing genus has been assigned an invented PBDB ID or added to the candidate count.
Public sources used here are the PBDB API and documentation, the cited research articles, author abstracts and museum pages. Some publisher full text was unavailable; those conclusions are limited to accessible abstracts, summaries or the already preserved database evidence. A final release still needs independent scientific review, per-fact curation, comparison against other dated name inventories, and full-roster balance testing.