We do not predict markets. We rehearse them.
A swarm of simulated people, run many times over, to find where a plan is fragile while it is still cheap to change.
A swarm simulation is a crowd of language-model agents, each with a persona, a memory and social ties, reacting to a scenario and to each other over simulated time. Run it again and again with different random seeds and you get a distribution of reactions, not a prediction.
The OASIS framework simulates social platforms with up to one million agents and replicates effects such as herd behaviour and group polarisation (Yang et al., 2024). 1
How a swarm run works
- 01
Seed
Documents and data become the world the agents live in: the price list, the press coverage, the complaint log, the segment figures. Personas come from the same material, so a simulated buyer carries habits your own research found. The seed documents usually come from a Company Brain.
- 02
Interaction
Agents post, read, reply and persuade. They remember what they saw and who said it, and they change their minds. Opinion travels along social ties, so a loud minority can pull a quiet majority, and the report shows the step where it happened.
- 03
Report
Patterns, segments, quotes from agents and the spread across runs. Every figure states how many runs stand behind it and carries the label simulation.
Published evidence so far covers individual survey answers in research settings, which is a long way from a market. Generative agents built from interviews with 1'052 Americans predicted their General Social Survey answers 83% as accurately as the people reproduced their own answers two weeks later (Park et al., 2024) 2.
At the scale of whole platforms, OASIS runs up to one million agents and reproduces herding 1. Herding is the effect we want to observe in a market. It is also how agents in a swarm can converge on an untested consensus.
Our simulations build on the open-source MiroFish engine (AGPL-3.0) and published research on generative agents. MiroFish is not our product and we are not affiliated with its authors.
MiroFish is an open-source multi-agent prediction engine under AGPL-3.0; as of October 2026 its repository publishes no backtest of its forecasts. 3
A single forecast is a guess. Here are two hundred.
Pick a fictional scenario. Turn diversity down and two hundred runs agree. Turn it up and the same question splits. Read the width of the band before you read the median.
A Swiss food brand raises prices 8%.
This toy model runs in your browser; the full swarm uses language-model agents. It shows why we never report a single run.
Running 200 futures.
Every run ended at the same extreme. Check influencer share and diversity.
Show the formula
A bounded-confidence opinion model (Deffuant-Weisbuch). 300 agents hold an opinion between 0 and 1: their inclination to accept. Two agents talk; if their opinions are close enough, both move towards each other. Stubborn influencers never move.
N = 300 agents, T = 60 steps, seeds 1 to 200 (mulberry32)
x_i(0) = clamp(Normal(mu0, sigma0), 0, 1)
sigma0 = 0.05 + 0.25 × D D = diversity, 0 to 1
eps = 0.10 + 0.40 × D confidence bound
stubborn share I (0 to 20%): fixed at the scenario's influencer opinion
each step: 150 random pairs (i, j)
if |x_i - x_j| < eps:
x_i += 0.3 × (x_j - x_i)
x_j += 0.3 × (x_i - x_j) stubborn agents skip the update
step 10: x_i += delta for every non-stubborn agent (clamped to 0..1)
acceptance(t) = share of all agents with x > 0.5
P10 to P90 across the 200 runs, per step; W = P90 - P10
Scenario parameters: mu0 0.58, delta -0.20 at step 10, influencer opinion 0.60.
| Step | P10 | P25 | P50 | P75 | P90 | One run |
|---|---|---|---|---|---|---|
| 0 | - | - | - | - | - | - |
| 10 | - | - | - | - | - | - |
| 20 | - | - | - | - | - | - |
| 30 | - | - | - | - | - | - |
| 40 | - | - | - | - | - | - |
| 50 | - | - | - | - | - | - |
| 60 | - | - | - | - | - | - |
Histogram as a table
| Final share | Runs |
|---|
We publish no accuracy number. Anyone who does owes you the human ceiling next to it.
Simulations are labelled as simulations.
Accuracy percentages for simulated markets cannot be compared with each other. Each one measures something different, few are scored on data the model never saw, and they rarely say how well a second group of real people would have done on the same task. Without that human ceiling, an accuracy score cannot be read as good or bad.
Synthetic respondents also fail in ways an average hides. In one study, 48% of regression coefficients estimated from ChatGPT-generated respondents differed significantly from those based on human survey data (Bisbee et al., Political Analysis, 2024). 4
- The spreadP10 to P90 across seeds, printed next to the median, never the median alone.
- The assumptionsWhat the scenario fixes, what it leaves free, and which assumption moves the result most.
- The persona sourcesWhich documents and data each persona was built from.
- The thin segmentsGreyed out wherever too few agents or runs stand behind a number.
- The human checkWhich findings a person has to confirm with real clients before money moves.
Simulate first. Spend second.
A swarm run is one input to a decision, filed next to the company's own evidence: sales history, client interviews, the figures finance already trusts. It is useful when it changes the board's question or exposes an assumption the plan depends on.
The wind tunnel on our homepage shows the idea in one screen.
The run, its spread and its assumptions then go into the decision record, so the next board can see what was known, what was rehearsed and what was guessed.
Where this breaks.
- Agents inherit the biases of the language models behind them and of the seed documents they are given, so a skewed archive produces a skewed crowd.
- Rare and new behaviour is where simulation is weakest: a genuinely new product category has no past for the personas to draw on.
- A simulation never replaces talking to ten real clients; at best it tells you which questions to ask them.
Questions.
Is this a forecast?
No. A run shows how a simulated crowd reacts under stated assumptions, repeated across many random seeds. We report the spread and the conditions that move it, and every output carries the label simulation. Use it to find where a plan is fragile, then test that point with real people.
How many agents do you run?
We size the swarm to the segments that matter for the decision, so each segment has enough agents and runs behind it to be worth reading. Research frameworks reach up to one million agents 1. Segments that stay too thin are greyed out in the report.
What data do you need?
The material the decision already rests on: pricing, past campaigns, client feedback, segment data, the press that covers your market. Personas and the simulated environment are built from it. The better your own records, the better the seed.
Where does it run and what licence applies?
Models and data are hosted in Switzerland or the EU, agreed per engagement. The engine is MiroFish under AGPL-3.0. Our modifications to the engine are published as the licence requires. Client data and results are not code and stay private.
How long does a run take?
It depends on how many agents you need. A run with 2'000 agents and more than 100 million tokens takes two to five days, including sorting the results. Describing the target group comes first and is separate work. The simulation is only as good as the people it models.
Sources.
- Yang, Z. et al. OASIS: Open Agent Social Interaction Simulations with One Million Agents. 2024. WE
- Park, J. S. et al. Generative Agent Simulations of 1,000 People. 2024. WE
- MiroFish. MiroFish repository, licence AGPL-3.0. GitHub. WE
- Bisbee, J. et al. Synthetic Replacements for Human Survey Data? The Perils of Large Language Models. Political Analysis. 2024.WE