17. The Epistemological Card (EpistemologicalCard)
Why Airline Pilots Use Checklists Instead of Essays
Before taking off in a modern commercial airliner, the captain and first officer do not sit in the cockpit and write an expressive literary essay about how confident they feel in the weather and the engines. They execute a structured pre-flight checklist:
- Fuel quantity and cross-feed valves: checked against flight plan.
- Flap setting and stabilizer trim: verified in green band.
- Engine failure abort speed ($V_1$): computed and called out explicitly.
Why did aviation adopt rigid checklists after the 1935 Boeing Model 299 crash? Because under cognitive load, time pressure, and institutional incentives, even brilliant experts skip uncomfortable checks when left to free-form narration.
An Epistemological Card (EpistemologicalCard in crates/stochology-core/src/card.rs) is the pre-flight checklist of quantitative science and decision-making. Every technical claim in the Stochology Protocol lives as a self-contained YAML document (cards/*.yaml) with contract_version: "1.0".
Crucially, an Epistemological Card is not a passive form where an analyst can type arbitrary numbers to make the parser happy. When EpistemologicalCard::audit() reads a card from disk, it acts as an adversarial mathematical auditor: it recomputes Jensen’s Gap, recomputes the Moulton-Campbell design effect, checks that the four variance-budget shares sum to $1.0$, verifies the CORP-Murphy PAV identity $\mathrm{BS} = \mathrm{REL}_{\mathrm{CORP}} - \mathrm{RES}_{\mathrm{CORP}} + \mathrm{UNC}_0$, checks the cost-loss threshold $p^{\ast} = \frac{C}{\eta L}$ against the recommended act (protect vs. do_not_protect), verifies that the modeler and adversarial verifier are distinct agents, and recomputes the SHA-256 cryptographic digest of the underlying CSV dataset on disk!
Every Epistemological Card begins with top-level routing metadata (contract_version, id, layer, uncertainty) followed by five mandatory sections:
Let us walk through each section and see the exact mathematical invariants it locks in place.
17.1 Section 1: decision_maker_question
decision_maker_question:
who_decides: "Director of Retail Banking Operations (North American Call Center)"
altered_action: "Schedule 18 overflow customer-service agents on high-load business days"
question: "Does the calibrated daily probability of 5-minute call-arrival queue overload exceed the economic protection threshold p* = 0.080?"
- Why it exists (Defeating Type III Error and $\Phi_5$): A model that changes no concrete human or algorithmic action has an Expected Value of Perfect Information ($\mathrm{EVPI}$) of zero.
- What
audit()enforces:who_decidesandaltered_actionmust be non-empty concrete declarations;questionmust be a genuine interrogative sentence ending with'?';- The temporal/spatial resolution of
questionandaltered_actionis cross-checked against the resolution of the dataset under Invariant $\Phi_5$.
17.2 Section 2: epistemological_header
This section captures the physical and causal mechanics across Layers $L_1, L_2,$ and $L_3$:
generating_process: Explicit description of the physical data-generating mechanism in $L_1$ (for instance, inhomogeneous Poisson/negative-binomial customer arrivals or thermodynamic tropical cyclone intensification).nonlinearity(Enforcing Prohibition 2): Reports all seven mandatory numbers ofNonlinearSummary:payoff_function,f_at_mean($f(\mathbb{E}[X])$),mean_of_f($\mathbb{E}[f(X)]$),jensen_gap($\Delta_J$),median,q05,q95, andcrps.- Audit Check: Verifies $|\Delta_J - (\mathbb{E}[f(X)] - f(\mathbb{E}[X]))| \le 10^{-3}$, strict quantile ordering $q_{05} < \text{median} < q_{95}$, and $\mathrm{CRPS} > 0$.
unit_and_margin(Enforcing Invariant $\Phi_2$): Reports:independent_unit(e.g.,"164 calendar business days"or"named Atlantic storm tracks"),nominal_sample_size_n($n$),weighted_cluster_mean_m_tilde($\tilde{m} = \bar{m}(1 + \mathrm{CV}^2)$),threshold_exceedance_icc($\rho_I(p)$),effective_sample_size_n_eff($n_{\mathrm{eff}}(p)$), andunit_margin_of_error.- Audit Check: Recomputes $\frac{n}{1 + (\tilde{m} - 1)\rho_I(p)}$ from the declared fields and blocks the card if
effective_sample_size_n_effdeviates from the Moulton-Campbell formula!
noise_physics(Enforcing Lens 2 & Prohibition 3): Declaresstochastic_regime(e.g., sub-exponential vs. Pareto infinite variance),absorbing_states(ruin or saturation barriers), andbridge_L3_L1_performativity(auditing $\theta_{\mathrm{PS}}, \theta_{\mathrm{PO}},$ and $r_{\mathrm{RRM}} < 1$).causal_ladder(Enforcing Lens 4 & $\Phi_3$): Declarespearl_rung("1-See","2-Act", or"3-Imagine"),identification_strategy(e.g., multi-environment NILE/IRM invariance), anduntestable_assumption(forcing the author to state openly what could break causal identification).
17.3 Section 3: uncertainty_budget_and_authorship
This section enforces honest accounting of where uncertainty comes from and who authored each part of the card:
variance_budget(Decomposition of Total Predictive Uncertainty): Splits predictive variance into four non-negative shares:inputs(measurement and covariate noise in $L_1$),parameters(finite-sample estimation variance in $L_2$),covariance(cross-term dependence across clusters/factors),structural_discrepancy_gp(the share absorbed by the anchored Kennedy-O’Hagan Gaussian Process $\delta(x)$).- Audit Check: The four shares must be non-negative,
structural_discrepancy_gpmust be strictly positive ($> 0$, acknowledging that no parametric model is structurally perfect), and their sum must equal unity: $$\text{inputs} + \text{parameters} + \text{covariance} + \text{structural_discrepancy_gp} = 1.0000$$
dominant_event(Cromwell’s Rule on Tail Risk): Names the single tail event carrying the largest share of expected loss, together withprobability_p,base_rate_floor_epsilon($\varepsilon_{\text{floor}}$), andcost_share, verifying $\varepsilon_{\text{floor}} \le p \le 1 - \varepsilon_{\text{floor}}$.info_gap_robustness(Knightian Safeguard — Chapter 4): Declarescritical_requirement_rc($r_c$),robustness_horizon_alpha_hat($\hat{\alpha} > 0$),opportuneness_horizon_beta_hat($\hat{\beta} > 0$), andglobal_maximin_safeguard(requiring explicit verification of the global Wald floor outside $\mathcal{U}(\hat{\alpha}, \tilde{u})$).field_authorship(Adversarial Cross-Authorship — Filter 4): Declares the identifiers of three distinct roles:null_model(who designed the generative null benchmark),decision_rule(who proposed the predictive model and action rule),adversarial_reviewer(who audited the bridges and tried to break the card).- Audit Check: Enforces
decision_rule != adversarial_reviewerandnull_model != decision_ruleso that no single agent grades their own homework.
17.4 Section 4: data_and_audit_contract
This section binds the YAML card to the physical bytes of the repository and closes the anti-p-hacking contract:
dataset_pathanddataset_sha256: Points to the empirical CSV file indata/*.csvand records its 64-character lowercase hexadecimal SHA-256 hash. At runtime,stochology-clicomputes the FIPS 180-4 SHA-256 digest of the file on disk and cross-checks it against bothdataset_sha256anddata/SHA256SUMS.missingness_mechanismandseed_and_environment: Must declareMCAR,MAR, orMNAR(with Meng/Manski justification) and must includeseed = 2026andSplitMix64.null_modelandpreregistration_hash: Describes the executable null model and provides the 64-character lowercase hexadecimal SHA-256 pre-registration seal.attempt_counter_Kande_process_multiplicity(Prohibition 4): Requires $K \ge 1$ and $E_t / K \ge 1.0$.murphy_corp_decomposition(Lens 5): Reportstotal_score_brier_or_crps($\mathrm{BS}$),miscalibration_REL_MCB($\mathrm{REL}_{\mathrm{CORP}}$),resolution_RES_DSC($\mathrm{RES}_{\mathrm{CORP}}$), andbase_uncertainty_UNC0($\mathrm{UNC}_0$).- Audit Check: Verifies the exact PAV identity closure: $$\bigl|\mathrm{BS} - (\mathrm{REL}_{\mathrm{CORP}} - \mathrm{RES}_{\mathrm{CORP}} + \mathrm{UNC}_0)\bigr| \le 10^{-4}$$
findings(registered,used,unused):- Audit Check: Enforces $\text{registered} = \text{used} + \text{unused}$ with $\text{registered} \ge 1$ and $\text{used} \ge 1$.
17.5 Section 5: decision_rule_and_scope
The final section governs Bridge $L_2 \to L_3$ and Invariant $\Phi_4$:
- Cost-Loss Parameters and Threshold Verification:
Declares
event_probability_p($p$),base_rate_floor_epsilon($\varepsilon_{\text{floor}}$),protection_cost_C($C > 0$),event_loss_L($L > 0$),mitigation_efficacy_eta($\eta \in (0, 1]$),critical_threshold_p_star($p^{\ast}$), anddeclared_act("protect"or"do_not_protect").- Audit Check: Recomputes $\frac{C}{\eta L}$ and verifies:
$$\left|p^{\ast} - \frac{C}{\eta L}\right| \le 10^{-4}$$
and verifies that
declared_actis"protect"if and only if $p > p^{\ast}$ (and"do_not_protect"if and only if $p \le p^{\ast}$)!
- Audit Check: Recomputes $\frac{C}{\eta L}$ and verifies:
$$\left|p^{\ast} - \frac{C}{\eta L}\right| \le 10^{-4}$$
and verifies that
scope_statement,who_pays_for_error, andexit_clause: Enforces explicit operational boundaries, Chouldechova error-bearer attribution, and a numeric circuit-breaker exit rule.
Computational Audit in Rust
In crates/stochology-core/src/card.rs, EpistemologicalCard::from_yaml_str parses the YAML card using a zero-dependency parser written in pure Rust, and EpistemologicalCard::audit() runs all cross-field algebraic checks. You can see all three canonical cards (card_01, card_02, card_03) audited against their real CSV datasets by running:
cargo run --release --bin labs -- --siga
cargo run --release --bin gates
Exercises
- (Calculation — Auditing a Card by Hand) Suppose an analyst submits a YAML card with
protection_cost_C: 15000.0,event_loss_L: 250000.0,mitigation_efficacy_eta: 0.75,critical_threshold_p_star: 0.08000,event_probability_p: 0.06500, anddeclared_act: "protect".- (a) Verify whether
critical_threshold_p_starmatches $\frac{C}{\eta L}$. - (b) Will
EpistemologicalCard::audit()approve or rejectdeclared_act: "protect"? Why?
- (a) Verify whether
- (Calculation — Auditing CORP-Murphy Closure) A card declares
total_score_brier_or_crps: 0.03210,miscalibration_REL_MCB: 0.00578,resolution_RES_DSC: 0.06183, andbase_uncertainty_UNC0: 0.08815(the exact numbers fromcard_01_atlantic_storms_evacuation.yaml). Check whether $\mathrm{REL}_{\mathrm{CORP}} - \mathrm{RES}_{\mathrm{CORP}} + \mathrm{UNC}_0$ equals $\mathrm{BS}$. - (Concept — Adversarial Cross-Authorship) Why does
field_authorshiprequirenull_model,decision_rule, andadversarial_reviewerto be distinct agents? What cognitive and institutional bias on Layer $L_3$ does this rule prevent?
Analytical & Computational Solutions (Click to Expand)
- Auditing a Card by Hand:
- (a) $\frac{C}{\eta L} = \frac{15\text{,}000}{0.75 \times 250\text{,}000} = \frac{15\text{,}000}{187\text{,}500} = 0.08000 = p^{\ast}$ (matches
critical_threshold_p_star). - (b)
EpistemologicalCard::audit()rejects the card because $p = 0.06500 \le p^{\ast} = 0.08000$, which requiresdeclared_act: "do_not_protect", not"protect".
- (a) $\frac{C}{\eta L} = \frac{15\text{,}000}{0.75 \times 250\text{,}000} = \frac{15\text{,}000}{187\text{,}500} = 0.08000 = p^{\ast}$ (matches
- Auditing CORP-Murphy Closure: $$\mathrm{REL}_{\mathrm{CORP}} - \mathrm{RES}_{\mathrm{CORP}} + \mathrm{UNC}_0 = 0.00578 - 0.06183 + 0.08815 = 0.03210 = \mathrm{BS}$$ The identity closes with zero discrepancy ($0.00000 \le 10^{-4}$).
- Adversarial Cross-Authorship:
Requiring
null_model != decision_ruleanddecision_rule != adversarial_reviewerprevents confirmation bias and strategic self-licensing on Layer $L_3$: the agent who built the decision rule has an incentive to design a weak straw-man null model or overlook bridge defects, whereas an independent adversarial verifier is rewarded for breaking flawed claims.
Summary
- The Epistemological Card (
EpistemologicalCard) is the universal unit of communication in the Stochology Protocol (contract_version: "1.0"). - Its five sections (
decision_maker_question,epistemological_header,uncertainty_budget_and_authorship,data_and_audit_contract,decision_rule_and_scope) enforce Prohibitions 1–4 and Invariants $\Phi_1$–$\Phi_5$. EpistemologicalCard::audit()verifies internal algebraic closure across Jensen’s Gap, Moulton-Campbell $n_{\mathrm{eff}}(p)$, variance-budget unity, CORP-Murphy PAV decomposition, findings conservation, SHA-256 integrity, and the cost-loss decision rule $p \gtrless p^{\ast} = \frac{C}{\eta L}$.