Opens in a new tab

Synthetic population generation

Data that reproduce the statistical properties of a real population without containing a single real person

What it is

We generate synthetic populations that reproduce the distributions and dependence structure of a real population, without any record corresponding to a specific person.

They have two main uses: creating a development and validation environment when there is no access to the real data, and producing estimates at levels of disaggregation where the real sample is too small. The population is generated reproducibly, with a fixed random seed and version-controlled code.

Objectives

  • Build a synthetic population with realistic marginal distributions and dependence structure.
  • Have a reproducible environment for validating analyses, pipelines and systems without real data.
  • Support estimation at levels of disaggregation the real sample cannot reach.
  • Leave a reusable asset for training and regression testing.
Key points

Statistical fidelity

  • We reproduce the known marginal distributions of the target population.
  • The detail layer is generated conditionally on strata, preserving realistic dependencies.
  • What is preserved and what is not is made explicit: fidelity is claimed for what has been modelled.

Reproducibility

  • Fixed seed and version-controlled code: the same input always produces the same population.
  • Generation is auditable step by step, not a black box.
  • The process can be re-run and shared without ambiguity.

Two main uses

  • Validating analyses and systems when the real data are not accessible.
  • Supporting estimates at fine-grained levels of disaggregation where the real sample is insufficient.
  • Two legitimate uses of the same generation engine.

Not personal data

  • The synthetic population contains no real individuals: no record maps to a person.
  • That simplifies governance for test, training and development environments.
  • It allows work without the access restrictions that apply to real data.

What it is for

  • Develop and validate an analysis or a system when the real data are not accessible for reasons of privacy, timelines or governance.
  • Obtain estimates at a level of disaggregation where the real survey or registry is not large enough.
  • Have a realistic test dataset that is not personal data and can be shared and reused.
Why choose this service

You can't always get access to the real data in time. But you can validate your analysis against a population that behaves like the real thing.

Privacy, governance timelines or sample size hold up work that cannot wait for the final data. A high-fidelity synthetic population unblocks development and validation earlier, and makes it possible to estimate where the real sample falls short, without handling data on real people.

Unblocking work without real data

When access to the real data depends on permissions, timelines or governance, development does not have to stop. You build and validate against a population that reproduces the statistical behaviour of the real data.

Estimation at fine-grained levels

Where the real sample is not large enough to disaggregate to a given level, synthetic generation supports estimates at that level without inventing signal where there is none.

Reproducible and ready for training

A fixed seed and version-controlled code make the population re-runnable and shareable. It also serves as a test bed for training and for validating future developments.

No records of real people

Because it incorporates no real individuals, the synthetic population contains no records of real people, which simplifies its use in test, demonstration and training environments.

Our process

What working with us looks like

We apply our D²I (Data to Insights) methodology to every service. A structured, iterative and transparent process that turns complex data into actionable knowledge.

01

Kick-off and problem definition

We meet with you to understand the clinical problem, the data available and the objectives of the project. We agree on deliverables, timelines and communication channels, and we sign whatever confidentiality agreements you need to protect your data.

02

Data review and preparation

We assess the quality of your data, identify inconsistencies and limitations, and structure the data for analysis. If critical information is missing, we tell you before going any further. We document every cleaning decision so that the process is traceable and reproducible. We characterise the target population from the known distributions and the available sources, and identify the strata and dependencies the synthetic population must preserve.

03

Analysis and modelling

We apply the statistical methodology that fits your questions. We work iteratively: we share preliminary results with you, discuss the findings and adjust the approach where needed. We do not work in the dark until the final delivery. We generate the population conditionally by strata with a fixed seed, and validate its fidelity by checking its distributions and dependencies against the reference ones before signing it off.

04

Communicating results

We turn the findings into the format you need: a technical report, tables and figures for publication, an interactive dashboard or an executive presentation. We always include the clinical interpretation, not just the figures.

05

Impact review session

30 days after delivery we meet with you again for a 60-minute strategy session. By then you have had time to present the results internally, the real implementation questions have come up and you can assess the impact of the work with some perspective. We answer your questions, adjust interpretations where necessary and agree together on the way forward.

This is our general process. If you want to understand how we apply it technically to each type of analysis, see our full D²I methodology.

Have a data project on your hands?

Tell us about your case and we will work out together how to approach it.

Book a session
FAQs

Frequently asked questions

What is a synthetic population, and how does it differ from anonymised data?

A synthetic population is a set of generated records designed to reproduce selected distributions and relationships in a reference population, without its rows being copies of specific people. It is useful when you need data that behave like the real data for development, testing or training. The difference from anonymised data lies in their origin: an anonymised dataset starts from records of real people and transforms them to reduce re-identification risk; a synthetic population is generated from the statistical properties of the population. When it is generated from reference distributions alone, no record derives from a person. If the generator is fitted to real microdata, the label ‘synthetic’ is not enough: a model that reproduces rare combinations can disclose information, so we also assess disclosure risk before the population is shared.

What is a synthetic population used for? When is it right for me?

It has two main uses. The first is to create a development and validation environment when access to the real data is restricted: it lets you check that an analysis or pipeline works, or train a team, with plausible structures and patterns while governance is being resolved, and then validate the work with the real data. The second is to support model-based estimates or simulations for subgroups or areas where the survey or register does not have a large enough sample, with one condition: a synthetic population contains no information beyond the sources and assumptions used by the generator, so it does not fill an evidence gap by itself. It is a good fit when the bottleneck is access or sample size, not when you need to discover new relationships or replace the data collection required for an empirical conclusion.

How faithful is it to the real population? How close is the resemblance?

The synthetic population reproduces the properties that have been explicitly modelled, the known marginal distributions and the dependence structure between variables, and fidelity is claimed for those, not for everything. This is worth understanding before using it, because "it resembles the real thing" has a specific scope. The marginal distributions of the target population are reproduced and the detail layer is generated conditionally on strata, preserving the dependencies that could be characterised and modelled; what is preserved and what is not is stated explicitly. That honesty is deliberate: a synthetic population is not a copy equivalent to the real data in every property, but a faithful reproduction of the properties that have been characterised. Fidelity is validated by checking the distributions and dependencies of the generated population against the reference ones before signing it off. Claiming fidelity for what has been modelled, and no more, is what separates defensible synthetic data from data that promise a resemblance they cannot sustain.

Can I replace the real data with synthetic data to draw definitive conclusions from my study?

No: a synthetic population is for developing, validating and disaggregating, not for replacing real data in a study's definitive inference. It reproduces the properties built into its generator, so conclusions drawn from it reflect that model and its generation assumptions; it does not create new evidence about the real population. It can be used to develop an analysis, check that a pipeline works, train a team or explore scenarios before the final data are available, and it can support model-based estimates if they are presented as such and their behaviour is validated against observed sources. A confirmatory conclusion, however, must rest on suitable real data or independent external evidence. Synthetic data can accelerate and unblock parts of the work; they cannot replace the observations needed to establish what is happening in the population.

Do you generate synthetic control arms for clinical trials?

No. This service generates synthetic populations for development, validation and disaggregation; it does not produce synthetic control arms for clinical trials. This limit is worth stating because synthetic data generation is sometimes associated with that regulatory application, which is a different field. A synthetic control arm intended to replace a comparison group in a trial with a regulatory purpose requires its own methodological framework and set of requirements, which fall outside the scope of this service. The boundary is clear: synthetic populations for test environments, training, systems validation and estimation at fine-grained levels of disaggregation, yes; synthetic control arms for confirmatory inference in a regulatory trial, no. Anyone who needs that regulatory application will find an explicit boundary here, not a vague promise. The focus stays on the service's two legitimate uses.

How do I know the generation process is reliable and not a black box?

Generation is reproducible and auditable: with a fixed seed and version-controlled code, the same input always produces the same population, and the process can be followed step by step. This applies to any use of the synthetic population, where opaque generation would be impossible to defend or to maintain. Reproducibility means that the dataset can be re-run and shared without ambiguity, and that anyone with the code, the seed and the same execution environment can reproduce the same population. Auditability means that the modelling decisions, such as which distributions are reproduced, which strata condition the generation or which dependencies are preserved, are in plain view, not hidden in a black box. On top of this comes fidelity validation, which checks the generated population against the reference distributions and dependencies. A synthetic population is only useful if you can trust how it was made, and that trust comes from the traceability of the process, not from how the result looks.

What do I need to provide to generate a synthetic population, and what do you do?

You need a characterisation of the target population: the known distributions, the available sources that describe it, and the strata and dependencies the synthetic population must preserve. The client provides knowledge of the population and the reference sources, and then uses the generated population for their own purposes; the service models, generates the population conditionally by strata with a fixed seed, and validates its fidelity. The full real microdata are not always essential. Work often starts from reference distributions and a known structure, and in those cases the resulting population is generated from reference distributions and dependencies, not from a copy of real individuals. What does determine the scope is the quality of the starting characterisation: the fidelity of the synthetic population depends on how well the properties it must reproduce are known. The service delivers the generation engine and the population; how it is used is the client's decision.

What do you deliver with a synthetic population, and is it reusable?

You receive the synthetic population together with the version-controlled generation code, the fixed seed and the fidelity validation that checks its distributions and dependencies against the reference ones. This applies if you need a reproducible working environment that is often reusable beyond its initial purpose. The population remains an asset: because it can be re-run and shared, it serves as a test bed for training, as a validation environment for future developments and as a regression-testing dataset, with fewer access restrictions than the real data, provided the conditions of use defined for that synthetic population are respected. The documented code makes it possible to regenerate or extend the population when needs change, without redoing the work from scratch. The service generates, models and validates; the client decides what to use it for. What you receive is not just a data file but the reproducible process that generates it, which is what makes it an asset rather than a one-off delivery.

Shall we talk?

Tell us what you are working on and we will give you a straight answer on how we can help.