Simulations need a paid plan. On Hobby you get: "Upgrade required: Simulations are not available on the Hobby plan." They also cost 2× the live interview rate.
Where it is
Simulate in the sidebar (/simulate), with Personas and History alongside.
Personas
A persona is the participant the model plays. Manage them at Personas (/personas).
- Write your own — brief it like an actor: who they are, their situation, what they care about, how they talk, what they are sceptical about.
- Generate — drafted from the study's own context (type, description, research question, objectives and target population). Generated personas are marked AI Generated.
Good personas are specific. "A 38-year-old parent in Denver who cancelled after two months because recipes took too long on weeknights" produces a more useful transcript than "a busy customer".
Running a batch
- Choose the Model Selection tier — open weights (2 credits / 5 questions), standard (6, Solo+), premium (20, Pro+). These are already doubled by the simulation multiplier.
- Select Personas — tick the ones you want, or All. The Credit Estimation panel shows questions, personas selected, credits per simulation, total required, your balance and the remainder.
- Start Batch Simulation. Progress is shown per persona.
Results appear as interviews in the study, flagged as simulated, so you can filter them in and out everywhere else.
History
History (/history) lists past runs with counts of successful and failed runs and credits used, filterable by status. Each row shows the persona, tier, time and resulting interview. A run refused for plan or credit reasons is recorded as Failed and costs nothing.
With MCP
list_personas {"study_id": "…"}
create_persona {"study_id": "…", "content": "A 38-year-old parent in Denver who…"}
generate_personas{"study_id": "…", "count": 3, "save": true}
run_simulation {"study_id": "…", "persona_id": "…", "model_tier": "open_weights"}
get_simulation {"simulation_id": "…"}
list_simulations {"study_id": "…", "status": "…", "limit": 20}
delete_simulation{"simulation_id": "…"}
run_simulationstarts one run and returns immediately. Pollget_simulationuntil it leavesrunning. To sweep a panel, call once per persona.- Pass
persona_idfor a stored persona, orpersonafor ad-hoc text; omit both for a generic participant. - Credits are reserved at the estimated cost before the run starts; a request that would exceed your balance is refused with 402 and costs nothing.
deliver_signals(default off) decides whether an Interview Flow's "Send a signal" steps reach their real endpoints. Leave it off unless you are deliberately testing your webhook receiver — otherwise a simulation just records what it would have sent.delete_simulationremoves the run's bookkeeping row; the interview it produced is kept.
What simulation is good for
- Catching broken scripts — questions that confuse the interviewer, branches that never fire, follow-ups that never end
- Estimating length and cost before you buy participants
- Exercising an Interview Flow along each path
What it is not
Simulated participants are not evidence about real people. They do not have your customers' memories, and they are agreeable in ways real participants are not. Use them to test the instrument, then run it on humans.
Last updated: September 2026