Market Engine
Emergent Market Dynamics of LLM-Calibrated Agents

An agent-based model simulating distinct retail and institutional investors interacting in response to a market shock or structural trend. Where their collective behaviour systematically pushes prices away from consensus produces actionable mispricing signals.

SETUP

Configure your scenario

01Scenario, define the shock or structural trend and the market context
02Market, set price sensitivity by sector and the strength of news and sentiment signals
03Shocks, configure the events or structural trends driving agent responses
04Agents, optionally adjust the investor mix and capital weights
05Run, set simulation scale and launch
LIVE VIEW

Watch the simulation run

Watch agent interactions unfold in real time, trading activity, the investor network, and live mispricing pressure trajectories across all runs.

RESULTS

Aggregate findings

Sector mispricing distributions across all Monte Carlo runs, signal consistency by sector, and a model-generated actionable investment thesis that emerges from the interactions of these investors with the market.

Configure your scenario, generate agent personas, then run the simulation.
Scenarios & Personas
A large language model generates 3 distinct investor personas for each of the 8 investor types. Your scenario name, description, and any shocks you define are passed as context, configure those tabs first for more scenario-relevant personas.

The model outputs relative mispricing signals, where agent behaviour collectively pushes sector prices above or below a neutral consensus baseline. This is not a price forecast; consistent directional signals across runs are investment theses to investigate.

Presets

Agents cannot short-sell, bearish pressure is bounded by existing holdings. The model reflects long-only investor behaviour.

Select a preset above, or generate personas for your own scenario using the button below.

Market environment
Controls price sensitivity by sector and the strength of news and sentiment signals. Presets set these automatically, defaults work for most scenarios.
Using defaults, no changes needed to run.
Shocks & events
Add events or structural trends that push prices and trigger agent responses.
No shocks configured, select a preset or add shocks manually.
Investor mix
Controls the number of agents and capital weight for each investor type. Defaults are calibrated to realistic relative market weights.
Using defaults, no changes needed to run.
Run configuration
Set the simulation duration and number of runs.
Without a shock configured in the Shocks tab, pressure values will stay near 100, the model is mean-reverting by design. For visible pressure dynamics, add at least one shock with the market channel enabled.
Each run uses a different combination of agent personas. More runs = more robust results, but each run takes compute time. Start with 10 runs to check your setup before committing to 100+.
The live view shows agent interactions and mispricing pressure trajectories in real time as the simulation runs, worth seeing at least once. Enable fast mode to skip straight to results.
Recording & retention, using defaults.
Base = 100, moves reflect agent (mis)pricing pressure, not absolute returns.
Network: Eight investor types. Particles flowing toward centre = buying; away = selling. Particle colour = investor type. Bar on each card = buy (gold) / sell (red). Click any card → investor personas.
Mispricing trajectories — run 1 live · all runs shown in results · click a sector to the right to switch
INVESTMENT IMPLICATIONS
Investment Thesis
Mispricing trajectories — all runs
Investment Briefing — full analysis
MODEL EVIDENCE
Model Signal
Final mispricing by sector
Ceteris paribus relative (mis)pricing pressure — the baseline of 100 is a proxy for prevailing market consensus, not a fixed price. A +5% reading means agents systematically priced that sector 5% above consensus; it does not mean the absolute price rose. A tight distribution away from zero is a robust finding. A wide spread means the result is sensitive to population composition. Near-zero with a tight distribution = strong signal of no mispricing. Each dot = one run. Box = P25–P75; whiskers = full range.
Results Health Check — how much to trust the signal
Signal consistency — structural finding or noise?
% of runs ending in the same direction by sector, sorted by consistency. 100% = structural finding; near 50% = noise.
Replay a Run — inspect individual run dynamics