How we know what we know, and admit what we don't.
We don't ask you to trust a black box. This page shows the empirical frames our simulated minds are built on, how we measure the stability of every result, and the three reasons we report a direction instead of a decimal.
Who the minds are
Populations parameterised by documented cultural and psychographic frames.
How stable the ranking is
We don't run once. We run the population many times and measure the spread.
Whether it survives a changing world
Does the winner still win when the outside context shifts?
THREE INDEPENDENT AXES OF UNCERTAINTY · EACH ITS OWN LINE ON THE EVIDENCE LABEL
The population isn't generic. It's built on published frames.
When you pick an audience, its simulated minds are parameterised with documented cultural dimensions, so the simulation applies known cross-cultural differences to your segment, rather than guessing. The model in use is printed on every result.
We start with Hofstede (national dimensions), live today. Schwartz basic values for within-country segments and World Values Survey calibration are next on the append-only changelog, and each lands with its own entry, dated.
Honest limit, stated on the label: Hofstede describes nations in aggregate, not individuals. It parameterises direction, it never licenses a hard percentage. Only WVS-grade real data upgrades CALIBRATION: NONE to WVS WAVE 7.
We run the simulation a hundred times, not once.
A single run can get lucky. So we resample the population many times and watch where the ranking lands. If a variant wins in most runs, the direction is stable. If the runs disagree, we say so, as a category (HIGH / MEDIUM / LOW), never a false decimal.
This is the ensemble method weather services use: many forecasts, read as a spread, not a single line. The fan is the point.
You get a new label row, RANKING STABILITY: 78/100, and a plain-language CONFIDENCE band. A tight fan means trust the order; a wide fan means test before you commit.
Blind validation, then calibration. Real to sim, never the reverse.
Before a grounded result is shown, the oracle is tested blind: segment names are anonymised, the oracle ranks them, and its ranking is compared to what the data actually says, as a Spearman rank correlation. That number is printed on the label as the backtest.
Where real outcomes exist, we calibrate: an isotonic map from simulated propensity to observed rates, fitted leave-persona-out so it can't flatter itself. Calibration flows in one direction only, from reality into the simulation. The simulation never touches the evaluation data. That is constitution §2 and §4, and it is why a CALIBRATED rung means something.
A winner that only wins in one future isn't a winner.
We re-run your ranking across boundary scenarios, a downturn, a steady baseline, a boom, and check whether the order holds or breaks. A message that ranks first in every scenario is robust. One that only wins in the good times is a warning, printed plainly.
The heritage here is classic scenario planning (Shell / Global Business Network): you don't predict one future, you pressure-test a decision against several.
For a founder in front of a VC, "our winning message is robust across three macro scenarios" is a far stronger claim than a single number, and it's a claim we can actually defend.
The evidence label, in full.
Every result ships with this. It's modelled on a nutrition label: fixed fields, same order every time, so you learn to read it once. Colour marks the epistemic stage, red is simulation, green is real-data calibration.
Notice what the label refuses to contain: a conversion percentage. There is no field for it, because without your real outcomes we cannot honestly fill one.
What it does contain are things we can defend under scrutiny, the frame, the spread, the robustness, the backtest class, and the sample. The absence of a number is itself information.
CLASS B PASS = blind Spearman ρ ≥ 0.5 on the validable dimension of the run.
CLASS A PASS = ρ ≥ 0.7 across three or more blind validations in the domain.
Printed from the run artefact (sim_validation.json), never written by hand.
Three reasons, and the deepest one isn't statistical.
Empirical
Peer-reviewed work shows language models do not reliably reproduce human psychology. Absolute predictions drift; the decimals look precise and aren't.
Methodological
Even excellent planning doesn't predict, it measures how stable a direction is across runs and scenarios. The ensemble and the scenario spread are that measurement, made visible.
Philosophical
Reality is a process, not a thing, it flows. Chasing one certain number about the future mistakes the nature of the future itself, which was never an object you could hit like a target. A tool that reports direction is aligned with how the world actually behaves, not merely cautious.
"You are a function of what the whole universe is doing, in the same way that a wave is a function of what the whole ocean is doing.", after Alan Watts
Powered by the Windrose Engine.
The same instrument, simulated populations, ensembles, evidence labels, beneath every study we build. Message testing is the first of a series. The same spine will also answer machines: agents will call the engine over MCP and receive the same labels, signed. See For agents.
○ Pricing sensitivity · ○ Onboarding drop-off · ○ Crisis & PR reaction · ○ Persona builder · ○ Stability report for boards
When the method changes, we show the change.
Nothing here is overwritten. A superseded decision stays visible with its successor beside it, the same discipline we hold ourselves to internally.
Added CULTURAL MODEL, RANKING STABILITY, CONFIDENCE and SCENARIO ROBUSTNESS rows. Supersedes the five-field label.
Rankings now reported over 100 resamples rather than a single run, producing the stability score.
RUNG, CALIBRATION, SCOPE, BACKTEST, N SAMPLES.