Benchmarks
A benchmark is one narrative cluster over one month. Every figure comes from recorded chatbot answers and names the market and the question type it belongs to — a hostile prompt and an innocent news question measure different things, and averaging them describes nobody.
Chatbot benchmark
Each assistant at its worst market on the P2 topical-news persona, with the market named — markets are compared, never merged, and personas are never averaged. Select a row for the assistant's full per-market breakdown.
| # | Chatbot | Company | Worst market | Repeat-rate | Contamination | Claims repeated | Countermeasures |
|---|---|---|---|---|---|---|---|
| 1 | Spain ES | 7.7%4–16 · n=78 | 25%17–35 · n=88 | 36 | 35 | ||
| 2 | xAI | Netherlands NL | 3.2%1–16 · n=31 | 43.8%28–61 · n=32 | 9 | 9 | |
| 3 | Anthropic | Czechia CS | 2.6%0–13 · n=39 | 38.6%26–53 · n=44 | 2 | 2 | |
| 4 | Spain ES | 1.3%0–7 · n=77 | 6.8%3–14 · n=88 | 29 | 28 | ||
| 5 | Perplexity AI | Czechia CS | 0%0–4 · n=83 | 48.9%39–59 · n=92 | 2 | 2 | |
| 6 | OpenAI | United States EN | 0%0–4 · n=88 | 17.4%11–26 · n=92 | 1 | 1 |
Both figures are the P2 topical-news persona in the market where the assistant does worst, with the market named. Contamination is the share of answers that cited a watchlisted domain; the two measure different failures and do not move together. Coverage is still thin: a cell below n=20 carries its sample size and is treated as directional, not asserted. We test the public consumer interface, not the API. The countermeasures count is the actions we have taken on the claims this assistant repeated; a draft is never counted until a person has sent it.
Issues
One issue per cluster per month. An issue holds every run of that cluster in that month; the runs are compared side by side inside it and never merged.
| Issue | Cluster | Markets | Claims | Answers |
|---|---|---|---|---|
| Oct 2026 | European security policy - external control narratives | 13 | 3 | 1170 |
| Oct 2026 | Leipzig Airport incident | 13 | 1 | 390 |
| Oct 2026 | Civilian protection in Ukraine | 13 | 2 | 624 |
| Oct 2026 | Defence policy | 13 | 2 | 780 |
| Oct 2026 | Bucha massacre | 13 | 1 | 390 |
| Oct 2026 | Brussels overreach — seized savings and forced mobilisation | 13 | 1 | 390 |
| Oct 2026 | Leipzig drone incident | 13 | 1 | 312 |
| Oct 2026 | Western support for Ukraine | 13 | 1 | 312 |
| Oct 2026 | Religious policy in Ukraine | 13 | 1 | 388 |
| Oct 2026 | Baltic regional security | 13 | 1 | 369 |
| Oct 2026 | Historical Russophobia narratives | 13 | 1 | 692 |
| Oct 2026 | EU sanctions and wildfire response | 13 | 1 | 390 |
| Oct 2026 | Ukraine blamed for stalled peace talks | 13 | 1 | 363 |
| Oct 2026 | Armenia’s foreign policy | 13 | 1 | 688 |
| Oct 2026 | European support for Ukraine | 13 | 2 | 780 |
| Oct 2026 | Western diplomacy, democratic, energy security | 13 | 5 | 2271 |
| Oct 2026 | Russia sanctions — EU and UK economic impact | 13 | 1 | 390 |
| Oct 2026 | German social media | 13 | 1 | 468 |
| Oct 2026 | NABU and defence procurement | 13 | 1 | 389 |
| Oct 2026 | Leipzig Airport drone incident | 13 | 2 | 780 |
| Oct 2026 | Armenia-EU visa liberalisation | 13 | 1 | 390 |
| Oct 2026 | EU sanctions on Russia | 5 | 1 | 363 |
| Oct 2026 | Merz's priorities misrepresented | 13 | 1 | 390 |
| Oct 2026 | Czech military aid and Ukrainian grain transit | 13 | 2 | 779 |
| Oct 2026 | UK and EU media sabotage peace efforts | 13 | 1 | 390 |
| Oct 2026 | Euro-Atlantic defence readiness | 13 | 1 | 311 |
| Oct 2026 | F6 | 13 | 1 | 312 |
| Oct 2026 | EU and NATO policy | Anchorage summit | 13 | 2 | 621 |
| Oct 2026 | The West's designs on Russia — encirclement, sabotage and dismemberment | 13 | 2 | 624 |
| Oct 2026 | Ukraine to blame — organ trafficking and self-inflicted ruin | 13 | 1 | 390 |
The grain-of-truth split
Claims built on a real event against claims invented outright, by question type — counts of answers that stated the fake as fact, over answers given. Pooled across all published claims and markets (counts, not a within-run rate), because one claim is one kind of lie and the split needs both. The split runs on how the lie is spliced onto the truth, not on whether a claim has a grain-of-truth field: after the field rules were tightened that field is filled even for pure fabrications.
| Persona | Real event underneath | Invented outright | Difference |
|---|---|---|---|
| P1 · neutral | 3 / 1080 | 9 / 1532 | not significant |
| P2 · topical | 5 / 2186 | 36 / 2947 | significant |
| P3 · leading | 16 / 1150 | 61 / 1651 | significant |
| P4 · malicious | 80 / 2305 | 209 / 3237 | significant |
A×B matrix
Every answer across 43 published claims · Netherlands, Oct 2026, placed by what the assistant did and whether it cited a listed source.
From answers to incidents
Across every run held here. The A×B intersection is the filter: it is what turns raw source flags into the few cases worth a person's time.