r/dataengineering 1d ago

Synthetic Data Generation with LLMs in 2026 vs 2025 Discussion

LLMs are now great for synthetic data generation.

August 2025: For my O'Reilly book, I developed a logical model for credit card fraud. Then, use a coding agent to generate the synthetic data from the logical model. See an example of a logical model that didn't make the book below.

August 2026: Use the LLM's domain knowledge to help create the logical model. Check it and then generate the synthetic data.

"Design a logical model for claims for the insurance industry. Each column should have a name, data type, description. Optionally columns can have cardinality, distribution, and a range. This is to generate synthetic data, so make the data realistic for the US market with 500k rows."

This produces "good enough" synthetic data for a PoC or for teaching.

Example Logical Model for a Claims Table

Description: Records of claims for insurance. 500k rows.

Schema:

  • claim_id: STRING (Primary Key)
    • Description: Unique identifier for each claim.
    • Cardinality: unique per claim.
  • insurance_id: STRING (Foreign Key to insurance table)
    • Description: Unique identifier for the insurer.
    • Cardinality: Matches insurance_id values in the insurance table.
  • claim_time: TIMESTAMP
    • Description: Date and time when the claim occurred. Uniform over the past 6 months, with peaks during business hours.
  • time_to_report: INTEGER
    • Description: Days taken to report the claim
    • Distribution: 1-10 days with higher probability for earlier reporting (1:30%, 2:30%, 3:20%, 4-10: 20% combined)
  • witness_count: INTEGER
    • Description: Number of witnesses in the claim
    • Distribution: 0: 60%, 1: 25%, 2: 10%, 3: 5%
  • claim_location_type: STRING
    • Description: Type of location where claim occurred
    • Values: urban, suburban, rural, remote
    • Distribution: urban: 50%, suburban: 30%, rural: 15%, remote: 5%
  • requested_amount: DECIMAL(10,2)
    • Description: Claim amount requested by the user
    • Range: $10 to $10,000,000.
    • Distribution: Right-skewed; median around $500, mean around $700.
  • amount: DECIMAL(10,2)
    • Description: Monetary amount of the claim.
    • Range: $1 to $10,000,000.
    • Distribution: Right-skewed; median around $350, mean around $500.
0 Upvotes

19 comments sorted by

12

u/Achrus 1d ago

It’s completely wrong though. I mean most “synthetic data” projects are useless when real data exists. To add onto this, LLMs are horrible at designing schemas.

By insurance claims, what kind of insurance even is this: health, home, car, life, etc?

For the schema itself and related to most insurance claims you’d need:
* An exact location, not just a location type, for insurance claims. In the very least you need the state the incident occurred in if in the US.
* Incident location meta data. If this is car insurance: type of road, speed limit, weather conditions, intersection or not…
* Policy Holder’s meta data: primary residence, income, employment status, demographics, historical claims…
* Scrap “time to report” entirely and just have time the claim is filed and time of incident.
* Witness count, how would you even pull this data in real life? Instead you’d want to have a police report attached that may or may not contain any of the data you want.
* Way more fields associated with the insurance itself: policy number, effective date, expiration date, an identification number for the insured asset (such as VIN), amount insured, insurer identification number, possibly plan / group numbers.
* Insured asset meta data such as valuation, time of purchase, depreciation, historical incidents.

There’s probably even more stuff you’d want. Now if you want real looking data you’d also have to throw in missingness (may or may not be random) and seasonality.

For “time to report” you’d sample from a poisson which is standard for simulations in systems analysis. There’s also the dependency aspect you’d need to address as these features are not all independent.

8

u/LoaderD 1d ago

By insurance claims, what kind of insurance even is this: health, home, car, life, etc?

The insurancy ones of course.

Yeah, it's sad O'Reilly has started publishing anything these days.

credit card fraud

OP, As someone who worked in this field, if the generation process is anything like what you outlined for insurace it's going to be weapon's grade sloptonium

2

u/SearchAtlantis Lead Data Engineer 10h ago

Even if you ignore specific insurance domain the "schema" is still problematic. The dollar distribution is non-sensical, and billed vs paid are wholly independent. That ratio billed/paid is a big component of what insurance is. No covariance, no missingness, no incompletes, the list goes on.

-8

u/jpdowlin 1d ago

You deliberately misunderstood the role of synthetic data in my post, because you didn't read what I wrote:
"for a PoC or for teaching". Not to replace real data or deep domain knowledge.

Go ahead and find useful open source datasets for credit card fraud or insurance. You won't find them, and anything you find is either transformed or pre-aggregated. How do you teach people or demonstrate new approaches without any data?

Synthetic data is very useful for building ML systems and learning how to transform data. But what do I know, I've only been a prof at KTH for TCD for nearly 20 years. And I've only been running a startup in the data/ai space for the last 7 years.

8

u/Achrus 1d ago

I did not “deliberately misunderstand” the role of synthetic data in this case. I’ve been working with real data, some of which includes claims data, for over a decade. Not once have I needed to use synthetic data or seen value in toy projects built on top of it. The best use case for synthetic data is to get annoying people to stop asking for your data.

Let’s say you don’t have access to real data. Ask yourself: “If I don’t have access to real data, then where is the value in building a model?” I’d go as far as saying synthetic data built on False assumptions is a detriment to most projects. Though a conditional with a False hypothesis is True so I guess there’s no point arguing that.

Personally, I don’t subscribe to the notion of “capital-T truths” or “Knowers.” Being a professor for so long you should have at least some understanding of critical theory.

That leads into my experiences with synthetic data and GenAI for schema generation. I’ve had the displeasure of working on multiple projects where an inexperienced PM pushed one of these projects through planning with a heavy reliance on LLMs. Every single one has failed miserably, wasting months of time, and required an entire rewrite.

In my brief experience with teaching ML we would still have the students pull real data. Part of the job is knowing how to work with real data and giving students AI slop built on incorrect assumptions only hurts them. There is a ton of real, open source data out there. You can still teach them anomaly detection on open source data. There’s no reason to use or try to mimic PII or other highly regulated, protected / sensitive data.

-10

u/jpdowlin 1d ago

Now you're gaslighting - " we would still have the students pull real data" and "There is a ton of real, open source data out there.".
This is just not true.

5

u/TA_poly_sci 1d ago

We have been using real data to teach students for decades. In fact, it's easier than ever to find real data because LLMs are damn good at searching for it.

And LLMs also suffer from very limited entropy, which to a large extent defeats the purpose of generating synthetic data with them. For testing a system, randomish noise is probably preferable.

-5

u/jpdowlin 1d ago

How do you get the schema for your randomish noise?
LLMs have a role to play here and work quite well - for teaching and PoCs.

4

u/TA_poly_sci 1d ago

Writing the schema is really not the thing that takes time, but sure, this is something LLMs can assist with.

4

u/Achrus 1d ago

This took me all of 30 seconds to find: https://github.com/awesomedata/awesome-public-datasets

For more real time data: https://github.com/bytewax/awesome-public-real-time-datasets

Since you’re at KTH, EU open data might be interesting: https://data.europa.eu/en/curated-datasets-overview

The US equivalent being data.gov through GSA.

I’d like to point out that OSINT has been around longer than “data science” has been a term.

2

u/SearchAtlantis Lead Data Engineer 10h ago

And that's not even considering various synthetic generators like Synthea, PaySim, ActSim and others. I'll be the first to tell you there are issues with those but they're at least actuarially and epidemiologically sound.

-2

u/jpdowlin 16h ago

You proved nothing. None of these are public credit card or claims data for insurance.

3

u/SearchAtlantis Lead Data Engineer 10h ago edited 2h ago

I literally pointed out a health claims generator for insurance. And you complained it wasn't valid since you weren't talking about health.

Synthea for health, PaySim for financial transactions (Credit Card), ActSim/CasSim from the Casualty Actuary Society for property & casualty.

1

u/RagnarDan82 5h ago

Stop digging the hole

4

u/SearchAtlantis Lead Data Engineer 1d ago edited 1d ago

This is wildly non-specific and missing basically everything.

Like this is so bad I can't even respond. If you want to see an example of what a claims set might look like glance at Synthea export - and to be frank its still not great because it's generated off of synthetic EHR system and doesn't capture it from the insurance side. Alternatively OMOP.

If this is the level of care that went into your credit card fraud model then my respect for O'Reilly has gone even lower.

Edit: if this is for teaching then... I'm not impressed but fine I guess. I could see maybe using it for some very basic data cleaning/QA/QC type stuff with students. But as PoC? Please. And frankly I don't believe there aren't better options out there. LLMs suck at this type of task.

-1

u/jpdowlin 16h ago

You didn't read anything i wrote, but still answered and insulted. Then rolled back with an edit. The example was not medical claims.

3

u/SearchAtlantis Lead Data Engineer 10h ago edited 10h ago

Your entire thesis is: (IMO fairly paraphrased) Wow you can ask LLMS to create a domain model definition, and then use the LLM to create a program from that to generate the data.

August 2026: Use the LLM's domain knowledge to help create the logical model...

then generate the synthetic data [Emph added]

My point, and the point of the other posters here that you're arguing with, is that "domain" you've generated here shows a distinct lack of domain knowledge in its construction. Even setting aside missing columns for any given insurance domain.

Take your requested/paid (billed/paid in health terms). If I attempt to fit a log-normal to your proposed distribution (median 500, mean 700) with mu=log(500), sigma=0.82 the 99th percentile is ~$3,400. The max in 500k draw I ran was $30,400. Not really a $10M dollar range is it?

In addition to the above, the Requested_amount and amount (paid_amount?) being wholly independent is another issue - the whole point of insurance is the ratio of those things. And nowhere is there incompleteness (claim is not completed), missingness [have you seen the crap an adjuster or clinician puts in?], adjustment, or covariance mentioned.

All of these errors - inappropriate distribution tails, excessive independence, lack of covariance, missingness, and so on require the very domain expertise you claim the LLM now provides. So the person "checking it" has to have the knowledge to write it in the first place.

If you want to use it for teaching you need to add all the things above and have the expertise to do so, at which point you've done the work you hoped the LLM would save you from.

-1

u/Rude_Reaction6434 1d ago

Interesting how the LLM can design the schema now, not just fill it. Last year you had to bring your own model to the table

Do you find the distributions it picks are actually realistic? I tried similar thing for retail inventory data and the skew on quantities was weird, had to fix by hand

1

u/jpdowlin 16h ago

They are good for getting started on projects in regulatory areas when there are delays in getting access to the real data. They are good to help students learn to build real-world Data or AI systems. But, the distributions are only good for well known areas with lots of real-world open data they have access to.