BG 1:1 population synthesis QA cycle
Country-specific layer for synthetic people in households, dwellings, real building stock where available, hidden-population overlays, and work/school assignment evidence.
Board: synthestat-population-qa · Tenant: synthestat · Country: BG · Overall status: done
Ideal-country quality criteria: impossible 1:1 benchmark
This is the common gold-standard benchmark for an ideal country. It is intentionally impossible to fully satisfy: complete success would mean a 1:1 replica of the real population where every person, household, dwelling, attribute, and assignment is exactly represented. The QA page uses it as an asymptote and gap taxonomy, not as a release promise.
Apply this same rubric to this country’s latest run, then report which needs are measured, constrained, modelled, unavailable, or blocked.
| Need | Unachievable ideal | QA evidence we require instead | Why perfection cannot be achieved |
|---|---|---|---|
| Complete de jure resident coverage | Every real resident represented exactly once in the right country, municipality, small area, household, and dwelling. | Synthetic person count equals official population at all enforced geographies; no unexplained duplicate, missing, or out-of-universe people. | A true 1:1 resident list is a confidential population register and changes continuously; Synthestat can only match official aggregates and declared source universes. |
| Complete attribute truth | Each synthetic person has the same age, sex, household role, education, occupation, industry, origin, health proxy, income proxy, and lifecycle state as the corresponding real person. | Published marginal and cross-tab constraints pass within HARD/FIRM/SOFT tolerances; modelled fields carry uncertainty and measured/constrained/modelled provenance. | Official releases do not expose a complete individual joint distribution, and many attributes are survey-derived, lagged, suppressed, or unavailable at fine geography. |
| Perfect household and family structure | Every household contains the exact real members and relationships, including multi-generation, partnership, child, shared, institutional, and edge-case arrangements. | Household totals, household-type distributions, age/sex/role consistency, fertility/child constraints, and structural invariants pass with explicit residuals. | Household membership is sensitive microdata; public sources usually expose only aggregate household/family tables and partial cross-tabs. |
| Exact dwelling and building grounding | Every household is assigned to its real dwelling and building with exact occupancy, vacancy, dwelling type, floor area, tenure, and address-level geography. | Dwelling/building capacity checks pass; vacancy/second-home/institutional dwellings are represented or explicitly unavailable; building links have source provenance. | Many countries lack open address-level registers; dwelling occupancy is confidential and time-varying. |
| Complete de facto and hidden-population overlays | Homeless, undocumented, refugees, students away from home, seasonal, institutional, tourists, and daytime populations are all represented with exact location and timing. | Overlay layers use interval estimates, source-specific quality flags, and never silently modify de jure HARD constraints. | Hidden populations are partly unobserved by definition; ethical/privacy constraints forbid exact person-level labels. |
| Exact school, workplace, facility, and mobility assignment | Every person is assigned to the real school, workplace, care provider, commute, and daily activity chain they use. | Assignment layers use official registers/OD flows where available; modelled assignments are flagged and validated only against aggregate flows/capacities. | Operational assignments are usually protected registers or dynamic behavioural data; Phase 1 must not imply they are known. |
| Full joint-distribution realism | The full multivariate joint distribution is identical to reality across all attributes, households, geography, and rare subgroups. | High-priority marginals/cross-tabs pass; sparse zones and prior-dominated attributes are clearly marked with quality tiers and credible intervals. | The joint distribution is non-identifiable from published marginals; IPF/BN/hierarchical pooling choose plausible distributions, not truth. |
| Zero uncertainty and zero lag | All values are current today and known without error. | Every output records reference period, retrieval timestamp, lag, confidence, uncertainty bounds, and degradation decisions. | Official statistics are lagged, revised, sampled, suppressed, and harmonized after collection. |
| Privacy-safe yet maximally detailed release | The system releases maximum useful detail while creating zero re-identification risk. | Release mode, k-anonymity/cell safeguards, perturbation/aggregation policy, and sensitive-field treatment are explicit. | Fine-area synthetic microdata can still create structurally unique records; synthetic does not mean anonymous. |
| Perfect reproducibility and auditability | Any user can trace every output record to exact source snapshots, transformations, constraints, relaxations, seeds, and code versions. | Run manifests, source provenance, checksums, frozen extracts, seeds, versioned crosswalks, validation reports, and relaxation logs are complete. | This is approachable but never final: source portals, classifications, geography, and code keep changing, so audits must be continuously renewed. |
Population output status
| People | Target population | National coverage | Absolute shortfall | Households | Dwellings | Houses/buildings | Max marginal deviation | HARD status | Run |
|---|---|---|---|---|---|---|---|---|---|
| 8 | — | — | — | 8 | 8 | 3 | 0.00% | pass_exact | bg_population_review_cycle2_16b73a96_seed420987 |
Deviation is the maximum absolute relative error across collected HARD/FIRM/SOFT marginal constraints in the latest review bundle. GUIDE/INFORMATIONAL priors are excluded. National target/coverage are read from build_manifest.json when available and override any visual impression of completion.
Datasets and distributions
Lists come from the latest run bundle: source_provenance.json, distribution_diagnostics.json, and build_manifest.json.
Summary
| Datasets used | 8 |
|---|---|
| Distributions available | 38 |
| Constraints/distributions used in synthesis | 43 |
| Constraint types | FIRM: 7, GUIDE: 18, HARD: 2, SOFT: 11 |
| Dataset variants | comparable_country: 11, current: 1, robust: 26 |
| Finest-geography status | constrained: 27, modelled: 11 |
Source gaps
- No live NSI retrieval adapter is implemented yet for BG Task 01.
- Building integration is still fixture-backed and requires dwelling inference.
- Current Bulgaria execution is an uncertainty-aware seeded slice, not a production national extraction path.
Datasets used
| Dataset/source ID |
|---|
BG_ADMIN_address_context |
BG_AGCC_seeded_buildings |
BG_NSI_boundaries |
BG_NSI_education |
BG_NSI_employment |
BG_NSI_households |
BG_NSI_income |
BG_NSI_population |
Best source by distribution family
| Distribution family | Dataset/source ID |
|---|---|
D01_demographics_finest | BG_NSI_population |
D05_education | BG_NSI_education |
D12_household_type | BG_NSI_households |
building_stock | BG_AGCC_seeded_buildings |
employment_occupation_industry | BG_NSI_employment |
geography_boundaries | BG_NSI_boundaries |
income | BG_NSI_income |
Available distributions / priors in registry
| Spec | Label | Type | Geo | Status | Variant | Confidence | Data URI |
|---|---|---|---|---|---|---|---|
C01_education_occupation_coupling | Education-occupation coupling strength | GUIDE | national | modelled | comparable_country | 0.6 | data/literature/seeded_occupation_priors.yaml |
C02_assortative_mating_education | Assortative mating by education | GUIDE | NUTS-1 | modelled | comparable_country | 0.61 | data/literature/seeded_occupation_priors.yaml |
C03_assortative_mating_age | Assortative mating by age | GUIDE | NUTS-1 | modelled | comparable_country | 0.68 | data/literature/seeded_occupation_priors.yaml |
C04_assortative_mating_origin | Assortative mating by origin | GUIDE | NUTS-1 | modelled | comparable_country | 0.62 | data/literature/seeded_occupation_priors.yaml |
C05_spatial_sorting_education | Spatial sorting by education | GUIDE | national | modelled | comparable_country | 0.7 | data/literature/seeded_occupation_priors.yaml |
C06_spatial_sorting_income | Spatial sorting by income | GUIDE | national | modelled | comparable_country | 0.7 | data/literature/seeded_occupation_priors.yaml |
C07_spatial_sorting_origin | Spatial sorting by origin | GUIDE | national | modelled | comparable_country | 0.72 | data/literature/seeded_occupation_priors.yaml |
C08_intergenerational_income_elasticity | Intergenerational income elasticity | GUIDE | national | modelled | comparable_country | 0.58 | data/literature/seeded_occupation_priors.yaml |
C09_intergenerational_occupation_transmission | Intergenerational occupation transmission | GUIDE | national | modelled | comparable_country | 0.58 | data/literature/seeded_occupation_priors.yaml |
C10_commuting_mode_distance | Commuting mode × distance × occupation × region | GUIDE | NUTS-1 | modelled | comparable_country | 0.64 | data/literature/seeded_occupation_priors.yaml |
C11_health_age_sex_education | Health × age × sex × education | GUIDE | national | modelled | comparable_country | 0.62 | data/literature/seeded_occupation_priors.yaml |
D01_age_sex_nuts3 | Age × sex at NUTS-3 | HARD | NUTS-3 | constrained | robust | 0.74 | docs/wiki/compiled/D01_age_sex_nuts3.md |
D01_census_age_sex_nuts3 | Census age × sex at NUTS-3 | HARD | NUTS-3 | constrained | robust | 0.74 | docs/wiki/compiled/D01_census_age_sex_nuts3.md |
D02_marital_nuts3 | Marital status × age × sex at NUTS-3 | FIRM | NUTS-3 | constrained | robust | 0.73 | docs/wiki/compiled/D02_marital_nuts3.md |
D03_origin_age_sex | Origin group × age × sex | FIRM | NUTS-3 | constrained | robust | 0.73 | docs/wiki/compiled/D03_origin_age_sex.md |
D04_religion_age_sex_region | Religion × age × sex × region | GUIDE | NUTS-3 | constrained | robust | 0.71 | docs/wiki/compiled/D04_religion_age_sex_region.md |
D05_census_education_nuts3 | Census education at NUTS-3 | FIRM | NUTS-3 | constrained | robust | 0.73 | docs/wiki/compiled/D05_census_education_nuts3.md |
D05_education_nuts2 | Education at NUTS-2 | FIRM | NUTS-2 | constrained | current | 0.7 | docs/wiki/compiled/D05_education_nuts2.md |
D06_employment_age_sex_education | Employment status × age × sex × education | FIRM | unknown | constrained | robust | 0.73 | docs/wiki/compiled/D06_employment_age_sex_education.md |
D07_occupation_isco3 | Occupation ISCO-3 distribution | SOFT | unknown | constrained | robust | 0.71 | docs/wiki/compiled/D07_occupation_isco3.md |
D08_occupation_education | Occupation × education | SOFT | unknown | constrained | robust | 0.71 | docs/wiki/compiled/D08_occupation_education.md |
D09_industry_nace2 | Industry NACE-2 distribution | SOFT | unknown | constrained | robust | 0.71 | docs/wiki/compiled/D09_industry_nace2.md |
D10_income_education_occupation | Income × education × occupation | SOFT | unknown | constrained | robust | 0.71 | docs/wiki/compiled/D10_income_education_occupation.md |
D11_income_household_type_region | Income × household type × region | SOFT | NUTS-3 | constrained | robust | 0.71 | docs/wiki/compiled/D11_income_household_type_region.md |
D12_household_type_size_region | Household type × size × region | FIRM | NUTS-3 | constrained | robust | 0.73 | docs/wiki/compiled/D12_household_type_size_region.md |
D13_children_mother_age_education | Children × mother age × education | SOFT | NUTS-3 | constrained | robust | 0.71 | docs/wiki/compiled/D13_children_mother_age_education.md |
D14_partner_age_gap_homogamy | Partner age gap × homogamy | SOFT | NUTS-3 | constrained | robust | 0.71 | docs/wiki/compiled/D14_partner_age_gap_homogamy.md |
D15_coresidence_structure | Co-residence structure | SOFT | NUTS-3 | constrained | robust | 0.71 | docs/wiki/compiled/D15_coresidence_structure.md |
D16_household_income_type_region | Household income × type × region | SOFT | NUTS-3 | constrained | robust | 0.71 | docs/wiki/compiled/D16_household_income_type_region.md |
D17_education_mobility | Education mobility | GUIDE | unknown | constrained | robust | 0.71 | docs/wiki/compiled/D17_education_mobility.md |
D18_occupation_given_education | Occupation | education | SOFT | unknown | constrained | robust | 0.71 | docs/wiki/compiled/D18_occupation_given_education.md |
D19_employment_given_demographics | Employment | demographics | SOFT | unknown | constrained | robust | 0.71 | docs/wiki/compiled/D19_employment_given_demographics.md |
D20_birth_intervals | Birth intervals | GUIDE | unknown | constrained | robust | 0.71 | docs/wiki/compiled/D20_birth_intervals.md |
D21_age_first_birth | Age at first birth × education × cohort | GUIDE | unknown | constrained | robust | 0.71 | docs/wiki/compiled/D21_age_first_birth.md |
D22_age_leaving_home | Age leaving home | GUIDE | unknown | constrained | robust | 0.71 | docs/wiki/compiled/D22_age_leaving_home.md |
D23_divorce_duration_children_education | Divorce × duration × children × education | GUIDE | NUTS-3 | constrained | robust | 0.71 | docs/wiki/compiled/D23_divorce_duration_children_education.md |
D24_age_marriage_sex_education | Age at marriage × sex × education | GUIDE | NUTS-3 | constrained | robust | 0.71 | docs/wiki/compiled/D24_age_marriage_sex_education.md |
D25_internal_migration | Internal migration | FIRM | unknown | constrained | robust | 0.73 | docs/wiki/compiled/D25_internal_migration.md |
Constraints/distributions used in synthesis manifest
| Constraint or distribution ID |
|---|
CORR_OCC_EMPLOYMENT |
D01 |
D12 |
EMPLOYMENT_CODE_LINK |
FIRM |
GUIDE |
HARD |
HARMONIZATION |
HH_CHILD_ADULT |
HH_COUPLE_TWO_ADULTS |
HH_SINGLE_SIZE_ONE |
HH_SIZE_PLAUSIBLE |
HMN_AGE_RANGE |
HMN_BIRTH_DATE |
HMN_BUILDING_SCHEMA |
HMN_DWELLING_BUILDING_REF |
HMN_DWELLING_SCHEMA |
HMN_EDUCATION |
HMN_EDUCATION_AGE |
HMN_EDUCATION_GROUP |
HMN_EMPLOYMENT |
HMN_HOUSEHOLD_DWELLING_REF |
HMN_HOUSEHOLD_SCHEMA |
HMN_HOUSEHOLD_TYPE |
HMN_INDUSTRY |
HMN_MARITAL |
HMN_OCCUPATION |
HMN_ORIGIN |
HMN_PERSON_HOUSEHOLD_REF |
HMN_PERSON_SCHEMA |
HMN_RETIRED_AGE |
HMN_SEX |
INFORMATIONAL |
MODEL_FALLBACK_RATE |
MODEL_REGISTRY_PROFILE |
SPATIAL |
SPT_BUILDING_COORDS |
SPT_DWELLING_BUILDING_REF |
SPT_DWELLING_HOUSEHOLD_REF |
SPT_HH_DWELLING_REF |
SPT_PERSON_HOUSEHOLD_REF |
STRUCTURAL |
XCN_COMPARABILITY |
Current country tasks
| ID | Title | Assignee | Status | Created | Latest summary |
|---|---|---|---|---|---|
| t_d0b42f73 | BG population cycle 2 review: seeded rerun with dwelling backrefs and unavailable layers preserved | synth-reviewer | done | 2026-05-19 19:02:28 CEST | Reviewed BG cycle-2 bundle and wrote reviewer report at /home/synthestat/workspace/manager_handoffs/reviewer/2026-05-19_170457Z_BG_population_review_cycle2.md. Verdict MODEL_IMPROVEMENT_EXHAUSTED_HUMAN_REVIEW: the bundle is contract-complete and dwelling backrefs are fixed for degraded seeded/intern |
| t_cef2680b | BG population rerun after source upgrades with degraded-layer metadata preserved | synth-modeler | done | 2026-05-19 18:44:43 CEST | Built and verified BG cycle-2 population review bundle at /home/synthestat/output/runs/BG/bg_population_review_cycle2_16b73a96_seed420987 after rerunning the BG seeded synthesis/validation chain. The bundle is contract-complete for internal review, preserves explicit unavailable hidden/work-school/f |
| t_06ddffd0 | BG joint and conditional distribution evidence for modelled Cxx/Dxx surfaces | synth-distributions-researcher | done | 2026-05-19 18:44:33 CEST | Completed BG joint/conditional distribution evidence handoff. Wrote findings, extraction specs, refreshed distributions latest board, and appended manager update; strongest replacement sources are Eurostat Census 2021, Eurostat LFS/SILC, NSI open-data mirrors, with GGP Bulgaria as restricted-microda |
| t_6df5bc04 | BG source gap closure for official marginals, buildings/dwellings, hidden populations, and assignments | synth-marginals-researcher | done | 2026-05-19 18:44:23 CEST | Closed the BG marginal/source evidence pass with official NSI Census 2021 and timeseries source inventory, hidden-population/assignment gap flags, downloader queue, and manager update. Reports written under /home/synthestat/workspace/manager_handoffs/marginals/, with EVIDENCE_EXHAUSTED explicitly ma |
| t_f9004c92 | Review BG population synthesis bundle: cycle 1 | synth-reviewer | done | 2026-05-19 18:35:19 CEST | Reviewed BG cycle-1 bundle and wrote reviewer handoff at /home/synthestat/workspace/manager_handoffs/reviewer/2026-05-19_164341Z_BG_population_review_cycle1.md. Verdict NEEDS_MORE_SOURCES: bundle is contract-complete and honest about seeded scope, but not passable as a country population due 2-zone/ |
| t_6c64d812 | BG population synthesis review bundle: cycle 1 | synth-modeler | done | 2026-05-19 18:35:03 CEST | Built and verified the BG cycle-1 population synthesis review bundle at /home/synthestat/output/runs/BG/bg_population_review_cycle1_85123614_seed420987. The bundle is contract-complete for internal research review with HARD constraints passing exactly, explicit unavailable markers for hidden-populat |
| t_2a07ba7d | orchestrate BG population synthesis QA loop | synth-manager | done | 2026-05-19 18:34:13 CEST | Routed BG population synthesis QA cycle 1: created synth-modeler bundle-build task t_6c64d812 and dependent synth-reviewer bundle-review task t_f9004c92. Updated /home/synthestat/workspace/manager_handoffs/manager_updates.md with bottleneck, routing, blocker, and next-action notes. |
Process
synth-manager creates and controls the country loop.
synth-modeler generates the review bundle: people, households, dwellings/buildings or unavailable markers, overlays, assignments, manifests, residuals, diagnostics, uncertainty, provenance.
synth-reviewer audits constraints, marginals, household/family realism, hidden populations, dwelling/building grounding, work/school assignment, uncertainty, provenance, and privacy.
PASS finalizes; NEEDS_MODEL_FIX routes back to modeler; NEEDS_MORE_SOURCES routes to marginal/distribution researchers then downloader; exhausted evidence/model plateau stops for human decision.
Quality gates and stop conditions
- PASS: satisfactory for declared country evidence tier and internal review mode.
- NEEDS_MODEL_FIX: model logic, bundle, uncertainty, household/dwelling/assignment issue.
- NEEDS_MORE_SOURCES: missing marginal or joint/conditional evidence; researchers then downloader.
- EVIDENCE_EXHAUSTED_HUMAN_REVIEW: source search cannot responsibly improve the output.
- MODEL_IMPROVEMENT_EXHAUSTED_HUMAN_REVIEW: modeler cannot materially improve or diagnostics plateau.