Tabkeel
Methodology

How a finding becomes a finding

Tabkeel does not grade your site. It emits findings, and a finding only exists when it can be proven with a number, a literal excerpt or two links. This page is the rulebook, public on purpose: you can redo any calculation.

We do not report suspicion. We only emit findings with evidence you can click. If you think we got it wrong, the link is right there.

The verifiability ladder

Every output of a site checker fits a rung on this ladder. The whole product operates on rungs 1 and 2, never 4 or 5: "your UX is confusing" and "your copy is generic" do not exist here, because they are neither provable nor contestable.

RungType of outputContestable?
1Fact with dual sourcing, or verifiable presence/absenceno
2Measurement against a public standardonly by contesting the standard
3Prediction with a published track recordonly by checking the record
4Judgment by our own rubricalways
5Free opiniontrivially

Operating rule: if we cannot show the number, the literal excerpt or the two links, the finding does not ship.

The non-negotiable rules

  1. The LLM locates, it never judges. Where we use a language model, it extracts the claim-evidence pair and drafts the fix. The verdict is always deterministic code.
  2. If AI vanished, the product would survive. A dead link is an HTTP status. A price mismatch is string comparison. A missing state is selector presence. Most verifiers run with no model at all.
  3. Underreport, on purpose. Confidence below threshold never becomes a finding: it becomes a line in the inconclusive section, separate and labeled. Better 4 solid findings than 19 debatable ones.
  4. Never a public verdict on a third party. The report goes to whoever pasted the URL. We do not publish pages judging anyone else’s site.
  5. Severity comes from consequence, not from us. Fixed table below. There is no "at our discretion" severity.

Severity: fixed table

SeverityCriterionExamples
blockerMoney or dataprice differing from what is charged; charging with no refund policy; a form that silently drops submissions
highBlocks conversion or creates disputesbroken promise on a sales page; "cancel anytime" denied by the terms; no 404 handling
mediumErodes readability and trusta claim the docs do not confirm; a site unreadable to AI; an incomplete privacy policy
lowHygienechangelog not reflected; naming drift; duplicate titles

The number is a count, not a grade

The main result of an exam is a count: 3 broken promises, 2 diverging prices, 4 AI readability problems. A count is verifiable; a 0-100 score is an opinion with varnish. When we publish the percentile against the corpus (your number compared to the median of AI-built SaaS), the normalization formula will be this one, public:

score = 100 - min(100, blockers*15 + high*7 + medium*3 + low*1)

You can redo it by hand. That is the point.

What we collect from each exam

Every exam feeds an anonymous aggregate that will become the basis of a published report and of the future percentile. The anonymous record keeps:

  • the examined domain as a keyed hash / HMAC (we can count repeat runs, but without our secret key the hash cannot be turned back into the domain — not by us in the aggregate, not by anyone who obtains the database);
  • counts: how many pages, how many findings of each type and severity;
  • segmenters: whether the site has a pricing page, legal page and an active checkout, and which stack and payment provider fingerprints appear;
  • when you run the AI mirror: whether AI recognizes and cites the product, its position and how many competitors it names, plus a broad category label (never the domain);
  • no page content, no readable URL, nobody’s identity.

With an account, the full report is saved in your history: yours, under row level security. Details in the privacy policy.

Known limits, in writing

  • We read the served HTML. We do not render JavaScript yet: if your content only exists with JS, that is itself a finding, because AI crawlers do not render either.
  • We do not test forms or logged-in flows. A new verifier only ships when it can hold a near-zero false-positive rate.
  • We underreport. If the exam says 4 findings, there may be more; there are not fewer.
  • When we are wrong anyway, false-positive feedback turns the bad verifier off until it is fixed. The confirmation rate gets published here once the sample is honest.