Trying to be wrong.
Anything can produce a confident answer. What makes an answer worth having is everything that was done to break it first. This page is the list of things Essarion Science does to its own conclusions before it shows them to you.
§ 01Your claim is the hypothesis, not the answer
The question you ask is parsed into a structured hypothesis and carried through the run as H1 — the alternative under test. It is never treated as a conclusion to support. Every downstream stage is written against that contract, which is why a leading prompt does not produce a compliant report.
§ 02Preregistration
Before any data is touched, the run writes its analysis plan and hashes it. From that moment the plan is fixed: analyses that follow it are confirmatory, and anything the run decides to look at afterwards is reported as exploratory. Both are allowed. Only one gets to carry a confirmatory claim.
This is the line between honest research and p-hacking, and the reason it works is that the plan is committed before the data can influence it.
§ 03The posterior
Belief in H1 is tracked as a Bayesian posterior, updated from the live evidence stream as the run proceeds. Each update is streamed as a biomed.verdict.shift event, so the moments the run changed its mind are visible rather than reconstructed.
The posterior is also a check on the prose. Before an artifact is released, the narrative's confidence language is compared against the posterior's extremity; if the words claim more than the number supports, the artifact is demoted to a brief rather than published as a paper.
§ 04Adversarial collaboration
Kahneman's 2003 proposal was that when experts disagree, they should agree on a shared protocol, run both positions through it, and document where they converge and where they do not. Essarion Science operationalises this as a sensitivity analysis over the prior.
Three posteriors start from different places — an Advocate at P(H1) = 0.8, a Neutral at 0.5, a Skeptic at 0.2 — and the same Bayes-factor updates from the live evidence are applied to all three. What matters is where they end up:
| Spread | Verdict | Reading |
|---|---|---|
| |Δ| < 0.15 | robust_to_prior | Every reasonable starting position lands in the same place. The evidence did the work. |
| 0.15 ≤ |Δ| < 0.30 | evidence_constrained | The data narrowed the disagreement without settling it. |
| |Δ| ≥ 0.30 | prior_dominated | The verdict is being driven by what you walked in believing, not by the data. |
Disagreement that survives shared methods is irreducible; disagreement that vanishes under them was the priors doing the work. Either way it is reported as a structural feature of the result, not hidden.
§ 05Multiverse analysis
Any pooled estimate embeds analytical choices — which studies to include, how to handle outliers, which weighting scheme, which heterogeneity estimator. A specification curve re-runs the pool under every reasonable combination of those choices and reports the distribution of results across the whole grid.
A finding is robust only if it survives the multiverse, not merely the one specification an analyst happened to pick. This runs on deep_dive and exhaustive; it is off in scan, where there is rarely enough pooled literature for the curve to mean anything.
§ 06Mutation testing the analysis
Multiverse analysis audits the meta-analytic pool. Three further passes audit the branches it does not reach, each by re-running the analysis under deliberate variations of a silent choice:
| Pass | What it varies |
|---|---|
| primary stats | The primary-data battery re-runs under eight reasonable variants per series pair — estimator choice, log transform, outlier trimming, multiple-comparison correction. |
| sensitivity | The E-value branch, which bounds how strong unmeasured confounding would have to be to explain the effect away. Effect-measure conversions change the magnitude, so the conversion itself is varied. |
| causal | The adjustment set, dropping one confounder at a time. A conclusion that survives leaving a variable out was not leaning on it; one that does not, depends on that confounder being measured correctly. |
§ 07Triangulation and replication
The same pattern appearing across independent sources is a different kind of evidence than the same number repeated from one dataset. Triangulation scores convergence and divergence between the pooled literature effect and correlations computed from independent primary data.
On exhaustive runs, a replication check builds a graph of which findings replicate which — direct replications, conceptual ones, and failures to replicate — so the citation pile becomes a structure rather than a list.
§ 08How effect sizes are extracted
Effect sizes are extracted from papers by the model, then pooled numerically with fixed- and random-effects models, with heterogeneity (Q, I²) and an Egger-style funnel-asymmetry check for publication bias.
Extraction is role-tagged: every numeric value is classified as an effect, dose, sample size, baseline, demographic, outcome level, or other, and only values tagged as effects are pooled. A scraped dose of "474.1 mg/day" cannot become an effect size.
§ 09The evidence gates
A run may only emit a paper if the evidence clears three thresholds, all of which rise with depth:
| Gate | scan | deep_dive | exhaustive |
|---|---|---|---|
| Pooled effect sizes | 2 | 3 | 5 |
| Independent source packets | 1 | 2 | 3 |
| Distinct first-author affiliations | 1 | 2 | 3 |
The third gate is the interesting one: five effect sizes from one lab is one lab's opinion measured five times. Runs that fall short report a brief and say why.
§ 10Choosing what to look at next
Search queries are not chosen by relevance to the hypothesis, which is greedy and biased toward confirmation. They are chosen by expected information gain — which candidate query is expected to reduce uncertainty about H1 the most once whatever it returns has been seen. Evidence that could refute is worth as much as evidence that could confirm, and often more.
§ 11The falsification ledger
Every completed run files one row per hypothesis it tested, keyed by a fingerprint of the normalised H1. Later runs query the ledger by that fingerprint and surface prior verdicts, so a hypothesis tested once keeps a paper trail across runs.
§ 12Living manuscripts
A shipped paper can be registered as a hypothesis watch. On a schedule — weekly by default — the watch pulls papers published since its last check, extracts effect sizes from them, and updates a running posterior seeded at the original verdict. Preprints come first, because they appear before peer review, which is where a verdict is most likely to move.
| Endpoint | Purpose |
|---|---|
| POST /api/v1/watches | Register a watch on a shipped hypothesis. |
| GET /api/v1/watches | List watches. |
| POST /api/v1/watches/{watch_id}/recheck | Force a recheck now. |
| GET /api/v1/watches/{watch_id}/diff | What changed since the last check — and whether it moved the verdict. |
| DELETE /api/v1/watches/{watch_id} | Stop watching. |