# Waypoint Estimator — v1 Design Memo

**Status:** research-phase deliverable 4 of 4 (spec §10) — v1 design, 2026-07-16; **pending-reviews-complete** until both independent reviews are attached. Every numeric default in this memo is an **elicited-default pending M2 (Surya) / M3 (synthetic QA) revision** unless marked structural. Spec §10 requires Oracle (GPT Pro) + Codex independent reviews attached to this deliverable **before M1 close** (the spec revision closes M1; M0 was the original spec approval — milestone conflation corrected, verifier fix 2026-07-16). Codex review: attached at `waypoint-research/external/codex-ultra-estimator-review.md` (+ package review `codex-ultra-package-review.md`); dispositions in §14.1. Oracle review: **not yet attached**.
**Spec:** `~/LIFE/specs/waypoint-practitioner-stage-assessment.md` (§4 output object, §6 architecture, §7 validation).
**Inputs:** `predictive-profile-harness-v3-design.md` (harness), `waypoint-research/inputs/fable-max-bayesian-profiling-eval.md` (binding principles), `waypoint-research/lanes/3-statistical-machinery.md` (model-class survey — this memo instantiates its composite recommendation), `waypoint-research/deliverables/marker-bank-v0.md` (marker format contract), lanes 1/2/4/5 where cited.
**Citation policy:** empirical citations are inherited from lane 3, which live-verified them 2026-07-16; anything cited here beyond that set is marked UNVERIFIED. Nothing is invented.

**Binding principles** (Fable-max review + spec §6 — constraints, not preferences):

1. **LLM proposes, mechanical layer integrates.** The extractor emits typed marker events; a deterministic integrator owns all arithmetic and the scorecard.
2. **Partial pooling:** population prior → practice-arc archetype → individual.
3. **Score every prediction at its own horizon against a base-rate null; never reward durability itself.**
4. **Family separation:** the marker extractor and any validation labeler run on different model families.
5. **Hierarchical error routing:** prediction errors spend themselves on fast state (phase) first; slow latents (stage) revise only under persistent runs of error. No teleporting.

---

## 1. Design summary

One sentence: **a discrete-grid Bayesian filter per pillar, coupled through the overall wheel latent, with expert-elicited emissions from the marker bank, a continuous-time anti-teleporting kernel, a fast phase layer that absorbs surprise before stage does, BKT-style milestone side-chains, claim-gated consistency machinery, and abstention as a first-class output — zero fitted parameters at v1; every number human-signed from M2 (the v0 bootstrap rows are machine-derived from bank fields, traceable but unsigned until Surya's pass — overclaim corrected, verifier fix).**

Structural property worth headlining: **the canonical posterior is a pure deterministic function of (merged event log, elicited parameter tables, priors).** Given the same event log and the same versioned tables, any snapshot re-computes bit-identically. Every estimator-vs-gold disagreement at M4 traces to a specific elicited row someone can inspect and revise. The LLM appears in exactly two places — event extraction and the consolidation merge/rationale pass — and neither touches arithmetic (principle 1).

Pipeline shape (v1, offline over exported dossiers per spec §6):

```text
dossier export (transcripts + probe log + telemetry)
  → EXTRACTOR (LLM, family A): typed marker events {marker_id, polarity,
    confidence, quote/evidence_ref, t}; estimate-blind (never sees the posterior)
  → EVENT ROUTER (deterministic): assign each event to layer
    (phase | milestone | stage-pillar | curriculum | guard | safety), apply dedup keys
  → INTEGRATOR (deterministic, ~few hundred lines NumPy):
    diffuse latents by Δt → phase update → phase-gated pillar updates
    → coupling message passing → milestone side-chains → consistency index
  → per-session: non-canonical nowcast snapshot
  → monthly: CONSOLIDATION — LLM merge/reconcile pass over the window,
    full-history deterministic re-smoothing, sufficiency audit, canonical
    snapshot + cited rationale + probe rankings + teacher-flag evaluation
```

All prompts live in the unified prompt registry (house rule). The evidence log is the harness's evidence/event log — one log, one integrator, two consumers (spec decision #9); harness reaction-probe events whose scoring keys overlap stage evidence enter through a static key-map in the event router.

### 1.1 Placement in the unified profile hierarchy

Waypoint extends the harness v3 temporal hierarchy with a slowest level. Timescales, owners, and update authority:

| Level | Latent | Timescale | Updated by | Owner |
|---|---|---|---|---|
| L-3 (slowest) | **wheel position** θ_overall + pillar offsets δ_k | months–years | consolidation (canonical), nowcast (provisional) | Waypoint |
| L-2 | milestone states m_j; practice-arc/archetype membership | months; ~static | event-driven (milestones); intake + drift review (archetype) | Waypoint |
| L-1 | **phase** φ (glimpse/plateau/dip/integration/intensification) | days–weeks | per-session | Waypoint |
| L0 | fast session state (affect, arousal, capacity) | hours | per-turn/session | harness (read by Waypoint as covariate, e.g. flagged-vulnerable pauses probes) |

Prediction-error routing runs bottom-up: a surprising session updates L0/L-1 freely, L-2 through explicit event semantics, and L-3 only through capped, persistent evidence (§4.4). This is the hierarchical-Gaussian-filter principle discretized (Mathys et al. 2011, 2014), per lane 3 §2.5: adopt the principle, not the filter.

---

## 2. State space

### 2.1 Stage grid

Internal grid **G = {15, 16, …, 70}** (56 integer points on the 1–100 Wheel scale), bounded slightly beyond the practical human range 22–62 so mass is not clipped at the edges (lane 3 §1). The 10-band posterior required by spec §4 is derived by summing grid mass per band; band 1 and bands 8–10 are structurally 0 (outside G), band 2 is prior-negligible but in-grid (G contains 15–20 — wording fix, verifier). Point estimate = posterior mean; credible interval = central 80% of grid mass. **Interval semantics (external-review fix):** until external calibration exists, every reported interval is **model-conditional** — conditional on the elicited tables, dynamics, and independence assumptions being right — and M5 reports must label it so; nominal 80% coverage is a target to be tested, never an established property (§14.1). Granularity is answered empirically, not by fiat: report band + point + CI and let observed CI widths at M4 say whether sub-band resolution in 22–45 is real (expectation from lane 3: ±4–6 points at best).

### 2.2 Latents per practitioner p

- **θ_o(t) ∈ G** — overall wheel position. The slowest latent.
- **δ_k ∈ {−12, …, +12}** for k ∈ {sensations, emotions, thoughts, awareness} — pillar offsets, with **θ_k = clamp(θ_o + δ_k, G)**. Prior on δ_k elicited from Surya's judgment of typical unevenness ("±1 band typical, 2+ bands notable"): v1 default a discretized symmetric prior with sd ≈ 5 points, truncated at ±12. **v1 treats δ_k as static within the estimation horizon** (no offset dynamics; drift in δ is second-order at these evidence densities — revisit at M6). The overall posterior is *derived through the coupling*, never independently estimated (spec §3).
- **φ(t) ∈ {glimpse, plateau, dip, integration, intensification}** — phase, a switching regime, not a position change. Maintained as a distribution, never a hard label (lane 3 §2.5 risk note).
- **m_j ∈ {not-reached, reached}** per milestone (reverse_breathing, first_glimpse, small_death, …) — BKT-style 2-state latents (Corbett & Anderson 1995) with per-milestone elicited guess/slip and **ratchet semantics** (reversion rate 0) for insight-class milestones, small elicited reversion for trainable-and-losable capacities (absorption depth). Read-thresholds give spec §4's status field: `claimed` = claim-type marker fired; `corroborated` = P(reached) ≥ 0.8 after residue/recurrence/telemetry evidence (bank rule 9).
- **c_k** — curriculum-position per pillar path (gate/sequence position), maintained deterministically from telemetry plus curriculum-class marker events (bank v0.1 class field). Not itself a band latent: it reaches θ only through the bank §1.4 **curriculum→stage bridge** columns, compiled like any marker row and capped at the weak tier. *(Added at adjudication 2026-07-16: the bank's v0.1 curriculum class post-dates this memo's first draft; the router layer list and this latent align the two deliverables.)*
- **x** — exposure ledger: per-vocabulary-domain binary covariate (naive / map-exposed), deterministic, from intake + app-content unlocks + observed provenance. Not a latent. When provenance is unclear, default **exposed** (conservative: discounts contaminable evidence).
- **r_p** — claim-channel reliability, Beta-distributed (§8).

### 2.3 The one mathematical object

Everything the estimator consumes — marker event, probe response, telemetry feature, milestone corroboration — reduces to **an emission likelihood column L(e | θ = g) over the grid**, possibly conditioned on phase, exposure, and archetype covariates (lane 3 §1). Probes enter through their GRM-style scoring keys (deliverable 3); markers through the bank's elicited rows (§3); telemetry features through elicited rows of the same format flagged `telemetry`. That unification is what keeps the integrator a few hundred lines.

---

## 3. Marker-to-likelihood representation

Requirement (spec §6, lane 3 §4): Surya must be able to **set, read, and veto every number**; the integrator must consume them exactly; miscalibration must be visible. The format is the marker bank's — natural frequencies under a SHELF-style elicitation (Gigerenzer & Hoffrage 1995; Gosling 2018). This section fixes the compile chain from the teacher-facing YAML to the grid columns the filter multiplies.

### 3.1 The teacher-facing unit (recap of the bank contract)

One marker = one natural-frequency question answered a handful of times:

> "Out of 100 practitioners sitting in [band range], how many would show *this* in a typical month of conversations with Wisdom?"

- Anchors at **five coarse regions** (22–30, 31–40, 41–50, 51–60, 61+); the machine interpolates.
- **Shape template** first (`ramp-up`, `ramp-down`, `bump`, `gate`), then 2–3 anchor numbers. Templates enforce the monotone/unimodal structure ordinal evidence should have.
- **Confidence tag** `firm | rough | guess` per row.
- **Second column** (`freq_per_100_month_map_exposed`) wherever the bank flags `exposure_sensitive`; **path-conditional base-rate adjustments** where pillar-path DIF applies (lane 3 §2.10).
- `max_bits` displayed; provenance (`source`, `set_by`, `reviewed`) mandatory; versioned YAML in git.

### 3.2 Compile chain (deterministic, structural)

```text
elicited row (5 anchors, shape, confidence, columns)
  1. confidence shrinkage: temper row toward flat in log-odds space
     λ_conf: firm 1.0 · rough 0.6 · guess 0.3          [v0 bank default: rough]
  2. interpolate to grid: piecewise-linear in log f between region midpoints
     (26, 35.5, 45.5, 55.5, 65.5), clamped beyond, shape-template preserved
  3. cap: adjacent-BAND log₂-LR ≤ max_bits(tier), enforced by log-space
     compression (equivalently a tempering exponent) —
     max_bits: strong 2.0 · moderate 1.6 · weak 0.6
  → emission column f_m(g), the per-window firing probability at grid point g
```

**v0 bootstrap before Surya sets real numbers (M2):** rows are generated mechanically from the bank's tier + shape + locus fields — peak frequency 50/100 at the locus region, falling off at the tier's nominal adjacent-band LR (strong 3.0, moderate 2.0, weak 1.3) along the shape template. This gives a fully runnable estimator for M3 synthetic QA whose every number is still traceable to a bank field.

### 3.3 Event application semantics

- **Fired-in-window:** observing marker m contributes L(g) = f_m(g) once per consolidation window at full weight. **Repeat firings** in the same window enter at tempering exponent 0.25 (nowcast) and are **merged into one event by the consolidation dedup pass** if they report the same underlying episode (bank T2 discipline; §4.3). Same-session repeats are merged at extraction.
- **Absence is not evidence** (bank rule 1 — claim-gated asymmetry). A marker that did not fire contributes likelihood 1 (nothing). The filter is formally a partial-likelihood conditioned on the extraction channel's selection function, which we do not trust for absences (conversational opportunity varies). The only exceptions: (a) floor markers that fire on *invited-and-absent* structure — these are FOR-band-3 events in their own right, fired on actual evidence in view; (b) probe non-response categories, which are response categories in the probe's own scoring key.
- **Tempering ledger.** Every event enters at a single scalar exponent — the product of: confidence shrinkage (**applied once, at compile time — listed here for audit completeness only, never re-applied at event time**; double-tempering risk flagged by external review), repeat discount, **phase gate** (§4.4), **claim-channel reliability** r̂_p for claim-type markers (§8), **elicitation-mode weight** (spontaneous 1.0, probe-elicited-marker 0.7 — bank rule 4; probes' own scoring keys are already probe-calibrated and take 1.0), and **volume normalization** ω (conversational opportunity quantized low/typical/high → 1.0/1.0/0.7 on top of the once-per-window cap; bank rule 5). The per-event exponent is logged. Auditability means being able to answer "why did this quote move the estimate exactly this much" from the log alone.
- **Exposure column selection:** the router picks the naive or map-exposed column from the practitioner's ledger state for that marker's vocabulary domain. Team cohort: exposed everywhere (v1 calibration exercises only the exposed column — flagged in the M5 report per lane 3 §2.10).
- **Polarity** is already encoded in the row (an AGAINST marker's row is high at the look-alike locus and low at the claimed locus); the integrator has no polarity special-casing.

### 3.4 Review affordances (as binding as the format)

Elicitation research is unanimous that experts criticize implications better than they state parameters (lane 3 §4). Each elicitation batch ships with: **implication cards** ("a practitioner your table puts at 35 shows A, B, C this month → estimate moves to 41 ± a band — feel right?"), **confusion-pair audits** (what the current table does to each of the five spec §3 look-alikes, with the discriminating marker whose absence should block the reading), and **synthetic-vignette replay** (posterior per vignette; sign-off on outcomes, not tables). Budget: batches of 10–15 markers, 4–6 sessions for the ~60-marker v0 bank (M2 input).

---

## 4. Update rules

### 4.1 Movement model (no teleporting, structural)

Stage dynamics are a **continuous-time birth–death chain on G**: generator Q with nearest-neighbor moves only; transition kernel over a gap Δt is exp(QΔt) (Jackson 2011; Liu et al. 2015). Consequences bought structurally:

- **Teleporting suppressed** (not impossible — exp(QΔt) puts vanishing but nonzero mass on distant states for any Δt > 0; external-review wording fix): multi-point jumps require accumulated dwell; a week cannot plausibly move 30 → 55, and the §4.1 tripwire audits any large shift that does occur.
- **Honest silence — corrected (external-review fix, 2026-07-16):** the first draft claimed unobserved gaps make the posterior "diffuse, uncertainty grows." With ν+/ν− = 6 that is false: a birth–death chain with those rates has a stationary distribution piling ~5/6 of adjacent-state mass upward, so long silence would *drift practitioners up-band and eventually sharpen, not widen* — advancing people without evidence. **Corrected default: during unobserved gaps, drift is zeroed and only volatility remains** (gap generator uses symmetric rates ν_gap = ν− on both sides, i.e. ι → 0 kills the net drift rather than merely scaling ν+ by 0.3), so silence genuinely widens the posterior and long-gap practitioners fall below the abstention threshold. Forward drift applies only over windows containing observed practice. Boundary behavior: reflecting at the grid edges, with the stationary-drift check above re-run at M3 on the production Q.
- **Regression is representable:** ν− > 0; the phase layer keeps dips from being *misread* as regression, but genuine regression is in-model.

Elicited defaults (from canon dwell-time material + Surya judgment at M2): forward rate ν+ = 0.03/day (≈ 0.9 points/month) for an actively practicing user, backward rate ν− = 0.005/day, **practice-intensity multiplier** ι ∈ [0.3, 2.0] from telemetry cadence multiplying ν+ over *observed* practice windows (gaps: drift-free diffusion per the correction above). Note the external review's residual concern, recorded: even over observed windows this kernel advances practitioners at ≈ +0.75 points/month absent evidence — drift vs volatility separation is an M3 decision point (§14.1), and near-zero drift with evidence-driven movement is the fallback if M3 shows prior-dominance (F6). Phase modulates kernel variance (§4.4). At band resolution this yields monthly self-transition ≈ 0.94 mid-band — the toy example's kernel (§9).

**Movement sanity invariant:** a consolidation-to-consolidation point shift > 6 points raises an automatic `conflicted` review flag with mandatory rationale — not suppression, a tripwire (the no-teleporting rule as an audit check, not just a prior).

### 4.2 Per-session nowcast (rolling, cheap, non-canonical)

```text
NOWCAST(session s at time t, practitioner p):
  1. Δt-diffuse:  stage posteriors ← exp(Q·Δt);  phase ← exp(Q_phase·Δt)
                  (continuous-time phase generator — a fractional matrix power of a
                   weekly mixing matrix need not stay stochastic; external-review fix)
  2. extract:     events E_s ← EXTRACTOR(transcript_s, telemetry_Δ)   # estimate-blind
  3. route:       each e ∈ E_s → {phase | milestone | pillar k | curriculum | guard | safety}
                  apply dedup keys, firing caps, tempering ledger
  4. phase first: φ ← φ ⊙ L_phase(E_s)                                # fast layer absorbs
  5. stage:       for each pillar k: p_k ← p_k ⊙ Π_e L_e^(λ_e · gate(φ, e))
                  subject to session surprise cap κ_s (§4.4)
  6. couple:      overall ← message passing over the tree (§4.5)
  7. milestones:  BKT updates for claim/corroboration events (§4.6)
  8. consistency: update r_p and conflict index on guard events (§8)
  9. write:       nowcast snapshot (spec §4 shape, marked non-canonical)
```

### 4.3 Monthly consolidation (canonical)

Two passes, in order:

1. **LLM merge pass (family A), windowed.** Re-reads the month's transcripts + accumulated events + open questions carried forward. Duties: (a) **merge repeated evidence of the same underlying episode into one event** — a statistical duty, not narrative hygiene (correlated evidence is the silent killer, lane 3 T2); (b) reconcile contradictions into explicit `conflict` records with both readings; (c) propose missed markers — span-flagging is posterior-aware, but an event is admitted only if the estimate-blind re-extraction independently fires on the flagged span, so the merge pass cannot inject evidence directly (residual risk that posterior-aware span *selection* biases the evidence stream is recorded; external review, §14.1); (d) draft the cited rationale.
2. **Deterministic re-smoothing, full-history.** The integrator re-runs filter+smoother (forward-backward over the grid; Rabiner 1989) over the **entire merged event log from t₀** — trivial compute at this scale, and it guarantees the pure-function property (§1). Then: sufficiency audit (§7), abstention decisions, probe rankings for next month (expected-posterior-entropy reduction with exposure caps — lane 3 §2.2; posterior-at-selection logged), teacher-flag evaluation **on raw ungated evidence** (§4.4), canonical snapshot written with `param_version` (marker-bank git hash + prior-table version + extractor model id).

The nowcast answers "where do we think they are today"; the consolidation answers "what does the whole record support" — filter vs smoother, spec §6's cadence falling out of Rabiner's two algorithms.

### 4.4 Error routing: surprise spends itself on fast state first

Three mechanisms, layered (structural):

- **Joint structure does most of it.** Phase mixes on a weekly timescale; stage moves on a monthly-plus timescale. A single anomalous session is *cheaper* for the joint model to explain as a phase flip than as stage movement — the toy example's day-17 glimpse shows this numerically (§9).
- **Phase gates stage emissions.** Elicited gate table (v1 defaults): plateau/integration 1.0; **glimpse**: peak-state FOR-markers 0.5 toward stage (a glimpse annotates phase until reproducible — bank rule 6), others 1.0; **dip**: negative-affect/instability markers pointing down-band 0.3 (a dark-night week is not regression — spec §3), structural/behavioral markers 1.0, kernel variance ×1.5; **intensification**: all stage emissions 0.5, kernel variance ×2 (genuine reconfiguration is likelier near transitions — punctuated-transition observation, corpus). **The safety path never routes through the gate: teacher-flag logic reads raw markers** (lane 3 §2.5 mitigation).
- **Surprise budgets.** Per-session KL cap κ_s = 1.5 bits per pillar (excess clipped by a global temper on that session's bundle and queued for consolidation review); per-window budget 5 bits per pillar. **Persistent-run override:** a run of ≥ 3 sessions with same-direction clipped surprise doubles the cap for the consolidation smoothing pass — "slow latents revise only under persistent runs of error" made concrete and checkable.

**Recorded external-review critique of this subsection (accepted as risk, not yet re-architected — §14.1):** (a) sequential phase-then-stage gating uses the session's evidence twice and can self-seal — sustained true regression can keep classifying itself as "dip" and muting its own down-band evidence; the F3 raw-vs-gated divergence monitor is the standing mitigation, and M3 runs a no-gating ablation (phase reported separately, stage ungated) as the comparison arm. (b) KL caps and run-overrides are data-dependent tempering, not coherent Bayes — batching and session-splitting can change results; the review's proposed replacement (a predeclared contamination-mixture likelihood, ε-noise per event) is the M3 decision point. Until one of these lands, treat gated outputs as robustness-engineered scores, not clean posteriors (interval-semantics note, §2.1).

### 4.5 Pillar coupling (exact, structural)

The model is a tree: θ_o → δ_k → θ_k → pillar evidence; cross-pillar markers (M-X*) attach to θ_o directly. Exact sum-product on a 56-point grid is trivial:

```text
COUPLE():
  for each pillar k:
    msg_k(θ_o) = Σ_δ P(δ_k = δ) · Λ_k(θ_o + δ)      # Λ_k = pillar evidence likelihood
  post(θ_o) ∝ prior(θ_o) · Λ_X(θ_o) · Π_k msg_k(θ_o)
  for each pillar k:                                  # redistribute (borrow strength)
    post(θ_k) ∝ Σ_{θ_o} post_{-k}(θ_o) · P(δ_k = θ_k − θ_o) · Λ_k(θ_k)
```

A starved pillar contributes a ~flat message (no drag, and — precisely — no effect on the overall posterior at all; a flat message is multiplicative identity); a loud pillar moves the overall only through the offset convolution, so one pillar can sit at 2.4-depth while the profile stays honest about the rest (spec §3's uneven practitioner is representable). The elicited δ spread caps how hard any single pillar can pull.

**Corrections and recorded risks on this subsection (adjudication 2026-07-16):** (a) **clamp → truncate-and-renormalize:** at grid boundaries several offsets map onto one clamped θ_k, which breaks the redistribution equation as displayed — the implementation restricts δ support so θ_o + δ stays in G and renormalizes, rather than clamping (external-review fix). (b) **Identifiability ridge, recorded:** pillar evidence constrains θ_k = θ_o + δ_k, so (θ_o + c, δ_k − c) fits pillar evidence equally well — with few cross-pillar (M-X*) events, the *centered offset prior*, not the dossier, locates overall position. Candidate resolutions (M2/M3 decision, cross-ref dossier §4.7-5 which flags the pillar→overall aggregation rule for Surya): impose Σ_k δ_k = 0 (overall = pillar center, definitional), and/or report per-snapshot what fraction of overall information came from cross-pillar evidence vs the offset prior, and/or derive overall transparently from the four pillar posteriors under a declared rule. Not silently re-architected here — both positions recorded. (c) The static-δ declaration vs per-pillar diffusion in NOWCAST is likewise recorded as a model-consistency gap (diffusing pillar marginals separately then recoupling through the *original* offset prior either discards the learned offset posterior or implicitly redraws offsets each window); v1 ships the message-passing approximation with this named, and the joint (θ_o, δ_{1:4}) posterior is the M3-earned upgrade path.

### 4.6 Milestone side-chains

Per milestone: 2-state BKT with elicited natural-frequency parameters, **elicited in the likelihood direction** (external-review fix — the earlier question "of 100 claimants, how many actually had it?" elicits P(reached | claim), the posterior, not the BKT likelihoods): ask instead *"of 100 practitioners who have NOT reached X, how many would claim it in a typical month?"* (guess, P(claim | ¬reached)) and *"of 100 who HAVE reached it, how many would report it?"* (1 − slip, P(claim | reached)). Guess ≡ claimed-but-not-real (contamination, look-alikes, enthusiasm); slip ≡ real-but-not-reported (humility deflation; cessations systematically under-claimed — lane 3 §2.3). Milestone posteriors feed the stage filter as **soft ordering constraints**: elicited gate curves P(m_j reached | θ) near-zero below the milestone's canonical band enter as likelihood columns when milestone state changes. Dedup rule: one transcript sentence never counts both as a milestone claim and as a stage marker (router key). **Recorded external-review critique (accepted as risk — §14.1):** the sentence-level dedup does not prevent *cross-layer* reuse of one underlying datum (the toy's E4 telemetry contradiction moves stage via the guard, moves the milestone, and decrements r_p — three factors from one observation); the coherent form is one joint factor θ → M → {claim, telemetry} applied once. v1 mitigation: milestone-driven stage columns fire only on milestone *state change* (not on every claim event), and the M3 ablation quantifies the double-count by comparing joint-factor vs current routing on synthetic dossiers.

---

## 5. Partial pooling (population → archetype → individual)

At N = 5–10 nothing hierarchical is *fitted*; pooling enters as **structured elicited priors** plus totally-pooled parameters (lane 3 §2.6):

- **Population level.** Cold-start prior p_pop(θ | tenure band, source ∈ {app, team}) — wide over 22–45 for app users, elicited base rates by tenure kept **deliberately shallow** (expertise ≠ hours; inverted-U trajectories — lane 3 T4). If the estimator's skill comes mostly from this prior, bits-saved vs the base-rate null exposes it; that is what the null is for.
- **Archetype level.** Archetype = practice path (breathwork/love/clarity/awareness-led) × map exposure. **Design intent: archetypes shape evidence signatures and the pillar *profile*, not overall position** — path choice does not make anyone more advanced. **Correction (external-review fix, 2026-07-16): as first drafted this intent was not delivered by the mechanics** — a one-sided offset-prior shift (breathwork → sensations +3) changes overall inference through the coupling: the same sensations-at-40 evidence would imply overall ≈ 37 instead of 40. **Corrected default: archetype offset deltas are recentered to sum to zero across the four pillars** (e.g. breathwork-led → sensations +3, each other pillar −1), so path shifts the *shape* of the expected profile while leaving its level untouched by construction; M3 verifies with an archetype-swap invariance check on overall. Archetype also selects path-conditional marker base-rate adjustments and (exposure) contamination columns, as before. Elicited from Surya as small deltas on the population tables. The review's stronger recommendation — drop archetype effects from v1 stage inference entirely, run them as sensitivity analyses only — is recorded as the fallback if the M3 invariance check fails (§14.1).
- **Individual level.** The filter posterior. **Individuation = measured drift of the individual posterior away from its archetype prior**, reported as KL(individual ‖ archetype-prior) in bits per practitioner, plus the wrong-archetype contrast (§10.4). If real dossiers don't beat archetype-swapped ones, Waypoint is stereotyping, not measuring.

All likelihood rows are shared across practitioners (total pooling at the parameter level — the strength-borrowing at this N). Fitting variance components begins at M6 with informative priors centered on the elicited values (Gelman 2006).

---

## 6. Cold start

- **Prior construction:** p_pop conditioned on tenure band and source, times archetype deltas once a path is chosen (population tables until then).
- **Intake evidence:** the onboarding conversation is usually the densest single dossier item (practice-history narrative). Extraction runs on it normally, but **declared history is a claim**: claim-type events from self-narrative are capped at 0.5 bits total until behavior corroborates (gate telemetry, session structure). The exposure ledger is initialized at intake (read the Wheel? which traditions/books?) and maintained from content unlocks.
- **Nowcast from session 1; snapshots abstain until sufficiency** (§7). The internal posterior always exists; `data_sufficiency` gates *reporting*, not math.
- **Expected time-to-first-report** at typical marker rates: ~6–10 informative sessions (≈ 4–8 weeks at app cadence) for the first reportable pillar — an elicited plausibility to verify at M4, and a product-relevant number for Wisdom's expectations.
- Phase and milestones report earlier than stage (phase is fast and self-correcting; milestones carry their own confidence) — with confidence fields, from the first informative event.

---

## 7. Abstention and data sufficiency

Abstention is the estimator's core competence claim: **right when it speaks** (risk–coverage framing, El-Yaniv & Wiener 2010; Chow 1970). Per-pillar, independently (a practitioner can be estimable on awareness and unestimable on emotions):

Report pillar k iff **all** of:
1. **Evidence mass:** scrutiny-capacity in the trailing 90 days ≥ **E_min = 2.5 bits**, where each FOR-polarity event contributes min(max-adjacent-band |log₂ LR| of its effective column, max_bits). Three semantic corrections (verifier + external review, 2026-07-16): (a) this sum is **potential discriminative capacity** ("how much discriminating evidence did the window contain"), *not* realized posterior information — the toy's window carries ~2.6 capacity-bits while moving the posterior only ~0.1–0.2 KL-bits, and that is by design (evidence that confirms the current position is still evidence); it must never be reported as information gain. (b) **Guard/AGAINST events are excluded from the sufficiency sum** — a contradiction must not make a pillar *more* reportable (it feeds trigger 3 instead). (c) Arithmetic floor fixed: with moderate capped at 1.6 bits this means ≥ 2 independent verified moderate markers, or one strong + one weak (2.6), or **~5 weak (3.0 bits — 4 × 0.6 = 2.4 fails the 2.5 floor; verifier fix)** — a defensible floor, not a magic number.
2. **Posterior width:** 80% credible interval ≤ 2 bands (grid: ≤ 20 points).
3. **Conflict:** consistency machinery below threshold (§8) — otherwise status is **`conflicted`, a distinct value**, never `insufficient`: averaging a contradiction into a midpoint is the one behavior worse than silence (lane 3 §2.7).

**Overall** reports iff ≥ 2 pillars report AND total absorbed evidence ≥ 6 bits AND no unresolved cross-pillar conflict. Insufficient pillars still contribute their (weak, ~flat) messages to the coupling — abstention gates reporting, not inference.

Diagnostics shipped with every M5 report: abstention rate by reason (insufficient / conflicted), risk–coverage curve as a headline artifact. Conformal prediction sets are parked for M6+ (needs ≳ 20–30 labeled dossiers for non-vacuous coverage; snapshot schema carries a `credible_set` field now so nothing breaks later — Angelopoulos & Bates 2021).

---

## 8. Consistency penalties (claims vs telemetry)

Three coordinated mechanisms, all bound by the bank's asymmetry rules (penalize unsupported claims, never absence of claims; consult phase before any penalty — a dip explains a practice-telemetry sag):

1. **Guard-marker channel.** Claim-vs-telemetry divergences are themselves markers (M-NX-*, AGAINST polarity) with elicited columns — they are *evidence about contamination/enthusiasm*, informative mildly downward and toward look-alike loci. The day-24 event in the toy example shows the arithmetic.
2. **Claim-channel reliability r_p.** Per-practitioner Beta, initialized Beta(2,2). Each **corroborated** claim: a += 1; each **contradicted** claim (guard event confirmed at consolidation): b += 1. Claim-type evidence enters at tempering exponent r̂_p = E[r_p]. Cheap, auditable, recovers slowly, and never punishes silence.
3. **Conflict index → `conflicted`.** ≥ 2 confirmed claim-telemetry contradictions inside a window, or a clipped-surprise queue the consolidation cannot reconcile, sets `data_sufficiency: conflicted` on the affected pillar with both readings recorded in the rationale (house divergence convention: both positions, no silent override). Divergence ≠ deceit; the state is a review flag for the monthly pass and, at threshold, teacher triage.

---

## 9. Worked toy example — one synthetic practitioner-month

Synthetic practitioner **TP-07**: team cohort (map-exposed everywhere), breathwork-led archetype, tenure 10 months. Telemetry: 2.1 gate at **belt of qi** (3rd of 7 exercises, ~8 sessions in). For legibility the toy runs at **band resolution** over four states (b3 = 21–30, b4 = 31–40, b5 = 41–50, b6 = 51–60); production runs the identical operations on the 56-point grid. Columns shown are *effective* columns (post confidence-shrinkage, within tier caps; all three happen to carry max adjacent-band 1.32 bits ≤ moderate cap 1.6). Numbers are exact (verifiable by hand or three lines of NumPy).

**Carried-in canonical posteriors** (last consolidation, day 0):
sensations **p_S = (0.20, 0.60, 0.17, 0.03)**; thoughts (0.35, 0.50, 0.13, 0.02); awareness (0.30, 0.52, 0.15, 0.03); emotions (0.45, 0.45, 0.09, 0.01) [starved]. Phase (plateau, glimpse, dip, integration, intensification) = (0.75, 0.05, 0.08, 0.10, 0.02). Claim channel r_p ~ Beta(2,2). Overall prior for the coupling step: (0.30, 0.52, 0.15, 0.03).

**The month's events:**

| Day | Event | Layer | Effective column (b3, b4, b5, b6) |
|---|---|---|---|
| 2 | **E1** M-S4-002 breath-mechanics fluency, quote + gate telemetry match | sensations | (0.20, 0.50, 0.25, 0.10) |
| 9 | **E2** M-S4-005 vibration onset, vividness preserved, fresh quote | sensations | (0.08, 0.20, 0.45, 0.40) |
| 11 | **E2b** same episode re-told | sensations | E2 column at temper 0.25 |
| 17 | **E3** M-A4-008 non-dual glimpse report (corroboration_required) | phase + milestone queue | phase column (0.02, 0.50, 0.01, 0.05, 0.15) |
| 24 | **E4** reverse-breathing mastery claim; telemetry shows belt-of-qi, practice variety unchanged → M-NX-006 guard | guard + milestone | (0.30, 0.20, 0.08, 0.04) |

**Sensations chain (nowcast):**

- E1: p ∝ (0.20, 0.60, 0.17, 0.03) ⊙ (0.20, 0.50, 0.25, 0.10) → **(0.104, 0.778, 0.110, 0.008)**. KL vs prior 0.11 bits — well under κ_s = 1.5.
- E2: → **(0.038, 0.718, 0.229, 0.014)**. Band-5 mass triples on the up-band marker.
- E2b (repeat, temper 0.25): → (0.029, 0.687, 0.268, 0.016). KL 0.008 bits — the repeat discount makes re-telling nearly free.
- E4 guard: → **(0.052, 0.817, 0.128, 0.004)**. The unsupported claim moved the posterior **down** — band-5 speculation cost, not band-5 credit. Contrast, had the bare claim been accepted as a strong FOR-≥b5 marker (0.02, 0.15, 0.50, 0.70) applied to the actual pre-E4 state: the posterior would have jumped to b5 = **0.54** (corrected from 0.49, which had ignored E2b — verifier/Codex fix). Claim-gating is worth the design.

**Phase chain (day 17).** The glimpse report is *surprising* under plateau — and the fast layer buys it: φ ∝ (0.75, 0.05, 0.08, 0.10, 0.02) ⊙ (0.02, 0.50, 0.01, 0.05, 0.15) → **(0.31, 0.51, 0.02, 0.10, 0.06)** — phase flips to glimpse-majority while the stage posterior doesn't move at all (M-A4-008 is corroboration_required: stage effect deferred until reproducibility; the event joins the corroboration queue and the probe scheduler). **Sense note (verifier fix, canon §9-J):** M-A4-008 encodes the canon's *39 Non-Dual State* — a Stage-2 OA attainment, band-4 locus — which is a distinct sense from the *~41 awakening glimpse*; the spec §4 `first_glimpse` milestone is keyed to the ~41 anchor, so this event enters that milestone as `claimed` only in the glimpse-class sense (bank M-PGL-001 dual-class), with the which-sense record carried on the event. Two weekly mixing steps later with no recurrence (glimpses are transient: P(stay) = 0.30/week), day-30 phase = **(0.61, 0.07, 0.06, 0.21, 0.04)** — back to plateau-majority with an integration shoulder. Surprise spent itself on fast state; the slow latent never flinched.

**Milestone chain (day 24), reverse_breathing.** Elicited gate curve P(RB | b3..b6) = (0.001, 0.05, 0.55, 0.90). Prior from the day-24 **pre-event** stage posterior — the post-E2b state (0.029, 0.687, 0.268, 0.016), *before* E4's own guard evidence, so one event never both moves the stage prior and then re-enters the milestone chain it primes: **P(reached) = 0.196** (corrected from 0.175, which had been computed from the post-E2 state, silently dropping E2b — verifier + Codex convergent fix). Claim evidence (P(claim | reached) = 0.6, P(claim | ¬reached) = 0.08 — map-exposed enthusiast rate): posterior **0.646**. Telemetry contradiction (the canon says post-RB practice variety collapses — highly observable; P(contradiction | reached) = 0.05, | ¬reached) = 0.95): **P(reached) = 0.088**. Status: `claimed`, not corroborated; queued for a mechanics probe. Claim channel: Beta(2,2) → Beta(2,3), r̂_p = 0.40 — TP-07's future bare claims enter at 40% strength until corroborations rebuild it.

**Consolidation (day 30):**

1. Merge pass: E2b recognized as a re-telling of E2's episode → merged (one event). Conflict record written for E4 with both readings ("mislabeled excitement about a first reverse-breathing *attempt*" vs "genuine early RB the telemetry hasn't caught") — recorded, not averaged.
2. Full re-smoothing on merged events (E1, E2, E4) from the carried-in posterior, then one monthly kernel step (band-level kernel rows: b3 (0.955, 0.043, 0.002, 0); b4 (0.010, 0.940, 0.048, 0.002); b5 (0.001, 0.017, 0.934, 0.048); b6 (0, 0.002, 0.028, 0.970)):
   evidence-only **(0.066, 0.825, 0.105, 0.003)** → kernel → **p_S = (0.071, 0.781, 0.138, 0.010)**, point **36.4**, 80% CI {b4, b5} (mass 0.92; ≤ 2 bands ✓). Total window movement: KL 0.13 bits — a calm month.
3. Sufficiency audit (trailing 90 days): S absorbed 1.32 + 1.32 = **2.64 capacity-bits this window** — E1 + E2 only; **E4's guard is excluded from the sufficiency sum by the §7 rule (a contradiction must not make a pillar more reportable; corrected from the earlier 3.97 which counted it)** — (+ 2.1 prior window = 4.74) ✓ ok; T 2.7 ✓ ok; A 1.9 ✗ insufficient; E 0.4 ✗ insufficient. Overall: 2 pillars reportable, total ≈ 9.7 capacity-bits ✓ ok (≥ 6).
4. Coupling (offset kernel P(δ = −1, 0, +1 band) = (0.15, 0.70, 0.15); pillar messages = posterior ÷ carried-in prior, convolved; production does the exact tree pass of §4.5): **overall = (0.147, 0.696, 0.144, 0.014)**, point **35.8**, 80% set {b3, b4}. The starved emotions pillar contributes an exactly-flat message (posterior = prior) — no drag and, precisely, **no effect on the overall posterior at all** (a flat message is multiplicative identity — external-review fix of the earlier "keeps the set wider" phrasing); the overall set is wider than sensations alone simply because only two pillars contributed information to it.

**Canonical snapshot (abridged, spec §4 shape):**

```text
waypoint_snapshot TP-07 @ day 30 (canonical)
  overall:    band_posterior (b3 .147, b4 .696, b5 .144, b6 .014) · point 36 · 80% CI {b3–b4}
  pillars:    S point 36, 80% {b4–b5}, ok · T ok · A insufficient · E insufficient
  phase:      plateau .61 / integration .21 / glimpse .07 (confidence: moderate)
  milestones: first_glimpse   claimed (1 occurrence, glimpse-class sense per §9-J note, uncorroborated — reproducibility probe queued)
              reverse_breathing claimed, P(reached)=.09 — telemetry-contradicted, see conflict record
  consistency: r̂_claims = .40 (1 contradicted, 0 corroborated this window)
  probe plan: (1) glimpse reproducibility (awareness) · (2) emotions-pillar probe (starved)
              · (3) belt-of-qi mechanics probe (cheap RB-claim adjudication)
  teacher_flag: none (band ≪ unbinding-adjacent; phase not dip/intensification)
  rationale:  cited quotes for E1, E2, E4 + conflict record + tempering ledger refs
  param_version: marker-bank@<git-hash> · priors@v1 · extractor@<family-A model id>
```

Every mechanism in §§2–8 appears above with real numbers: capped columns, repeat discount, claim-gated asymmetry, guard arithmetic, fast-layer surprise absorption, corroboration deferral, BKT milestone math, reliability tempering, kernel diffusion, dedup-at-consolidation, sufficiency audit, per-pillar abstention, coupling with a starved pillar, and the anti-teleporting kernel.

**Toy-vs-production fidelity note (external-review fixes, recorded):** the toy is a legibility device, not an implementation fixture. Known simplifications: (a) it multiplies the month's evidence and applies **one** monthly kernel, where production interleaves kernel and evidence by timestamp (K_Δt₁·L₁·K_Δt₂·L₂·… — transition and emission operators do not commute); (b) the illustrative band-level kernel's two-band monthly jump entry (0.002) is far larger than the production point-level CTMC implies (~10⁻⁹ for ≥11 forward point-jumps at these rates) — the band kernel is a stand-in, not exp(Q·30d) aggregated; (c) E4 is deliberately shown flowing through guard + milestone + reliability, which is the §4.6 recorded cross-layer-reuse risk in miniature. M3 ships a machine-readable fixture (every timestamp, production-grid Q, phase generator, priors, likelihood rows, expected intermediate posteriors) as the real regression target.

---

## 10. Calibration & validation plan (spec §7 protocol)

### 10.1 Horizons and nulls (principle 3)

Every prediction is scored **at its own horizon** against **two nulls**: the tenure-conditioned **base-rate null** (population prior — "practitioner, 8 months in") and the **persistence null** (last canonical snapshot carried forward, meaningful from the second consolidation). Durability is never rewarded; a stage estimate that "stays right" mostly restates that stage is slow.

| Horizon | Prediction | Scored against | Cadence |
|---|---|---|---|
| **H0** concurrent | consolidation snapshot at T | Surya gold at T (interview + blinded dossier rating) | M4 study |
| **H1** 1 month | predictive distribution over *observables*: next-window probe response categories (via scoring keys), milestone corroboration events, gate-progression timing | realized observables; bits saved vs both nulls | continuous, no gold needed |
| **H2** 3–6 months | consolidation-to-consolidation trajectory | movement plausibility + persistence-null comparison | per consolidation |

H1 is the harness discipline imported: the estimator earns its keep in bits saved on real events between gold-label studies, per practitioner, **paired comparisons only** (at this N, aggregate means are noise).

### 10.2 M4 gold-label study (per spec §7, per subject)

Dossier compiled → Surya structured interview (gold: band + pillars + milestones + rationale) → Surya **blinded dossier-only rating** (order counterbalanced, separated in time) → one-time instrument battery → estimator run on the dossier. All four readings logged per subject in analysis-ready rows. The "embryonic 4-test Hui–Walter design" framing is **withdrawn as an identification claim** (verifier + external-review fix): Hui & Walter (1980) is a 2-test × 2-population method whose identification needs conditionally independent tests and populations with different prevalences — these four readings share one rater, one evidence base, one taxonomy, and one self-report channel, so they are logged as *analysis-ready structure for a future multi-rater/multi-population design*, nothing more. The **interview-vs-dossier delta is the headline**: the information ceiling of any data-only estimator. The estimator's primary target is agreement with the **dossier rating** (same information channel); interview agreement is the stretch goal and is expected to be bounded by the ceiling. Gold labels are scored **smeared** by Surya's self-elicited adjacent-band tolerance per band region, not as delta functions (lane 3 §2.9).

### 10.3 Metric suite (lane 3 §5.1)

- **Primary:** Ranked Probability Score over the 10-band posterior vs (smeared) gold (Epstein 1969; Murphy 1971) — ordinal-aware, proper.
- **Secondary:** log-loss (the bits currency) and Brier; band hit / adjacent-band hit as the legible pair.
- **Pillars:** quadratic-weighted κ vs Surya pillar ratings (Cohen 1968).
- **Uncertainty calibration:** 80% CI coverage **counts** with binomial intervals ("contained gold in k of N"), reported as **descriptive only** — at N practitioners the exact binomial interval on 8/10 coverage spans ~44–97%, and pooled events (pillar × subject × round ≈ 40–80) share practitioner/dossier/rater/extractor and are **not independent calibration cases** (external-review fix; the practitioner is the resampling unit); 3-bin reliability shown for description, never as established calibration; no ECE curves at this N.
- **Skill:** bits saved vs both nulls at each horizon, per practitioner, paired bootstrap.
- **Abstention:** risk–coverage curve + abstention rate by reason.
- **Milestones:** precision/recall of `corroborated` vs Surya's milestone judgments, with the under-claiming asymmetry counted separately (missed real cessations ≠ endorsed look-alikes).
- Divergences recorded as open questions with both positions (house convention), never silently overridden.

### 10.4 Controls (harness imports)

- **Matched-wrong-dossier:** practitioner A's evidence scored against B's gold (matched tenure/archetype) — individuation or bust.
- **Wrong-archetype swap:** re-run each dossier under a swapped archetype prior; report separation (stereotype detector, §5).
- **Shuffled-time control:** same events, permuted timestamps — does the temporal machinery (kernel, phase gating, run detection) earn anything over a bag-of-markers readout?
- **Prior-dominance check:** bits-saved vs base-rate null ≈ 0 ⇒ the estimator is the prior restated.

### 10.5 Synthetic-dossier QA (M3 gate, engineering QA only — never calibration)

Personas authored at known wheel positions **by model family C** (§11): a clean ladder (25, 30, 35, 40, 45, 50) plus the adversarial set the spec §3 confusion table implies — vocabulary contaminator at 28 talking like 48; humble under-claimer at 45; **dip-phase at 38** vs clinical-depression-flavored at 25 (renamed from "dark-night at 38", verifier fix: canon §7 places dark night proper at ~52–59, Unbinding-adjacent — a band-4 case tests the *dip*-vs-depression pair), **plus a true dark-night case at 52–59 with corroborated boundary history** (testing CT-2 at its canon position); dissociative flatness vs equanimity; absorption vs dullness. **Pass criteria:** (i) clean-ladder ordinal ranking Kendall τ ≥ 0.75; (ii) each adversarial pair separated in the correct direction **or** the contaminated member abstained/`conflicted` — a confident wrong call on any pair fails the gate; (iii) machinery calibration: over the synthetic set, 80% CIs cover authored positions at ~80% (this tests the integrator's arithmetic under the bank's assumptions; it cannot test the assumptions).

**Sensitivity analysis is v1's substitute for model fitting:** perturb every elicited frequency within its confidence-tag band (firm ±20%, rough ±40%, guess ±60%, relative), re-run all dossiers (deterministic, cheap), and report which band assignments flip. The flip list is M2's second-pass re-elicitation queue.

### 10.6 Blinding and leakage rules

Extractor is estimate-blind (never sees posteriors, priors, or archetype). The consolidation LLM sees evidence and prior snapshots (its job is reconciliation) but owns no arithmetic. Validation labelers never see estimator output; Surya's dossier rating is blind to the estimator and separated in time from the interview (spec §7). Synthetic personas are never *extracted* by the authoring family, and M3 persona judging is deterministic against authored ground truth (narrowed from "never authored, extracted, or judged by the same family," which contradicted §11's acceptable C = B — verifier fix). Profile-version discipline: any precomputed summary carries a source window (harness §12).

---

## 11. Family separation (principle 4)

Roles, not model ids (ids resolve at run time and are recorded in `param_version`; judging workloads route through OpenRouter per house convention):

| Role | Family | Constraint |
|---|---|---|
| Marker extractor + consolidation merge/rationale | **A** (Claude/Fable-class, per spec §6) | estimate-blind extraction; prompts in registry |
| Validation labeler / open-text judge at M4–M5; any reaction-classifier shared with the harness | **B ≠ A** | never sees estimator output |
| Synthetic persona author (M3 QA) | **C ≠ A** (C ≠ B preferred; acceptable C = B because persona QA is judged deterministically against authored ground truth) | personas never extracted and judged by the same family |

Rationale: shared-family extractor and labeler have correlated blind spots — agreement inflates precisely where both are wrong (Fable-max review §3c). Extraction regression suite (§12, F7) re-runs on every family-A model upgrade before it goes live.

**Distribution constraint carried from the bank:** guard/detection logic and elicited detection thresholds are internal-only, narrower than the Wheel itself — coached knowledge of detection strategy degrades detection (bank §0 note; lane 5).

---

## 12. Failure modes and diagnostics

| # | Failure | Mechanism | Diagnostic (observable) | Response |
|---|---|---|---|---|
| F1 | Correlated-evidence overconfidence | enthusiastic practitioner re-tells one episode five times; naive independence | per-window bits histogram; cap-saturation rate; nowcast-vs-consolidation dedup delta | firing caps + merge pass (structural); if dedup deltas run large, tighten repeat discount |
| F2 | Vocabulary-contamination lift | map-exposed practitioner scores on learnable markers | naive-column counterfactual delta per dossier (re-run with naive columns; large delta = exposure-carried estimate); sudden multi-marker onset co-timed with content unlocks | exposure ledger + columns (structural); flag dossier for structure-probes |
| F3 | Phase mute hides true regression | dip gating discounts genuine down-band evidence | raw-vs-gated posterior divergence monitor per window; teacher-flag path reads raw (never muted) | divergence > threshold ⇒ consolidation review; phase posteriors not hard labels |
| F4 | Archetype stereotyping | pooling toward archetype on a narrow cohort homogenizes | individuation KL per practitioner; wrong-archetype contrast (§10.4) | if contrasts don't separate: flatten archetype deltas, report as M5 finding |
| F5 | Elicitation miscalibration | Surya's frequencies wrong somewhere | sensitivity flip list (§10.5); M4 residuals traced to specific rows (pure-function property) | re-elicit flagged rows; implication cards at M2 |
| F6 | Prior dominance | estimate is the tenure prior restated | bits-saved vs base-rate null ≈ 0 | report honestly; the instrument isn't earning its keep — revisit marker bank coverage |
| F7 | Extractor drift on model upgrade | family-A upgrade changes marker-firing behavior | frozen transcript regression set with expected events; agreement stats pre/post | gate upgrades on regression pass; re-baseline with Surya spot-check |
| F8 | Consistency-penalty spiral | false-positive guard events tank a genuine practitioner | r̂_p trajectory monitor; `conflicted` rate per practitioner | `conflicted` routes to human review, never auto-downgrade; corroborations rebuild r̂_p |
| F9 | Milestone/marker double counting | same sentence fires claim + stage marker | router dedup-key audit (sampled) | structural key; audit quarterly |
| F10 | LLM confidence miscalibration | extractor "high confidence" treated as probability | extraction QA agreement stats vs family-B spot labels | confidences enter only through the ordinal tempering map (structural; harness §11.3) |
| F11 | Pillar-coupling leakage | one loud pillar drags overall | per-pillar vs overall divergence report; δ-spread posterior audit | elicited δ spread caps pull (structural); widen spread if M4 shows real unevenness beyond it |
| F12 | Silence misread as stability | no-data weeks keep a sharp posterior | CI-width-vs-gap curve (must widen with silence) | kernel diffusion (structural); if not widening, Q rates too low — re-elicit |
| F13 | Teleporting via consolidation | merge pass + smoother move a practitioner > 6 points/month | movement-sanity tripwire (§4.1) | mandatory rationale + review; check for F1/F2 upstream |

---

## 13. Defaults set in this memo (and who revises them)

Decisions that are **structural** (change requires a design revision, not elicitation): grid G; tree coupling; birth–death kernel form; partial-likelihood absence semantics; claim-gated asymmetry; two-pass consolidation with full-history re-smoothing; pure-function/canonical-log property; abstention as three independent triggers; `conflicted` ≠ `insufficient`; safety path ungated; family-separation matrix; LLM-never-adds-up-its-own-scorecard.

Elicited defaults **Surya revises at M2**: all marker rows (via the bank); Q rates ν±, intensity multiplier range; δ_k spread; phase-gate table; phase mixing matrix; milestone guess/slip/gate curves; population/tenure prior tables; archetype deltas; Surya self-tolerance (gold smearing).

Engineering defaults **M3 QA tunes**: tier caps (2.0/1.6/0.6); confidence tempers (1.0/0.6/0.3); repeat discount 0.25; κ_s = 1.5 bits, window budget 5 bits; E_min = 2.5 bits, overall 6 bits / 2 pillars; CI rule ≤ 2 bands; run-detector ≥ 3 sessions; movement tripwire 6 points; corroboration threshold 0.8; probe-elicited weight 0.7; volume temper 0.7; Beta(2,2) initialization.

## 14. Spec deltas proposed (fold into spec revision at M1 close)

1. `data_sufficiency` gains a third value: `ok | insufficient | conflicted` (§7, §8).
2. `data_sufficiency` becomes **per-pillar** as well as overall (§7).
3. Snapshot carries `param_version` (marker-bank git hash, prior-table version, extractor model id) — reproducibility contract (§1).
4. Snapshot reserves `credible_set` for M6+ conformal sets (§7).
5. Milestone entries carry `P(reached)` alongside `claimed|corroborated` (§4.6, toy example).

### 14.1 External statistical review — dispositions (Codex ultra, 2026-07-16; adjudicated same day)

Full reviews: `external/codex-ultra-estimator-review.md`, `codex-ultra-package-review.md`. Overall verdict there: "needs revision — an elicited, tempered scorecard in Bayesian language, not yet one coherent Bayesian model." Dispositions:

**Accepted and applied in this memo:** silence-drift correction + drift/volatility separation during gaps (§4.1); teleporting wording (§4.1); clamp → truncate-renormalize (§4.5); archetype deltas recentered to zero-sum + swap-invariance check (§5); BKT elicitation re-worded to likelihood direction (§4.6); continuous-time phase generator (§4.2); double-tempering clarified single-application (§3.3); guard events excluded from sufficiency + capacity-vs-realized-information semantics (§7); model-conditional interval labeling (§2.1); toy-example corrections — milestone prior 0.196/0.646/0.088, counterfactual 0.54, starved-pillar identity, operation-ordering and band-kernel fidelity notes (§9); Hui–Walter identification claim withdrawn (§10.2); persona set re-anchored (§10.5); §10.6/§11 family-rule contradiction resolved.

**Accepted as recorded risks with named mitigations, re-architecture deferred to M3 decision points (not silently adopted, not silently dismissed):** phase-gating self-sealing / joint-update alternative (§4.4 note; F3 monitor + no-gating ablation); KL caps as data-dependent tempering vs contamination-mixture likelihood (§4.4 note); presence-only likelihood without an opportunity model — the deepest structural critique: positive-only selected events confound stage with volume, expressiveness, probe policy, and extractor recall (mitigations today: volume normalization ω, episode clustering rule 13, probe response-category keys; the count/point-process observation model is the M3 redesign candidate); cross-layer evidence reuse (§4.6 note; joint-factor ablation); θ_o/δ identifiability ridge + static-δ vs per-pillar diffusion (§4.5 note; dossier §4.7-5); Beta claim-reliability non-conjugacy (fallback: fixed conservative claim likelihood + `disputed` state if M3 shows spirals — F8); elicited-parameter uncertainty not propagated (M3 adds correlated-perturbation ensembles over marker families, beyond independent ±% sweeps); M3 tuning of caps/thresholds is calibration-to-the-generator in the review's sense — renamed accordingly: M3 tunes *engineering* defaults against the stated generative model (simulation-based-calibration style) and adversarial vignettes remain behavioral unit tests, never human-probability calibration.

**Routed to the spec owner (study design, not this memo's to change) — see ADJUDICATION.md SPEC-LEVEL INPUTS:** freeze-dossier-before-interview / evaluation circularity; single-rater circularity and "gold" naming; interview-vs-dossier delta as "information ceiling" vs within-rater mode discrepancy; N=5–10 validation statistics (coverage, κ, reliability bins); gold smearing vs rater-elicited distributions; covert-probe ethics + governance (DPIA, team power asymmetry); stage-blind safety; removal of the 1–100 point estimate; radical v1 simplification (coarse static ordinal model).

---

## 15. References

Cited directly in this memo; full annotated set in lane 3. All live-verified in lane 3 (2026-07-16) unless marked.

- Angelopoulos & Bates (2021). A Gentle Introduction to Conformal Prediction… arXiv:2107.07511.
- Chow (1970). On Optimum Recognition Error and Reject Tradeoff. *IEEE Trans. IT* 16(1). DOI 10.1109/tit.1970.1054406.
- Cohen (1968). Weighted kappa. *Psych. Bulletin* 70(4). DOI 10.1037/h0026256.
- Corbett & Anderson (1995). Knowledge Tracing. *UMUAI* 4. DOI 10.1007/bf01099821.
- El-Yaniv & Wiener (2010). On the Foundations of Noise-free Selective Classification. *JMLR* 11:1605–1641.
- Epstein (1969). A Scoring System for Probability Forecasts of Ranked Categories. *J. Applied Meteorology* 8(6). DOI 10.1175/1520-0450(1969)008<0985:ASSFPF>2.0.CO;2; Murphy (1971) note, DOI 10.1175/1520-0450(1971)010<0155:anotrp>2.0.co;2.
- Gelman (2006). Prior distributions for variance parameters in hierarchical models. *Bayesian Analysis* 1(3). DOI 10.1214/06-ba117a.
- Gigerenzer & Hoffrage (1995). How to Improve Bayesian Reasoning Without Instruction. *Psych. Review* 102(4). DOI 10.1037/0033-295x.102.4.684.
- Gosling (2018). SHELF: The Sheffield Elicitation Framework. Springer ISOR 261. DOI 10.1007/978-3-319-65052-4_4.
- Grove, Zald, Lebow, Snitz & Nelson (2000). Clinical versus mechanical prediction: a meta-analysis. *Psychological Assessment* 12(1):19–30. DOI 10.1037/1040-3590.12.1.19. VERIFIED (live-checked 2026-07-16; UNVERIFIED flag lifted — verifier fix).
- Hui & Walter (1980). Estimating the Error Rates of Diagnostic Tests. *Biometrics* 36. DOI 10.2307/2530508.
- Jackson (2011). Multi-State Models for Panel Data: msm. *JSS* 38(8). DOI 10.18637/jss.v038.i08.
- Liu, Li, Li, Song & Rehg (2015). Efficient Learning of Continuous-Time Hidden Markov Models… NeurIPS 2015.
- Mathys et al. (2011, 2014). Bayesian foundation for individual learning / Uncertainty and the HGF. *Frontiers in Human Neuroscience*. DOIs 10.3389/fnhum.2011.00039, 10.3389/fnhum.2014.00825.
- Rabiner (1989). A Tutorial on Hidden Markov Models… *Proc. IEEE* 77(2). DOI 10.1109/5.18626.
