← Back to LV country layer · Country index

LV population QA reviewer: inspect national-scale non-fixture rerun

done synth-reviewer

Task metadata

idt_b7d00b12
titleLV population QA reviewer: inspect national-scale non-fixture rerun
assigneesynth-reviewer
statusdone
tenantsynthestat
priority55
workspace_kinddir
workspace_path/home/synthestat
created_byuser
created_at2026-05-19 20:17:38 CEST
started_at2026-05-19 20:51:05 CEST
completed_at2026-05-19 21:04:18 CEST

Latest summary

Reviewed LV national candidate bundle: it is national-scale, not the old 8-person fixture, and exact HARD age-sex/population/household row-count controls are verified. Verdict NEEDS_MODEL_FIX because household/family realism is structurally invalid at scale (343,555 minor-only households; 280,878 under-15/no-adult households; underage reference persons). Created modeler follow-up t_ed1b43de.

Body

Country: LV — Latvia
Parent modeler task: t_01713ba2
Mission: review national-scale population artifact or blocker.

Verify:
- actual persons.parquet and households.parquet row counts, not board/card claims;
- official target population/households and diff;
- whether artifact is fixture/sample/national;
- HARD/FIRM/SOFT constraint status;
- provenance, uncertainty, degradation flags;
- no sensitive/hidden/de facto overlay misuse;
- tests and run bundle validity.

Verdict must be one of: PASS_FOR_INTERNAL_REVIEW, NEEDS_MODEL_FIX, NEEDS_SOURCE_FIX, FAIL.
If it is still a fixture, say so loudly and create/require follow-up routing rather than final delivery.

Parents

[
  "t_01713ba2"
]

Children

[
  "t_e0e72e3c",
  "t_ed1b43de"
]

Runs

IDProfileStatusOutcomeStartedEndedSummary/error
137synth-reviewerdonecompleted2026-05-19 20:51:05 CEST2026-05-19 21:04:18 CESTReviewed LV national candidate bundle: it is national-scale, not the old 8-person fixture, and exact HARD age-sex/population/household row-count controls are verified. Verdict NEEDS_MODEL_FIX because household/family realism is structurally invalid at scale (343,555 minor-only households; 280,878 under-15/no-adult households; underage reference persons). Created modeler follow-up t_ed1b43de.

Events

TimeKindPayload
2026-05-19 20:17:38 CESTcreated{ "assignee": "synth-reviewer", "status": "todo", "parents": [ "t_01713ba2" ], "tenant": "synthestat", "skills": [ "synthestat-infra05-validation-framework" ] }
2026-05-19 20:50:33 CESTcommented{ "author": "synth-modeler", "len": 1332 }
2026-05-19 20:50:49 CESTpromotednull
2026-05-19 20:51:05 CESTclaimed{ "lock": "vmi3188806:1590352", "expires": 1779217565, "run_id": 137 }
2026-05-19 20:51:05 CESTspawned{ "pid": 1698772 }
2026-05-19 21:04:07 CESTcommented{ "author": "synth-reviewer", "len": 5969 }
2026-05-19 21:04:18 CESTcompleted{ "result_len": 0, "summary": "Reviewed LV national candidate bundle: it is national-scale, not the old 8-person fixture, and exact HARD age-sex/population/household row-count controls are verified. Verdict NEEDS_MODEL_FIX because household/family realism is structurally invalid at scale (343,555 minor-only households; 280,878 under-15/no-adult households; underage reference persons). Created modeler follow-up t_ed1b43de.", "verified_cards": [ "t_ed1b43de" ] }

Comments

2026-05-19 20:50:33 CEST · synth-modeler
Modeler handoff for LV review:

Bundle path: `/home/synthestat/output/runs/LV/lv_population_review_national_candidate_2025_csb_freeze_44d91be2_seed420987/`

Direct verification already run:
- existing `/home/synthestat/output/LV/persons.parquet` = 8 and `households.parquet` = 8, so the previous seeded slice is not national done.
- candidate `synthetic_persons.parquet` = 1,860,565 vs LV_CSP_IRD041 2025 all-resident target 1,860,565 (residual 0).
- candidate `synthetic_households.parquet` = 843,907 vs LV_CSP_MVS041 2025 private-household target 843,907 (residual 0).
- candidate `synthetic_dwellings.parquet` = 843,907 modelled shells.
- age-sex max absolute residual against LV_CSP_IRD041 single-year controls = 0.
- household-size referential mismatches = 0.
- focused tests: `python -m pytest tests/test_synthesis_engine.py -q` -> 11 passed.

Important review issue: private-household population cross-check LV_CSP_MVS041 is 1,833,782, while the candidate assigns all 1,860,565 all-resident persons into households. The +26,783 residual is explicitly documented as a FIRM relaxation to reconcile all-resident HARD population with private-household row counts without creating hidden-population person labels. Please decide whether that is acceptable for internal review or requires a non-private resident overlay model first.
2026-05-19 21:04:07 CEST · synth-reviewer
LV population QA reviewer report

country: LV
run_id: lv_population_review_national_candidate_2025_csb_freeze_44d91be2_seed420987
artifact_reviewed: /home/synthestat/output/runs/LV/lv_population_review_national_candidate_2025_csb_freeze_44d91be2_seed420987
verdict: NEEDS_MODEL_FIX
confidence_in_verdict: high
summary: The candidate is a real national-scale review bundle, not the old 8-person fixture, and it matches declared national age-sex and household row-count controls exactly. It cannot pass internal review because household/family assignment is structurally invalid: hundreds of thousands of minors/children are emitted as one-person reference-person households, and child-family household types do not contain plausible children.
constraint_fit:
  hard:
    - PASS: synthetic_persons.parquet rows = 1,860,565; LV_CSP_IRD041 2025 all-resident target = 1,860,565; residual 0.
    - PASS: independent age_source_code x sex comparison against frozen LV_CSP_IRD041 returned max_abs residual 0.
    - PASS: synthetic_households.parquet rows = 843,907; LV_CSP_MVS041 2025 private-household target = 843,907; residual 0.
  firm:
    - RELAXED_WARN: candidate assigns all 1,860,565 all-resident persons into private households vs LV_CSP_MVS041 private-household population 1,833,782; residual +26,783 / 1.4605%. This is documented, but should remain a gate-visible limitation and ideally be addressed by a non-private/collective residual model.
  soft:
    - Household type/role/attribute distributions are modelled and not acceptable as emitted because household semantics are violated.
household_family_checks:
  - FAIL: 343,555 minor-only households.
  - FAIL: 280,878 households contain under-15 persons and no adult; examples begin with household_id 1..10, size 1, age_years 0, role reference_person, household_type P1.
  - FAIL: reference_person records include 280,878 under age 15; 343,555 under 18; 422,314 under 25.
  - FAIL: all actual minors appear as reference persons in one-person households; other_household_member min age is 39, so YCH/F1/M1 child-family household types are not populated with plausible child members.
  - PASS only on narrow referential size check: household size sums to person rows and person household_id values exist in household table.
dwelling_building_checks:
  - synthetic_dwellings.parquet rows = 843,907; modelled shells only.
  - Building assignment unavailable files are present and correctly avoid fabricated building links.
  - Dwelling/building quality tier C is appropriate for no real-building grounding.
hidden_population_checks:
  - Hidden-population overlay is explicitly unavailable; no hidden-population person labels were observed.
  - The +26,783 all-resident/private-household residual is documented instead of silently relabelled, but should remain a limitation until a collective/non-private overlay is modelled.
work_school_assignment_checks:
  - Work/school assignment unavailable file and assignment_diagnostics.json are present; no false assignment claim was found.
distribution_checks:
  - Age-sex HARD control exactness verified independently.
  - Household size referential counts match, but household-role and household-type joint distributions fail plausibility.
geography_checks:
  - Country-level LV only; geography_quality_tiers.json marks LV quality_tier B and no degraded fine zones. This is acceptable only for the declared national candidate scope, not fine-geography delivery.
uncertainty_provenance_checks:
  - Required metadata files present: build_manifest, constraint_residuals, distribution_diagnostics, household_diagnostics, dwelling_building_diagnostics, assignment_diagnostics, geography_quality_tiers, uncertainty_summary, source_provenance, model_notes.
  - Source provenance includes frozen CSB PxWeb payload paths and checksums.
  - Modelled attributes are labelled, but uncertainty_summary is coarse categorical rather than quantitative intervals for each modelled attribute.
privacy_release_checks:
  - No release-ready fine geography/person uniqueness claim; no building/work/school links. Privacy risk is lower than fine-geography release but still not anonymous by default.
critical_failures:
  - Child/minor-only ordinary private households at national scale.
  - Underage reference persons at national scale.
  - Household type/role/age composition incoherent; child-family types lack plausible child members.
  - Full repo test suite is not green: `python -m pytest -q` => 336 passed, 1 failed (`tests/test_fr_country_execution.py::test_generate_fr_seeded_country_execution`, degraded_zone_count expected 2 got 0). Focused `tests/test_synthesis_engine.py -q` passes 11/11.
model_fix_requests:
  - Rework household allocation so children are assigned to adult households/families unless explicitly institutional/exceptional and sourced.
  - Add diagnostics/gates for reference-person minimum age, child-without-adult households, household_type x member-age consistency, and role plausibility.
  - Preserve exact HARD age-sex and household-count controls while repairing household composition.
  - Consider modelling the non-private/collective residual separately rather than placing all all-resident persons into private households; if deferred, keep the relaxation gate-visible.
source_gap_requests:
  marginals: []
  distributions:
    - Better LV household family composition / child co-residence joint distributions would improve the model, but the present failure is primarily model logic, not missing source targets.
stopping_condition_assessment: Not a fixture and not source-exhausted. Route to modeler for another run; do not PASS_FOR_INTERNAL_REVIEW.
recommended_next_cards:
  - assignee: synth-modeler
    title: LV model fix: repair national candidate household realism before internal review PASS
    reason: Current national candidate matches counts but violates household/family realism at scale.
    depends_on: t_b7d00b12
created_followup: t_ed1b43de