{
 "name": "Voices that set the level, learned from lived records: do voiced lives give the birth rates of the world they live in when the voice has learned from that world's records?",
 "registered": "2026-10-11, before any of the 300 registered women was asked by this voice",
 "follows": "experiment/lives/voiced-fertility.json (registered 2026-10-04, sha256 ab8aac076960bb5d43d507822beab7391c60b7244b6b2117b8bfc0e20d48b98c): a prompted voice gave 5.24 births per woman against 1.62. That result stays as published.",
 "world": "the same world rules as voiced-fertility.json: UN WPP 2024 United Kingdom 2019 tables (uk2019.json), the same placeholders for partnership, separation and leaving home, 20,000 lives, 360 months",
 "training_records": {
  "generator": "experiment/lives/voiced-fertility-learn.ts at this commit: worlds with seeds 1001-1012 (never the registered seed 20261004); every living woman aged 18-45 at month 360, her facts in the same words as voiced-fertility.ts, and whether she gave birth in the next 12 months of that world",
  "rows": 34367,
  "records_sha256": "a1ea4bb75fb8046fade2e210b1a52eaed11ff630aaed2d0d94c088601ae65ee5 (node voiced-fertility-learn.ts 1001 12 <out>; regenerated twice, identical)"
 },
 "model": {
  "base": "Qwen/Qwen3-8B-Base, revision 49e3418fbbbca6ecbdf9608b4d22e5a407081db4, loaded in 4 bits (nf4)",
  "adapter": "rank 8, alpha 32, dropout 0.05, query and value projections; learning rate 2e-4, cosine with 5% warm-up, 16 rows x 4 accumulation, one pass, rows shuffled with seed 0 (experiment/lives/voice_level.py at this commit)",
  "adapter_sha256": "366ea6f9b51ef67aad6639e5854fe592a61a6c560d6090c4c1f8aee02e788a01 (voice-level/adapter/adapter_model.safetensors, committed with this protocol)"
 },
 "question": "System line: You are a woman living in the United Kingdom. The facts of your life so far are below; answer as yourself. Then the facts, then: It is January 2019. Will you give birth in the next 12 months? A. Yes B. No. The answer is the model's probability of A against B, read in float32 from the final hidden state. This differs from voiced-fertility.json, which asked for a number; the facts are identical.",
 "voiced": "the 300 women of the registered world (seed 20261004) exactly as listed in results-voiced-fertility.json (answers[].life, age and prompt, sha256 95cc0d402a61090af3619d009667a70b9053948dbdd084beff221e94d43ab3be); their births in the following year were never simulated or read. The list is voice-level/women300.jsonl (life, age, facts = answers[].prompt, in that file's order)",
 "development": {
  "worlds": "2001 and 2002, every living woman 18-45 (5,647), asked once, scored with score_voice_level.py (voice-level/dev-score.json)",
  "pooled": "TFR 18-45 1.705 (real 1.616), mean age 30.25 (real 30.72): consistent",
  "per_world": "2001: 1.707 and 30.19; 2002: 1.703 and 30.31",
  "draws": "2,000 draws of 50 women per age group from the development worlds: all 2,000 consistent; TFR 5-95% 1.666-1.745, mean age 30.07-30.43",
  "records_scored_as_answers": "the development worlds' own births, scored the same way, give 1.604 and 30.34, so the voice's offset of about +0.09 and -0.47 years is partly the scoring rule itself (age at January, groups of five years)",
  "record": "answers by partnership: partnered 0.061, single 0.059 (births 0.058 and 0.055): in this world the record carries no birth information beyond age, and the voice does not invent any"
 },
 "outcomes": "as voiced-fertility.json: per age group (18-22, 23-27, 28-32, 33-37, 38-42, 43-45) the mean answered probability; TFR 18-45 is the sum over single ages of the mean of the age's group; the mean age at childbearing is weighted the same way; real values from the UK 2019 ASFR (TFR 18-45 1.616, mean age 30.72). Also reported: the standard deviation of answers within each group.",
 "decision": "consistent if |TFR 18-45 voiced - 1.616| <= 0.20 AND |mean age at childbearing voiced - 30.72| <= 1.0 (the bars of voiced-fertility.json)",
 "scorer": "experiment/lives/score_voice_level.py",
 "honesty": "This is a consistency test, not a held-out one: the voice is trained on records of lives lived under the same rules as the world it is asked about (different draws). It asks whether a voice can carry the level of the world it learned from, where a prompted voice could not. In this world birth hazards depend on age only, so the record carries no further information about births; the spread of answers within each group is reported as is.",
 "frozen_sha256": {
  "voice_level.py": "5b26641f12c8b86e4633453199f29a984d98718d57d70774ba63976b51b014a3",
  "score_voice_level.py": "8c77d723de2ed1f410f33bdf398f5022082d59229433ab5a7e1eb64481770b72",
  "voiced-fertility-learn.ts": "f3e22504ff00559e27c3c0446a55cd8f17f7cb556c22c70f5dd707e6511dac53",
  "src/lifecourse/lives.ts": "c13708c9edd13b0478c0f7442d0d5da4565ddb42244c7e410a0793019a1cf5e8",
  "uk2019.json": "4551f72f742c224e285f84b03eadf49bd3aecbc18e3a87967dcbec14387a17ca",
  "voice-level/adapter/adapter_config.json": "904d37acc44237b14bfdabd39ce694ca78881a35d0e7c0913a800f408bbe763f",
  "voice-level/adapter/adapter_model.safetensors": "366ea6f9b51ef67aad6639e5854fe592a61a6c560d6090c4c1f8aee02e788a01",
  "voice-level/women300.jsonl": "290e47a5d599968b4d2b9a6336895768775c8239960fcd6d464eb7eef577ac3d",
  "results-voiced-fertility.json": "95cc0d402a61090af3619d009667a70b9053948dbdd084beff221e94d43ab3be"
 },
 "run": "python voice_level.py ask voice-level voice-level/women300.jsonl voice-level/answers.jsonl (MODEL=Qwen/Qwen3-8B-Base REVISION=49e3418fbbbca6ecbdf9608b4d22e5a407081db4 QUANT4=1), then python score_voice_level.py voice-level/answers.jsonl results-voice-level.json; run once"
}
