ABSTRACT
Holon's agents are not language models in costume; they are twelve parametric archetypes, each a distinct point in an eight-axis space (innovation p, imitation q, persuasion η, network position, friction f, churn μ, price tolerance, loud-exit β). This note documents the typology: why a cast rather than personas, why twelve and not Rogers' five [5] or the 90-9-1 rule's forty-five [6], and how resistance is engineered at the role level — friction coefficients, a negativity asymmetry of ν ≈ 2.5η [14, 15], Centola complex-contagion gates [8, 9], and loud-versus-silent exits [11]. We give the parameter table, the redundancy and coverage tests the cast had to pass, and an honest account of where it still cannot see.
1. Why a cast, not personas
The dominant way to build a synthetic respondent is to hand a language model a personality — often an OCEAN trait vector — tell it to roleplay, and ask it questions one at a time. The failure mode is documented and consistent: the model is kind to you. The Nielsen Norman Group is blunt that synthetic users please the moderator rather than mirror real skepticism [1]; the 2026 peer-reviewed numbers are unforgiving — a 79% surface match that over-generalises and under-varies [2], a correlation of just r ≈ 0.20 with real people across nineteen pre-registered studies [3], and an effect whose sign flips in 32% of runs [4].
Holon takes the opposite route. A citizen is not a personality you converse with; it is a published stat block — a single point in an eight-axis parameter space. You cannot flatter a hazard equation. A Skeptical CFO refuses a price increase not because we prompted it to "be skeptical" but because its price-friction coefficient divides incoming social pressure by four before that pressure ever reaches the adoption hazard. Resistance is structural, not theatrical — and because every parameter is public, every refusal is inspectable.
| LLM persona | Survey segment | Digital twin | Holon citizen | |
|---|---|---|---|---|
| Defined by | a prompt | averages | scraped traces | a published stat block |
| Can refuse | rarely — sycophancy | n/a | inherits source bias | yes — friction at the hazard |
| Network position | none | none | partial | hub · tree · leaf |
| Inspectable | black box | yes | no | every parameter public |
| Reproducible | no | no | no | seed → hash |
* "Digital twin" = a persona fit to one real individual's traces (e.g. Smallville-style generative agents [17]). Holon models archetypes and a network, never individuals — a deliberate privacy and generalisation choice.
2. The twelve
Each citizen occupies a distinct, necessary position in the parameter space. Before the cast shipped it had to pass two tests. Redundancy: no two citizens are duplicates on two or more axes — if a role collapsed onto another, it was cut, and twelve survived. Coverage: every stimulus type (a feature, a price change, a story) has both its natural igniters and its natural brakes, so no event can glide through unopposed and none is dead on arrival.
The cast reads in three behavioural bands — the Movers who lift the curve, the Gates who stop a cascade, and the Quiet weight that decides off-screen:
Ignition fuel — highest innovation, lowest friction.
Conditional amplifier — persuasion triples once it adopts.
Hub — reach ×10. Connected, not necessarily persuasive.
Narrative igniter — innovation ×3 on story, price-blind.
Economic veto — price friction ×4, lowest tolerance, vocal on exit.
Social threshold — adopts only after enough neighbours do.
Structural multiplier — a team tree; one yes pulls ~10.
Mercenary — lowest price tolerance, first to leave.
Proof-follower — moves on the aggregate signal, not the chatter.
The 2026 wall — feature friction maxed: “not another tool.”
Loyal until betrayed — lowest churn, but the loudest detractor.
Silent majority — barely speaks, churns without a word.
None of this is hidden. The parameters are public on purpose — that is the whole point of an instrument rather than a black box. A closer look at five of the underlying stat blocks, where the design choices are sharpest:
| Citizen | p (innov.) | q (imit.) | f price | β loud-exit | network |
|---|---|---|---|---|---|
| Early Adopter | .022 | .50 | 1.2 | .40 | peripheral |
| Skeptical CFO | .002 | .22 | 4.0 | .50 | gate |
| The Champion | .016 | .45 | 1.4 | .25 | leaf · η→3.2 |
| The Influencer | .015 | .45 | 1.5 | .50 | hub ×10 |
| The Lurker | .003 | .38 | 2.2 | .08 | silent |
3. Why this number
Not five (Rogers)
Rogers' innovators / early adopters / majority / laggards [5] are temporal quantiles — they sort people by when they adopt over a category's lifetime, not by the role they play in a single room. Useful for a product's decade; useless for one buying decision, where what matters is why each seat resists. Our innovation-leaning citizens (Early Adopter, Visionary, Champion, Influencer) sum to 23% of the city — broadly consistent with Rogers' ~16% innovators-plus-early-adopters, but split by motivation instead of collapsed into a single bucket. A simulator needs to tell a CFO's "no" from a Burned-out PM's "no" — Rogers cannot.
Not forty-five (the 90-9-1 rule)
An adversarial review pushed for ~45% Lurkers, citing the 90-9-1 participation-inequality rule [6]. We rejected it as a category error: 90-9-1 describes who posts in an online community, not who sits in a market. A private B2B buying conversation is far flatter than a public forum. Our Lurker is 17% — the silent-but-present majority of an active decision ecosystem, not a census of everyone who could ever buy.
And three we are holding back
We designed fifteen and ship twelve. The three on the bench — a Compliance Officer, a Procurement lead, an IT Admin — are gatekeepers that only bind in formal enterprise deals. Industry research puts the typical B2B buying group at 6–10 stakeholders, rising to 9–11 in 2025 from 5–7 in 2017 [7] — but most self-serve and mid-market motions never convene that committee. The +3 arrive with the Enterprise template at the Scale tier; until then, the Skeptical CFO carries the security-review veto.
4. Built to say no
Every citizen carries a friction coefficient f ≥ 1 per event type. It divides social pressure inside the adoption hazard itself, so resistance is a causal property of the agent rather than a cosmetic haircut on the final probability:
φᵢᵉᶠᶠ(t) = φᵢ(t) / fᵢ⁽ᵉ⁾ fᵢ⁽ᵉ⁾ = f_role · f_policy · f_memory- Skeptical CFOprice increase4.0×
- Penny-Pincherany price move3.5×
- Burned-out PMnew feature2.4×
- Influencernarrative shift1.5×
- Early Adopterfeature release1.0×
Friction touches only positive pressure. Negative signal is weighted ν ≈ 2.5η and bypasses the dampener entirely — Baumeister's "bad is stronger than good" puts the negativity ratio at 2–4× across affect, learning and persuasion [14], and Anderson found dissatisfied customers carry their experience to more people than satisfied ones do [15].
Resisting enthusiasm is human; resisting fear is not. That single asymmetry is what lets the cast produce the bad-news cascades real markets show — and that politely averaged panels miss.
5. Risky decisions need many voices
One enthusiastic neighbour is enough to forward a meme. It is not enough to make a CFO sign. Centola's complex-contagion experiments [8] — and the book that consolidates them [9] — show that costly or risky behaviours need social affirmation from multiple distinct sources. Holon's deliberative roles (CFO, Cautious Buyer, Department Head) only count social proof once they have ≥ 2 distinct adopter contacts; below that threshold their positive pressure is attenuated to 15%:
gate — show
if | distinct_adopters(i) | < kᵢ → φ⁺ᵢ ← 0.15 · φ⁺ᵢShow implementation — python
# distinct-source gate (vectorised approximation) n_distinct = (W_in > 0).multiply(I).getnnz(axis=1) # per-receiver count under_gate = n_distinct < k_role # boolean mask phi_pos[under_gate] *= 0.15 # attenuate
The measurable effect: the adoption S-curve rises more slowly (24→29 ticks in our city) and clusters can block a cascade — closer to how enterprise software actually clears a room. The buying data agrees: 40–60% of B2B deals end not in a loss to a competitor but in no decision, and ~41% stall because internal stakeholders fail to align [10]; legal, compliance and IT act as silent vetoes a lone champion cannot override. A simulator that lets one excited voice carry the deal is telling you a comfortable lie.
6. Loud exits and silent ones
Not everyone who leaves tells you. TARP's customer-complaint studies [11] find only ~10% of dissatisfied customers ever complain publicly while ~70% never say a word. Each role gets a loud-exit probability β deciding whether it churns into a loud Detractor (D) or a silent exit (R):
| Role | β (loud-exit) | Effect |
|---|---|---|
| Power User | 0.6 | thread, write-up, warning to network |
| Influencer | 0.55 | public negative-WOM amplification |
| Champion | 0.45 | narrative reversal — "I evangelised this" |
| Cautious Buyer | 0.3 | private warnings, quiet review |
| Lurker | 0.08 | silent — never tells the dashboard |
“Your dashboard reports 11% churn. The city shows another 20% of silent disengagement the dashboard can't see.”
— the insight the loud/silent (D/R) split is engineered to surface
7. Network positions, and why hubs aren't enough
Three citizens earn special positions on the graph: the Influencer is a hub (out-degree ×10), the Department Head carries a team tree (10 edges weighted ×4 — the top-down motion), and the Champion is an amplified leaf (persuasion triples once it adopts — the bottom-up motion). Reach, structure and amplification, kept distinct on purpose.
But reach is not influence — and here we deliberately encode a finding that cuts against our own Influencer. Watts & Dodds showed that large cascades are driven not by a handful of influentials but by a critical mass of easily-influenced ordinary people [12]. So Holon does not treat the Influencer as a magic spreader. Its ×10 reach only converts if its neighbours are themselves susceptible and the complex-contagion threshold (§5) is met; fire a hub into an unreceptive, single-source neighbourhood and the cascade fizzles — exactly as Watts predicts, and consistent with the influence-vs-susceptibility split Aral & Walker measured on a real network [16].
8. Calibratable, not clairvoyant
We say "archetypes calibrated to data," never "digital twins" — the distinction is the product's spine. Priors for (p, q, μ) come from the Sultan-Farley-Lehmann diffusion meta-analysis [13], rescaled from annual category penetration to community-response hazards. At the Scale tier we fit those parameters to a client's own historical adoption and churn curves and report a per-account MAPE on a held-out window — never a single global accuracy number.
What the cast cannot see: decisions dominated by identity or emotion (politics, sensitive medical), genuinely novel categories with no behavioural precedent, and rare-event tail risk. Every backtest ships with a mandatory "what the model misses" section. The cast is a pre-filter for bad ideas — designed to kill the weak ones cheaply — not an oracle for good ones.
Grounded in research published in
Methodology builds on peer-reviewed research from the venues above. See references for exact papers.
References
- [1]Rosala, M. & Moran, K. (2024). Synthetic Users: If, When, and How to Use AI-Generated “Research”. Nielsen Norman Group.compliance / sycophancy bias as the dominant failure mode (vendor, not peer-reviewed)
- [2]Kaiser, C. et al. (2026). Leaving Insight to Digital Twins? Promise, Progress and Limits of Synthetic Respondents. NIM Marketing Intelligence Review 18(1): 48–53. DOI 10.2478/nimmir-2026-0008.79% surface match, but over-generalises and under-varies
- [3]Peng, T. et al. (2026). Digital Twins are Funhouse Mirrors: Five Systematic Distortions. arXiv:2509.19088.r ≈ 0.20 (0.197) with humans across 19 pre-registered studies
- [4]
- [5]Rogers, E. M. (2003). Diffusion of Innovations, 5th ed. Free Press.adopter categories are temporal quantiles, not committee roles
- [6]Nielsen, J. (2006). The 90-9-1 Rule for Participation Inequality. Nielsen Norman Group.describes online posting, NOT market roles — rejected as a typology basis
- [7]Gartner (2024–2025). The B2B Buying Journey.VENDOR research — buying group 6–10 (9–11 in 2025) stakeholders, up from 5–7 in 2017
- [8]Centola, D. & Macy, M. (2007). Complex Contagions and the Weakness of Long Ties. American Journal of Sociology 113(3): 702–734. DOI 10.1086/521848.risky behaviours need affirmation from ≥2 distinct sources
- [9]Centola, D. (2018). How Behavior Spreads: The Science of Complex Contagions. Princeton University Press. ISBN 978-0-691-17531-7.the book that consolidates the complex-contagion experiments
- [10]Gartner / industry analyses (2023–2025). B2B 'no decision' and stalled-deal research.VENDOR research — ~40–60% of deals end in no decision; ~41% stall on internal misalignment
- [11]TARP / Goodman, J. (1979–). Consumer Complaint Behavior studies.~10% complain publicly, ~70% never complain
- [12]Watts, D. J. & Dodds, P. S. (2007). Influentials, Networks, and Public Opinion Formation. Journal of Consumer Research 34(4): 441–458. DOI 10.1086/518527.cascades are driven by a critical mass of easily-influenced people, not by hubs
- [13]Sultan, F., Farley, J. & Lehmann, D. (1990). A Meta-Analysis of Diffusion Models. Journal of Marketing Research.p̄≈0.03, q̄≈0.38 priors, rescaled to community-response hazards
- [14]Baumeister, R. et al. (2001). Bad Is Stronger Than Good. Review of General Psychology 5(4).negativity asymmetry 2–4× across domains
- [15]Anderson, E. W. (1998). Customer Satisfaction and Word of Mouth. Journal of Service Research 1(1): 5–17. DOI 10.1177/109467059800100102.dissatisfied customers spread word-of-mouth more widely (the 2–4× magnitude itself is Baumeister [14])
- [16]Aral, S. & Walker, D. (2012). Identifying Influential and Susceptible Members of Social Networks. Science 337(6092).influence and susceptibility are distinct and asymmetric
- [17]Park, J. S. et al. (2023). Generative Agents: Interactive Simulacra of Human Behavior. UIST.the 'digital twin / Smallville' precedent we diverge from
Reproducibility
Every figure in this note is reproducible from a fixed seed = 4711. Run hashes ship with each release; deviations from the published hash are reportable bugs. The TypeScript and Python reference implementations are tested for hash parity at CI.
Want to run this on your market?
Request access
