Synthetic Signals
← Platform
The population

A whole city — not a sample.

Most teams test their agent against a handful of personas they wrote themselves. Synthetic Signals gives it a whole city: thousands of distinct people, synthesized from real US Census data, each living a realistic day on real San Francisco streets — a research panel and a test bed in one.

1k–5kpeople per simulated city
~2.7%off from real Census demographics
100%synthetic — no real people, no personal data
2cities live · SF + Oakland
Census-grounded

Real demographics, not guesses

Every citizen is generated from public, aggregate US Census statistics — never from any real person's record. Age, sex, income, household, education and occupation are matched to the city's real demographics, so the population looks like your actual users, not a designer's hunch about who they are.

  • Matched to your city's real demographics, accurate to ~2.7%
  • Built person by person from real distributions — no real individuals
  • Skew any axis — age, income, language — to model a region or a what-if
Synthetic populationvs. ACS marginals
Age 18–34
31%
Age 35–64
49%
Age 65+
20%
< $50k
28%
$50–150k
44%
$150k+
28%
Fit error 2.68% — matches the real city
Living, not static

They live on the real map

Citizens move along actual San Francisco streets, routed over OpenStreetMap, and follow a realistic daily rhythm — home, commute, work, errands, social. Your agent meets them in context, at the right moment in their day, not as a frozen profile.

  • Street-level routing on real OSM road networks
  • Daily schedules: sleep, commute, work, errands, leisure
  • Needs and mood that shift hour to hour
Behavior

A personality, modeled on top

Demographics come from the Census. Personality and behavior are modeled on top: every citizen carries Big Five (OCEAN) traits that shape how they act in a conversation — the skeptic, the rambler, the anxious caller, the one who won't read the instructions. These are the edge cases you'd never think to script by hand.

  • Big Five personality traits per citizen
  • Traits drive conversation style, patience and trust
  • Hard cases you'd never script — without hand-authoring each one
HS
Hana Singh32 · Female · Healthcare
Income$100–150k
HouseholdMarried · 2
EducationGraduate
CommuteBus · 28 min
Big Five (OCEAN) personality
O
C
E
A
N
At scale

Run the whole city, on demand

Generate a fresh population in minutes and point your agent at all of it at once — not twenty hand-picked cases. Runs are deterministic and seeded, so the same city comes back every time — replay the exact setup that produced a failure.

  • Generate 1,000–5,000 people per city, on demand
  • Converse across the whole population in parallel
  • Seeded and reproducible — turn a failure into a regression test
Batch · seed 42running
Cohort sweep
Conversations
Scored
4,000 conversations · re-run identical from seed
Extensible

Add your own attributes and behaviors

The Census base is a starting point, not a ceiling. Extend the existing citizens with the attributes your use case needs — a chronic condition, an insurance plan, a digital-literacy level — and behaviors like distrusting AI or skipping follow-ups. You layer onto the population you already have; you don't rebuild it.

  • Add custom attributes on top of the Census base
  • Add behaviors that shape how citizens act
  • Ground new attributes in your region's data or your own aggregate stats
Attributes
+ chronic condition+ insurance plan+ digital literacy
Behaviors
distrusts AIcode-switchesskips follow-ups
Grounded in
your region · ACS+ your aggregate stats
How it's built

From public data to a city you can test against.

Every population is synthesized from public, aggregate data — generated, never collected.

1
Census marginals

The city's real age, income and household shape, from the ACS.

2
Census microdata

Anonymized household microdata — realistic combinations of traits.

3
IPF / IPU fit

Synthesize a population that matches the marginals, person by person.

4
Place on the map

Assign homes, jobs and daily schedules on real OSM streets.

Grounded in US Census data (ACS) & OpenStreetMap. Synthetic throughout — no real individuals, no personal data.

Questions

What "synthetic city" actually means.

Are these real people?

No. Every citizen is fully synthetic, generated from public, aggregate Census data. There are no real individuals, no personal data, and nothing that maps back to a real person.

How is the population representative?

We fit a Census microdata seed to the city's ACS marginals using iterative proportional fitting, so the synthetic distribution matches the real one — typically within about 2.7% — across age, sex, income, household size and more.

Where do behavior and personality come from?

Demographics are Census-grounded. Daily schedules are modeled from typical time-use patterns, and each citizen carries Big Five personality traits that shape how they behave. Personality and behavior are modeled on top of the demographics — they are not drawn from the Census.

Which cities can I use?

San Francisco and Oakland are ready today. Any US city with open Census and OpenStreetMap data can be added.

How large can a population be?

The default is 1,000 people per city, up to 5,000 today. You can generate a fresh city on demand whenever you need one.

Test your agent on the whole city — not the average user.

Generate a Census-grounded population in minutes and find the people your agent lets down.