METHODOLOGY

A thousand minds. One verdict.

Holon runs a vectorized Bass-SIR-D model — adoption, churn, negative contagion — over a directed weighted graph of 600–10,000 agents. Zero LLM calls per tick. A 90-day run on 1,000 agents finishes in ~9 ms. Replayable from a seed. Backtests public.

Checked against public benchmarks — ProfitWell (n≈14k), OpenView, public-SaaS NDR, the Bass classics. Directional, not an oracle.

1,000 minds → one verdictp10 · p50 · p90

TECHNICAL REPORT · DRAFT · edited 2026-06-16

The instrument explained.

01 · THE MODEL

Bass-SIR-D, vectorized.

Each agent occupies one of five states — Susceptible, Adopter, Quiet, Detractor, and (when a rival is in play) Competitor-adopter — and transitions probabilistically per tick. Adoption hazard combines an exogenous innovation term p with an endogenous imitation term q·φ⁺, modulated by role-based friction f and dampened by negative social pressure φ⁻.

Churn isn't a coin flip — it's gated by personal aversion and inflamed by neighbors who already defected, and it decays with tenure: new adopters churn fast (trial attrition), the curve flattens to a low mature floor (sBG / Fader-Hardie). Detractors decay back to quiet at δ ≈ 0.07/tick (a half-life from firestorm literature).

Everything beyond the base is OPT-IN and byte-identical when off: a competitor actor (Lotka-Volterra cross-inhibition + switching), evolving satisfaction, price elasticity both ways, R18 price-hike moderators, addressability ceilings, SaaS-stack saturation, and the firm layer below. Each mechanism has to visibly change a verdict with a research anchor — otherwise it's a knob, not a model.

02 · THE GRAPH

Directed, weighted, column-normalized.

Every citizen sees their in-neighbors weighted by influence. Influencers act as hubs (out-degree ×10). Department Heads form team-trees (10 strong ties ×4 weight to their reports). Cautious buyers, CFOs, and Heads require ≥2 distinct adopter contacts before social proof counts — Centola complex-contagion. An optional LFR community graph reproduces real professional-network structure (clustering ≈0.17, modularity ≈0.68).

22% of the city is out-of-market: they never adopt, but they can still pile on. This is the canonical case where the dashboard shows lower numbers than the marketplace narrative.

03 · THE FIRM LAYER

A logo is a company, not a person.

Agents group into accounts, each with a designated champion. The single highest-leverage churn driver in B2B — the champion leaving the company — is modelled directly: when they go, that account's remaining seats churn at a multiple of baseline. We report account-level logo retention separately from per-seat retention, because they diverge exactly where a CS team is paid to look.

Firms get a realistic role MIX (R34: Gartner DMU ≈ 6.8 stakeholders, ~1 champion per deal, 1–2 blockers, 3–5 end users) — agents are shuffled before being partitioned into accounts, so champions are spread across the city instead of clustered in one firm. The champion is drawn from adoption-relevant roles (advocate / power user / exec), never a procurement gatekeeper.

Retained accounts also EXPAND (seats, usage) — so the engine speaks Net Dollar Retention, not just logos. And distribution is a weapon: a product bundled into a host suite (Teams-into-Office) skips the committee gate and the rival's network pull — in our backtest a same-quality late entrant goes from 2% standalone to overtaking the incumbent at 85% suite penetration.

Committees don't just gate — champions cross them (R35). A new feature into an enterprise committee market doesn't spread on social proof alone; it crosses on the backs of internal champions (the innovation-driven early market — Gartner/Gong put a champion at 2.5–3× the win rate, single-threaded deals stall 60–70% in procurement). So a gated greenfield launch lands a modest beachhead instead of flatlining at 0%.

Two more account-level moves the firm layer unlocks: MULTI-PRODUCT cross-sell (R36) — a second product lands warm where the first already sits, with eased procurement (an existing MSA clears in days vs weeks) and ~15–20% lower churn (the verified multi-product lock-in, not the often-cited unsourced 40%); and VENDOR CONSOLIDATION (R37) — at annual renewals an account that runs BOTH vendors (a mixed stack) rationalises onto its majority one, dropping the point solution (incumbent win on rebid ≈ 72% vs 18%). The non-obvious verdict: aggregate share isn't who wins consolidation — a vendor can trail in total seats yet flip the market by being the majority inside more accounts.

04 · ANTI-SYCOPHANCY

Built to say no.

The compliance bias of LLM personas is the #1 documented failure of synthetic research. Holon encodes resistance as a friction coefficient f ≥ 1 per role × event type. A Skeptical CFO facing a price increase has f = 4 — they need 4× the social proof of an Early Adopter to flip.

Critically: friction applies only to POSITIVE pressure. Negative signals are weighted 2.5× (negativity bias, Baumeister) and bypass the dampener. Resisting enthusiasm is human. Resisting fear is not.

05 · DETERMINISM

Same seed, same hash.

The engine uses a seeded Mulberry32 PRNG. A run is a pure function of (scenario, seed) — we hash the final state to verify replay. Every shared URL is a reproducible scientific result; every backtest is a public notebook. ~10 ms for a 1,000-agent / 90-day run; zero LLM calls per tick.

Date.now() and Math.random() are forbidden inside the engine. Any AI runs at the EDGES — it compiles a free-text idea into a scenario at setup, then freezes; it never touches the simulation loop. Reproducibility isn't a feature — it's how we earn the right to publish numbers.

06 · VALIDATION

One frozen model, many real benchmarks.

We hold the calibration FIXED and score it against many independent public benchmarks at once — the honest test (tuning a knob per case would be overfitting). Price-increase churn tracks the industry curve (OpenView/ProfitWell, n≈2k–23k: a +10% hike ≈ 3–4% incremental churn, +30% ≈ 16%). Gross-logo retention lands in the documented bands by segment (SMB ≈73% / mid ≈87% / enterprise ≈93% per year); NDR ≈90 / 105 / 115%. The engine reproduces classic Bass diffusion curves to 0.4–3.5% MAPE.

These are directional, population-level checks against PUBLIC data — not a certified accuracy figure. Single cases (a Netflix-style botched hike) are one wide-distribution sample, never the target. The next level — fitting your private cohort and publishing a per-account MAPE — is built and waiting for a beta dataset (see Calibration).

07 · CALIBRATION

Priors first, your data second.

Free runs use research-anchored industry templates (B2B SaaS seat-based, PLG self-serve, DTC) — flagged as priors, not certified facts. Calibrated cities (tier Scale) fit p, q, μ from your historical adoption curves (Mixpanel/Amplitude/CSV exports) and report a per-account MAPE on a retrodiction holdout.

We never claim a global accuracy figure. Accuracy is reported per account, with the holdout horizon and the seeds used. That's the only honest number.

08 · WHAT THE MODEL MISSES

Honest limits.

High-stakes decisions dominated by emotion or identity (politics, sensitive products). Novel categories with no precedent. Rare-event tail risk. Today's priors come from large-sample vendor benchmarks, not peer-reviewed studies — so they're directional until fitted to your data. A very large, badly-botched price hike runs a touch pessimistic (the WTP cliff over-shoots). We log these explicitly per backtest.

Four SIR-D constants in the engine (negative-pressure mult, outright-rejection rate, detractor cool-down, aversion-decay tau) are STRUCTURAL KNOBS — they shape behaviour, but they aren't sourced to a specific study (everything verdict-moving around them is: Bass p/q to Sultan 1990, baseline churn to Fader-Hardie sBG, negativity bias to Baumeister, complex contagion to Centola). We don't present them as measured facts.

The model is a pre-filter, not an oracle. Use it to kill bad ideas fast and protect your research budget. Run real interviews on the survivors.

09 · VALIDATION SCORECARD

One frozen calibration, many public references at once.

CheckEnginePublic referenceType
Bass diffusion · 5 classics0.4–3.5% MAPEclosed-form Bass on documented p, qreproduces documented math
Price-hike churn curve+10%→3% · +20%→8% · +30%→16%ProfitWell n≈14k · OpenView rangesvs population benchmark
Gross-logo retention · SMB/mid/ent73 / 87 / 93% /yrvendor bands 70–82 / 85–90 / 90–95%in band
Net dollar retention · SMB/mid/ent90 / 105 / 115%public-SaaS median 112% (Blossom St)brackets the market median
Bundling overtake (Teams↔Office)flips at ~85% suite reachdocumented Teams-over-Slack outcomedirectional
Per-account MAPE on your cohortharness readyyour private dataroadmap

Every row is a population-level or documented-math check against PUBLIC data — directional, not a per-company accuracy claim. We never anchor on a single case. A certified per-account number — fit to your cohort, holdout MAPE published — is the next tier, and the fitting harness is built. The diffusion-core row is computed live and reproducible on the public backtest page; full write-up in Field Note 01.