1

Almost every number in SEO arrives with no record of how it was produced, and the tool that printed it overwrites the answer next month. 1 keeps the record instead: every figure is a claim carrying its source, its method and its confidence, and nothing is ever edited.

Live GitHub sign-in Public repository No billing, no support Judgment layer still being built

What It Is

1 is a ledger for what is actually true about a site's search presence. Every number in it is a claim, and every claim carries how it was produced: observed, derived, estimated, claimed, forecast, decision, verdict or unknown. Alongside the class it carries its source, the method in plain words, the period it covers and a confidence.

Claims are append-only, and the database enforces that rather than the application asking nicely. Nothing is edited. A correction is written as a new claim that supersedes the old one, and the old one stays readable, so the record shows what was believed on the day a decision was made rather than only what is believed now.

If the ledger cannot support an answer, the answer is Unknown. Unknown is a state with its own tag and its own entry, not a blank cell that a reader fills in with an assumption.

The Problem It Solves

Search volume is a model. Competitor traffic is a model. A session is a model of a visit that consent banners and ad blockers had already edited before anything counted it. Most tools render all of it in the same typeface, at the same apparent confidence, and none of them tell you which is which.

Then they overwrite yesterday with today. Six months after a decision there is no record of the numbers it was made on, so the decision cannot be defended, audited, or learned from. The argument that follows is about whose dashboard is right rather than about what to do.

1 will not print a figure without saying how it knows, and will not delete what it printed last month. That is the whole product. Everything else is a consequence of those two rules.

Where It Gets Used

Four moments where a defensible record is worth more than a chart.

  • Before a migration. Fix a do-nothing baseline first, so the traffic after launch is measured against a forecast rather than against optimism.
  • After a core update. Separate the part that moved from the part that always moves in that month, because a January recovery is usually a season.
  • When the tools disagree. Search Console, analytics and the server logs report three different numbers for the same month, and somebody has to put one of them in a board deck.
  • When a client asks whether it worked. The honest answer needs a counterfactual and a prediction made in advance, both of which have to exist before the work starts.

How It Works

Ground truth is the first five stages and they run in order. The loop below plays one month for one site, from the sources it is allowed to trust through to the claims that land on the ledger, then starts again.

Fifteen stages in all. The later ones stay locked until the earlier ones exist, because judgment built on unexamined numbers is opinion with a chart attached.

  1. Instrument

    Declare what can actually be observed. Every source is classed on the way in, so a third-party estimate is allowed into the record and never allowed to decide anything on its own.

  2. Capture

    Record the world with a timestamp and never overwrite it. Imports today for Search Console, analytics, server logs, crawls and CRM deals, each one storing the caveats a reader needs alongside the rows.

  3. Reconcile

    Put the observers side by side and show the gap instead of hiding it. The known causes are named, from consent and ad blockers through to redirect hops counted twice, and the output is a band with a confidence rather than a single tidy number.

  4. Inventory

    Count what exists with no judgment attached: pages, templates, indexability, the queries in the set and the jobs behind them.

  5. Baseline

    Fit the do-nothing forecast from trend and seasonality, with a band that widens as it goes out. Every later test is scored against this, so nobody gets to claim the seasonal peak as a win.

  6. After ground truth

    Judgment, then the record

    Diagnose, Explain, Question, Frame, Forecast, Prioritize and Decide come next, each sentence citing a claim or labelled as inference. Then Test pre-registers the hypothesis and its inverse before it runs, Prove scores the result against what was predicted, and Subtract returns one number and one removal a week.

Three decisions worth naming. Append-only is enforced by a database trigger, not by convention, so no code path can quietly rewrite history. Imports are parsed in the browser, so client exports are never handed to an intermediate service. And the stages are gated rather than suggested, because the reason most audits are wrong is that somebody started at the recommendations.

Who It Is For

People who already distrust their own dashboards. The ones who know a January spike is a season, who would rather hold a band with a confidence attached than a point estimate with none, and who have had to defend a number in a room where somebody else had a different one.

It is deliberately unfriendly to the opposite instinct. There is no authority score, no traffic light, and no single figure that makes a decision feel already made.

  • Not a rank tracker. It stores what happened and how it is known, not a daily position.
  • Not a content optimiser. Nothing in it grades a page against a competitor's word count.
  • Not an answer machine. When the record cannot support a claim it returns Unknown, on purpose.

Status And Access

Live and open, with the ground-truth layer shipped and the judgment layer still being built.

Status and access

Status
Live since September 2026. Ground truth is finished, judgment is in progress.
Address
1.jakelabate.com
Sign-in
GitHub. No billing and no support, the same as the rest of these.
What works today
Instrument, Capture, Reconcile, Inventory and Baseline, plus the ledger itself and the claim graph behind every figure.
What does not yet
The judgment stages, the shared experiment registry, and nightly capture of results pages and AI answers.
Imports
Search Console, GA4, server logs, crawl exports and CRM deal exports, parsed in the browser.
Demo
A seeded fictional workspace with sixteen months of data, one click from signing in.
Can you use it today
Yes. Sign in, seed the demo, and read the ledger before pointing it at anything real.

The Stack

A static front end over hosted Postgres, with the append-only rule living in the database.

Stack

Front end
React, Vite and TypeScript, built to static files.
Hosting
GitHub Pages, on the custom domain 1.jakelabate.com.
Backend
Supabase Postgres with row-level security, in a dedicated schema.
Append-only
Enforced by a trigger on the claims table, so updates and deletes are refused at the database.
Parsing
Import files are read in the browser, so exports never reach an intermediate service.
Repository
JakeLabate/1, public.

Nobody Argues With A Number They Can Trace

Establishing what is true is the cheap part. Deciding what to do about it, and sequencing that against everything else competing for the same quarter, is the work. That is what an engagement is for.