BlueGen Synthetic Data Generation | Method Explained

There are several ways to generate synthetic data. Some methods mask real records by blacking out names, while others produce random fake rows that look vaguely real. BlueGen synthetic data is neither. It is new data, generated by a model that has learned what real individuals look like and produces ones that never existed. Understanding the difference matters, because the method behind the generation determines everything that follows: whether the data is actually usable, whether it can train a machine learning model, and whether it is genuinely safe to share.

There are two layers at which BlueGen can be explained. The high level layer covers installing the software, uploading your data and training a model in your own environment. This blog skips that layer entirely. The focus here is the layer below it, the actual generation method. What does the model see and how does it learn? What gets generated by rules instead of statistics? And how is the output checked before it leaves the system? Each of the five sections that follow takes one piece of that pipeline.

Where BlueGen sits among synthetic data methods

Synthetic data is an umbrella term. The label hides real differences in how the data is produced, and those differences decide whether the output is usable for analysis, model training and privacy safe sharing. A short positioning before the BlueGen method:

Four synthetic data generation methods compared
Method How it works Relationships between variables Link to real people
Randomization / dummy Variables drawn independently from simple distributions None None, but data is unusable for analysis
Classical anonymization / perturbation Real rows modified through masking, generalisation or perturbation Preserved (the row is the original row) Direct: each row still maps to a real person
Statistical models (copulas, Bayesian networks) Learn a distribution and sample from it Pairs captured, higher order limited Indirect, model dependent
Deep learning generation (BlueGen) Neural network learns the full multivariate distribution, generates new individuals Univariate, bivariate and multivariate all preserved No one to one link to any real person

Patient data example

Imagine a patient table with age, sex, blood pressure, medication, diagnoses and follow up measurements over time. A random generator would produce ages with no relation to blood pressure. A rule based approach would mask the real patient Jan into a row like M, 60 to 70, hypertension. That row is still Jan in a thin disguise. A deep learning model learns how age, blood pressure, medication and follow up relate. It then produces new patients whose combinations are statistically valid without any of them being Jan.

BlueGen synthetic data is therefore newly generated. It is not transformed, not masked and not random. It is also a privacy enhancing technology, which means the technique exists so the value of data can be used without exposing individuals.

synthetic generation methods

The deep learning core: learning by removing noise

Under the hood sits a neural network trained from scratch on the customer source data. The model is not pre trained and brings no external domain expertise. Whatever goes in defines what the model learns. Nothing more, nothing less.

What the model sees

The model receives a complete individual at once. A whole patient, household or transaction enters in a single pass, with every variable that belongs to that individual present together. This is what lets the model learn the interactions between variables instead of column statistics in isolation.

How the model learns

Training works by removing noise from an individual. The model is shown a record where some values are missing or distorted, and its task is to predict those values back from the surrounding context. A simple example: the age column is hidden for one patient, and the model has to fill it in using everything else known about that person. Across many iterations, with different variables hidden each time, the model is forced to learn how every variable depends on every other one. The denoising task is what makes the model generalise across the whole dataset rather than memorising specific rows.

After enough iterations the model has built an internal map of three things at once:

  • How variables are distributed on their own (univariate).
  • How pairs and triples of variables move together (bivariate and multivariate).
  • Which combinations of values do and do not occur in practice.

 

The third point matters more than it sounds. Plenty of generators can hit the right average age and the right average income, but still produce combinations that never occur in real life. The denoising process builds in the constraints that rule those impossible combinations out.

Time series in the same pass

For time series data, all measurement points for one individual enter the model together with their temporal relationships intact. The model does not just learn what a household looks like at a single moment. It learns how a household evolves. At generation time it produces a full time series per individual with those temporal patterns preserved.

Generation

Once training is complete, new individuals are produced by sampling step by step from the learned distribution. The process starts from an empty template. A first value is drawn that fits what the model has learned. The next value is drawn conditional on the first, then the next conditional on what is already in place, and so on until the individual is complete. Every step respects what came before. That is what makes the result internally coherent. The income matches the age band. The medication matches the diagnosis. The follow up measurements match the baseline.

The model can also produce combinations that did not appear literally in training data but still fit inside the learned distribution. For example, if the model has seen households that own an electric vehicle and, separately, households located in a desert region, it can generate a plausible household that combines both characteristics even if no such row existed in the source. This is interpolation. By default BlueGen stays inside the real distribution because that gives higher quality output. Extrapolation beyond it is possible but has to be configured manually.

synthetic data missing values

Context aware generation across multiple tables and time series

Information about one individual is almost never in a single flat table. Demographics live in one place, transactions in another, measurements in a third. Tools that synthesise table by table break the links between those pieces. BlueGen treats the whole individual across all tables and timepoints as one unit.

How the joint input is built

  • The full picture of one individual may live in tables A, B and C. BlueGen ingests them jointly per individual rather than table by table in isolation.
  • Static variables and time series belonging to the same individual are combined into one coherent input.
  • At generation time the whole individual is regenerated across all tables and all timepoints, with cross table and temporal dependencies preserved.

 

This is the operational reason for the context aware label. Downstream analysis and machine learning depend on those higher order relationships, not on column level statistics. Consider an energy use case where one table holds household demographics and another holds monthly consumption readings. Synthesise them separately and the column statistics will all look fine in isolation. But the link between household size and consumption pattern is gone, and any model trained on the joined output will learn the wrong relationships. BlueGen avoids this by treating the household and its consumption history as one input from the start.

multivariate synthetic data

Rule based generation for non statistical columns

Not every column carries statistical signals worth learning. Forcing the deep learning model to memorise something that is fundamentally a lookup or formula would be wasteful and would add unnecessary privacy risk. BlueGen splits the work deliberately. Three categories sit on the rule based side:

Which columns are generated by which engine
Column type Engine How it is produced Example
Statistical variables Deep learning Sampled from the learned multivariate distribution Age, blood pressure, medication, consumption
Names Rule based Drawn from controlled reference lists First name, surname
Addresses Rule based Drawn from reference lists, with statistical signal (city, postcode) preserved separately Street name, house number
Derived fields Rule based Computed deterministically from already generated values birth_year = current_year minus age, total = quantity times unit_price

Combining the two engines gives a dataset that looks realistic across every column and stays internally consistent within each row. The deep learning model focuses on what carries a signal. The rule based layer guarantees that derived fields match and that identifiers never leak from the source.

rule based synthetic data

See BlueGen Synthetic Data in Practice

If you are evaluating whether synthetic data fits a specific use case in your organisation, whether that is clinical research, model training, secure data sharing or scenario planning, the fastest way forward is a conversation with the team. 

We will look at your data shape, the use case, and how the four-step process applies to your context. Book a demo or reach the BlueGen team.

Share this article:

Get inspired by our cases.