Skip to content
Umbra SystemsNetwork

Umbra Systems Network, method

Every check, and the arithmetic under it

27 checks are defined in the analysis layer and run against every domain in the corpus. This page lists all of them. Each has an anchor, and every line of an individual reading links back to the anchor of the check that produced it.

84,023
is what every counted row on this page adds up to
could judge, plus could not judge, plus not applicable, on all 24 counted rows

Corpus generated 2026-08-09, exported 2026-08-09. Question bank v1. Nothing on this page is judged here: criteria are defined once, in the analysis layer, and this site reads its output back.

Where the readings come from

The site does not judge anything. Criteria are defined once, in the analysis layer, which writes one file per domain; this site reads those files back and displays them. If a verdict here disagrees with a verdict there, this page is the one that is wrong.

84,145 lines were read across 11 collection files. 122 of them could not be parsed. Those are excluded from every denominator on the site rather than silently counted as a pass, which leaves 84,023 domains, and 84,023 judgement files were read back to build this page.

Every denominator, line by line

A check does not run on every domain. Some are gated behind a precondition; some do not apply at all. Both cases leave the denominator, and both are counted here rather than folded into a pass. The last column is the arithmetic: it is the same number on every row and it equals the corpus.

CheckFoundExpectedDetector gapCould judgeCould not judgeNot applicableAdds up to
Home page openshard1,42776,517077,9446,079084,023
Home page status codehard75578,330079,0854,938084,023
https enforcedhard5,44770,414075,8618,162084,023
Domain expiry datehard2,84279,675082,5171,506084,023
SPF record counthard86983,100083,96954084,023
Sending IP on a blocklisthard37364,815065,188018,83584,023
Printed address can receive mailhard15971,130071,28912,734084,023
Domain carries MX recordssoft14,78968,087082,8761,147084,023
Last change to the DNS zonesoft13,56028,994042,55441,469084,023
Mobile viewport tagsoft2,56468,825071,38912,634084,023
LocalBusiness structured datasoft37,36334,026071,38912,634084,023
Image alt text, five or moresoft6,48264,907071,38912,634084,023
Image width and heightsoft37,57733,812071,38912,634084,023
Tappable phone numbersoft11,18660,203071,38912,634084,023
Analytics tag on the home pagesoft054,00017,38971,38912,634084,023
Online booking entry pointsoft08,70462,68571,38912,634084,023
Home page HTML sizesoft2071,369071,38912,634084,023
Sitemap named in robots.txtsoft2,87065,418068,28815,735084,023
Sitemap self reported update, three year linesoft3,15446,254049,40834,615084,023
Description on the Google profilesoft26,76857,152083,920103084,023
Cover photo on Googlesoft18,82564,199083,024999084,023
Claim prompt on Googlehard10,24473,676083,920103084,023
Opening hours on Googlesoft7,50676,414083,920103084,023
Unanswered complaints on BBBhard3200032083,703084,023
Image alt text, five or more, broader variantsoftDefined in the analysis layer, not counted on this pass. No figure is printed for it anywhere on the site.
Sitemap self reported update, three year line, variant at 730softDefined in the analysis layer, not counted on this pass. No figure is printed for it anywhere on the site.
Unanswered complaints on BBB, variant at 1softDefined in the analysis layer, not counted on this pass. No figure is printed for it anywhere on the site.

24 of 27 checks produced counts on this pass. Every counted row sums to 84,023: could judge, plus could not judge, plus not applicable. That identity is asserted when this page is built, and a failure stops the build rather than printing a page about denominators whose own denominators do not close.

Conclusions we deliberately do not draw

  1. We did not find it does not mean it is not there. A thing missing from the copy we fetched is recorded as not seen, and not seen is never promoted to absent. Only a source that positively states an absence makes an absence assertable. Across this corpus that is 312,522 readings we hold rather than state.
  2. One record is not one company. The registries carry a practice more than once, under more than one name, at more than one address. Nothing here counts companies; every denominator on this site counts domains, and that is a different thing.
  3. Being refused is not being broken. A run of status codes in this corpus came from our own collection being rate limited, not from anything failing. Those responses are removed rather than counted; a 429 or a 403 tells us about our request, not about whether a patient can open the page.
  4. Home page load time is deleted, not merely unpublished. The readings were distorted by the way we collected them. Twelve hosts were re-fetched by hand and all twelve had read more than three times high; the worst record in the corpus was seventeen minutes, which was our own thread waiting in a queue. The whole axis is gone. It is not in the checks below, it is not behind a caveat, and it will not come back.
  5. A detector gap is our hole, not their absence. Two checks below match against a fingerprint table that does not cover enough vendors. They are marked, they produce no findings, and their rates are never reported as facts about anyone.
  6. We do not score, rank or grade. There is no composite number here, because any weighting that produced one would be our opinion wearing the clothes of a measurement.

Each of these has cost us a published figure at least once. The rule that a rate must reproduce under a stated denominator retired a claim of 95.5% for enforced https, and a storefront rate of 39.00% that had quietly mixed soft readings into a hard count.

What each one reads, and when it returns nothing

A hard check can carry a factual statement. A soft check is context only and never appears as a finding. A gate is a precondition: when it does not pass, the check produces nothing rather than a guess. Verification time is how long it takes you to check the same thing by hand, which is the only useful answer to whether it matters.

One domain at a time

This page is the whole method. If you want to see what it produced for one domain, the lookup on the baseline page takes the domain exactly as it is spelled and opens the reading for it, or says plainly that it has none.

Look up a domain

27
checks defined
24 produced counts on this pass

Alex Zhang; Umbra Systems. Every figure here comes from one ledger with its source file and denominator recorded. A figure with no ledger entry is not printed.