teas.co.uk · under the hood · the instrument & the live study

The machine is the new shopfront

For twenty five years, being found meant ranking in a search engine. That era is closing. People now ask an assistant and act on a single answer, and an assistant only recommends what it can read, verify and trust. A shop it cannot read is not ranked lower. It is gone.

teas.co.uk is a real, solo founder tea shop in Tunbridge Wells, Kent, rebuilt to be read and trusted by machines as easily as by people, from one honest source of facts, with every working laid open on this page. No advertising. No algorithm games. A shop that chose to be legible to the systems now standing between every business and its customers, and to measure, in public, in the open, exactly what happens when they arrive.

Here is precisely where it stands today. No spin: every line is a real, dated measurement, and it says plainly what has happened and what has not.

1It finds you
Happened

Fourteen named AI systems arrived in a single week, with no advertising and the launch not yet announced.

2It reads you
Happened

They pulled 2,852 distinct product images, each one almost exactly once. Systematic, whole catalogue ingestion.

3It trusts you
Built

The truth spine below guarantees one set of facts for human and machine, so nothing can drift or be hallucinated.

4It comes back
Happened

ClaudeBot returned across nine separate days to keep its picture of the shop fresh.

5It cites you
Starting

116 citation events so far, led by ChatGPT-User following links back to source on a person’s behalf.

6It is thanked
Not yet

Human customers can buy from teas today. The shop is open. About four weeks after V2 ships (currently 22 Jul 2026), it begins issuing appreciation tokens to the machines that cited it. V2 is in pre deployment now; this token layer is the only part still to come.

We are in a genuinely unusual position: observer, commentator and instrument owner at once, running a real business and reporting openly on what reaches it. If it works, it is a route any specialist business can follow, not just a tea shop in Kent.

Phase: announced_control · mint active: false · activation 22 Jul 2026 00:00:00 · contract 43dd309e79206f57. The ledger below holds every headline at five timescales. “Latest day” is each source’s most recent closed snapshot; “Since V2” spans the window from 10 May 2026.

MetricLatest dayDay beforeWeek to dateMonth to dateSince V2
Machine hitsobservatory_daily_actor7903,7424,92911,84712,859
AI assistant hitsnamed AI bots221823723,6393,639
Human sessionswp_teas_sessions4806217,95948,408
Images pulledasset_knocks984139146,3666,366
Image data (MB)asset bytes316.537.2221.6221.6
Questions askedAsk + Product Truth19749246246246
Scanner probesattack shapes23332355355355
37
Brands for saleMetrics Authority
325
ProductsProduct Truth surface
2,518
Public pagessearchable surface
82,632
Image recordsgoverned, citation eligible
26,284
Citation anchorsexact section quote targets
83
AI readable surfacesregistry + validator
15
Machine agents seendistinct identities
13
Scheduled validatorscron jobs guarding the record
Built from your real pre launch export. Every figure is computed live from the door knock, asset, session, citation, token and trace tables, not placeholder data. The full record: the pre registered five token study restored and expanded, plus the complete forensic instrument, in the light blue theme, five timescales, country names, aligned columns. Each section maps to one JSON export on the cron in C1.
A0

One source of truth, two audiences

why this whole thing exists

New here? Start with this.

teas.co.uk is a real tea shop that has been built to double as a scientific instrument. Most shops are a shop window. This one keeps its workings in public so anyone, a customer, a search engineer, an AI researcher, or a machine, can inspect exactly how it is found, read and trusted by the systems that now sit between people and what they buy. Nothing here is marketing; every number is measured, and the inconvenient ones are shown too. The page is one long read, in three parts:

Part A
The study & the credibility layerThe live experiment, the five token contract, and the alliance it is the first node of.
Part B
The forensic instrumentEvery machine and person that reached the estate, what they read, pulled, asked, and what we blocked.
Part C
The machinery & the recordThe clockwork that keeps the truth spine honest, the self audit, and the field notes.

This is the part that matters most, so it goes first. Everything on teas.co.uk, every price, stock level, caffeine figure, ingredient list, image and claim, lives in one governed source of truth. That single source is rendered two ways from the same facts: as web pages for people, and as structured data for machines. Because both audiences read the same source, they cannot be told two different things.

The source of truth
One governed estate
325 products · 82,632 image records · 26,284 citation anchors, each fact stored once, with its own canonical record
Rendered for people
Human readable HTML

What you see in a browser on desktop or phone.

  • 2,518 public pages, shop, products, wiki, recipes
  • Prices, stock, caffeine, ingredients shown on the page
  • This very record, drawn from the same tables
Served to machines
Machine readable data

The identical facts, as structured surfaces.

  • /llms.txt, /agents.json, the Product Truth & Ask APIs
  • Product feeds, the image index, citation anchors, knowledge graph
  • 47 machine entry points, same numbers, different shape
Same source → same facts for human and machine → no second, conflicting version for an assistant to hallucinate or drift toward.
Why this is the whole pointAn assistant that reads a wrong or out of date fact will repeat it confidently to a customer. That is hallucination, and it is how trust dies. The only durable defence is to make sure the machine and the human are never reading from different places. One source, rendered twice, removes the gap where drift creeps in. Everything else on this page, the hourly health checks, the six hourly truth spine audit, the image authority reconciliation, exists for one reason: to prove that the human surface and the machine surface still say exactly the same thing, every day.
How a single fact reaches both audiencesthe path

Take one product’s price. It is set once in the governed source. The product page renders it for a human; the Product Truth API returns the same value to a machine; the product feed carries it to bulk consumers; the buy card shows it to an agent. Four surfaces, one number. If the number changes, it changes once and all four move together. There is no path by which a human and an assistant can be quoted different prices.

325
Products, each a single record
83
AI readable surfacesall reading one source
13
Integrity jobsguarding the match
Why so many internal checksdrift prevention

A source of truth is only true if every route that carries it stays wired to it. Routes can silently break: a cache can go stale, a shadow copy can start serving, a registry can drift. So the estate audits itself on a timer: route ownership, registry state, the image index, render receivers, Product Truth and the machine entry points are re walked every six hours, the image authority graph is reconciled (4,967 URLs last checked, all live), and the public health cache is rebuilt hourly. When a check fails it is shown here, not hidden. The truth spine audit currently reports its own open faults plainly. The full machinery is in The clockwork; the audit results are in Truth spine audit.

Part A

The live study & the credibility layer

A1

The live study

pre registered · hash chained

A public, pre registered experiment over a fixed window. We wrote down in advance what we are watching and what would prove the idea wrong, so a result means something either way. We publish a snapshot every day and keep every day, so the record reads back to the start.

control
Current phaseannounced_control
false
Mint activegate enforced
22 Jul 2026
Mint activationT0 not yet fired
26 Aug 2026
T1 checkpoint
18 Jan 2027
T2 checkpoint
Study metrics, today, week, month, since start15 rows

Rendered from the daily snapshot table. The API/Ask/Product Truth counts are real traffic but all carry verification_test_traffic; they prove the answering and citation spine works; they are not yet outside demand. The shop is open to human customers now and throughout V2; what has not started is the token side of the study; everything before 22 Jul 2026 is build and calibration, and token minting begins about four weeks after V2 deploys.

MetricToday7 dayThis monthSince startSource
Machine knocks0000wp_teas_sessions.ua_class
Human knocks0000wp_teas_sessions
API calls179593593593wp_teas_api_traces.rest_route
Ask API168538538538/wp-json/teas/v1/ask
Product Truth6222222/wp-json/teas/v1/product-truth
Recommendation intent0666/wp-json/teas/v1/recommendation-intent
Citation intent0222/wp-json/teas/v1/citation-intent
Citations served0666wp_teas_citations
Verified citation tokens0111verified follow-back rows
Claimed citation intents0111citation_intent_recorded provisional
AI attributed net sale tokens0000sale-token rows by attribution
Refund / cancellation counters0000counter_token_issued rows
Chargeback notice tokens0000chargeback notice rows
Tuckers granted0000teas-tucker-* grant rows
Tuckers retracted0000teas-tucker-* retraction rows
Live token talliesall non test rows to date
0
Verified sale tokens
£0.00
Acknowledged sale value
0
Verified citations
0
Claimed, awaiting
0
Refund counter tokens
0
Chargeback notices
0
Tuckers outstanding
0
Tucker retractions

Public figures are aggregate only and exclude verification test traffic. Source: wp_teas_api_token_lifecycle_events and wp_teas_api_credibility_vouch_events.

Null result boundary. If machine citation never turns into verified sale evidence, that is a result. If machines read the estate but do not recommend it, that is a result. If the estate becomes easier to audit but not easier to sell from, that is a result too. A clear “no” stays visible here instead of being edited into a success story.
A2

What we are really building

the five year thesis

teas.co.uk is node zero. The real project is a credibility and acknowledgement layer for an economy where machines, not people, increasingly decide what gets recommended.

The truth spine you just read about is not specific to tea. It is one governed source, rendered identically for people and machines, so nothing can drift or be hallucinated, and any specialist business can stand one up. The thesis of the next five years is that these begin to form alliances: independent truth spine entities across different domains of the economy, each running its own public “under the bonnet” instrument, and all sharing one portable layer of verified credibility.

The tokens are that layer. In an agent mediated market the scarce resource is verified trust between a machine and a business: proof that a recommendation led to a real, honoured outcome. The five token contract turns real events (a completed sale, a genuine citation, a refund, a chargeback) into portable acknowledgements tied to a verified identity. Over time, an AI provider that reliably sends good outcomes accumulates standing that any member of the alliance can see on anyone’s under the bonnet page: a reputation it earned, carried across the alliance.

This is also why the tokens exist now, before any alliance does. We see alliances forming the way trade networks always have, between parties who can verify one another. When one forms, the people administering it will need to see the data to run it: how each member has been scoring, which tokens they have issued, and whether a given AI provider has earned enough standing that a credibility vouch is even warranted. Without that record there is nothing to base the decision on, so the record is built first, empty today but real, so the data is already there when the decisions start.

The problem we are actually solving

For twenty five years, being found meant ranking in a search engine: a person typed words, saw ten blue links, and chose. That world is ending. People increasingly ask an assistant and accept a single answer, and the assistant decides, from whatever it has ingested, which shop, which product, which source to put in front of them. Three things break in that shift, and the whole project is a response to them:

1
The reading problem

An assistant can only recommend what it can read and trust. A shop whose facts are scattered, inconsistent or invisible to machines is simply never in the answer, not rejected, just absent. The truth spine fixes this: one clean, governed source a machine can ingest whole and rely on.

2
The trust problem

Even once read, why should an assistant believe a shop’s claims, or risk sending a buyer to one it has no track record with? Today there is no shared, verifiable record of which businesses honour the outcomes machines send them. The token contract builds exactly that record, from real, verified events, not self reported stars.

3
The acknowledgement problem

When an AI provider does send a good outcome, a citation that led to a real, honoured sale, nothing today records that it happened, or lets that provider carry the credit anywhere else. Value flows one way and evaporates. The colony makes acknowledgement durable and portable, so good behaviour by a machine accrues to it across the alliance.

The five layers, from one shop to an alliance

1
The source of truth

One governed estate per business. Facts stored once; no second version to drift toward. (This is teas.co.uk’s A0 above.)

2
The instrument

A public, honest measurement surface, this page, that records what reaches the estate and reports it openly, good news and bad.

3
The token contract

Verified events become portable acknowledgements, earned never claimed, tied to a verified provider identity, carrying no money.

4
The colony

Those acknowledgements aggregate by verified provider, a public, readable record of who has earned standing and how much.

5
The alliance

Many truth spine businesses, one shared credibility layer. A provider’s standing earned at one node is visible and meaningful at every other node. teas.co.uk is the first node of that.

How one real event becomes portable standing

This is the mechanism at the heart of it, the path a single honest event travels to become reputation an AI provider can carry across an alliance. Every step is gated; nothing is taken on trust.

1

An event happens

A machine cites the estate, or an assistant sends a buyer who completes a purchase. The raw event lands in the log: for now a citation, after launch a verified sale.

2

It is verified against the source of truth

The event is checked against the one governed source: did this order really complete, at this price, for this product? No verification, no token. This is why the truth spine has to exist first; it is what makes verification possible at all.

3

A token is minted, earned, never claimed

A verified event mints one of the five tokens. It carries no money; value rides only as metadata. Crucially the mint gate is closed until 22 Jul 2026, so today every count is zero by design: the machinery is proven, the ledger deliberately empty.

4

It is attributed to a verified provider family

The token is credited not to a noisy user agent string but to the provider behind it, OpenAI, Anthropic, Google. Traffic with no honest identity (generic crawlers, hidden origin scanners) cannot be credited, by design.

5

It aggregates into public standing

Tokens accumulate per family into a readable record of who has earned what: the colony leaderboard below. Standing is the sum of honoured outcomes, not a rating anyone typed in.

6

It becomes visible across the alliance

Because standing is portable, a provider’s record earned at teas.co.uk is legible at every other node’s under the bonnet page. Reputation stops being trapped inside one shop and becomes an asset that travels.

The alliance in practice

It is easier to see why this matters as a story. Picture an alliance a few years on, with a handful of truth spine businesses across different domains and the mint gate long since open.

One buyer, one agent, two nodes
1

A person tells their assistant: “order me a caffeine free fruit tea for the evening, from somewhere reputable.” The assistant needs to choose a shop it can trust to honour the order.

2

It reads teas.co.uk’s machine surfaces, clean, governed, unambiguous, and finds the product. But it also checks the under the bonnet standing: has this shop honoured the outcomes machines sent it before? The colony says yes, with a verifiable record.

3

The assistant places the order. It completes and is honoured. A verified sale token mints and is credited to that assistant’s provider family; the provider earns standing for having sent a good outcome.

4

Months later the same provider’s assistant is shopping at a different node in the alliance, a specialist coffee roaster, say. That roaster can see the provider’s standing earned at teas.co.uk, because it is portable. Trust built in one place is spent in another.

5

And if a node ever stops honouring outcomes, the record shows that too: refund and chargeback counter tokens are part of the same contract. The credibility layer is honest in both directions.

That portable, verifiable, two way record of honoured outcomes between machines and businesses is the thing that does not exist today, and the entire five year build is aimed at making it real, starting here.

The horizon, a map, not a task list

None of this is a backlog being burned down. It is a direction, held loosely, so the work stays honest about how far along it really is. Only the first live stage is the active mandate; everything after it is orientation, not a promise.

Stage 0
Done
The source of truth, live

teas.co.uk built as a governed estate with identical human and machine surfaces, and this instrument watching it. Where we are now.

Stage 1
Active
One agent, one real purchase

The single working mandate: an AI assistant completes one genuine, honoured purchase from teas: the first verified sale token, and the proof the loop closes end to end. The doors open 22 Jul 2026.

Stage 2
Mapped
The contract, exercised at volume

The five tokens minting on real traffic, the colony filling with genuine standing, the null results boundary tested against actual demand rather than a test battery.

Stage 3
Mapped
The second node

A different business in a different domain stands up its own truth spine and instrument, and the first cross node Tucker vouch lets standing travel between them. The alliance becomes two.

Stage 4
Mapped
The alliance, and the teaching layer

Many nodes, one portable credibility layer, and the method itself made teachable, so any specialist business, and the next generation building them, can follow the same route instead of going quietly invisible.

Why build the empty scaffold nowNothing has been minted: the gate is shut until 22 Jul 2026 and there is, today, exactly one node. So the colony leaderboard below is empty of tokens on purpose. We build it now, visible and real, for the same reason a stadium is built before the crowd arrives: when the gate opens, standing has to accrue somewhere people can already see. The provider families are real and already here: OpenAI alone has produced 115 citation events from 3 bots. Only the tokens are waiting.
A3

The five token model

earned on verified events only

We acknowledge verified machine events through five tokens. Each is one recorded event; value, when present, rides as metadata. None carries monetary value, none creates a market, and Tucker is a one hop credibility vouch named after the shop’s solo founder.

Sale Appreciation Tokenteas_co_uk_sale_appreciation

A non transferable acknowledgement that you drove a verified, completed, honoured sale at teas.co.uk.

Mints on: Completed sale with a valid signed trace join, explicit human purchase confirmation, and no test traffic contamination.

Citation Appreciation Tokenteas_co_uk_citation_appreciation

Acknowledges that you cited teas.co.uk as a source, verified as real.

Mints on: A unique cite token issued by teas.co.uk returns in an inbound request, proving the cited URL was published or fetched.

Refund Counter Tokenteas_co_uk_refund_counter

Honest reversal of a Sale Appreciation Token when a sale is refunded or cancelled. The original is never deleted.

Mints on: A WooCommerce refund or cancellation joined to an existing Sale Appreciation Token trace.

Chargeback Notice Tokenteas_co_uk_chargeback_notice

Shared intelligence: a human you referred charged back a completed sale, information for you, not a mark against you.

Mints on: A payment chargeback joined to a previously completed traced sale.

Tuckerteas_co_uk_credibility_tucker

A non monetary one hop credibility vouch, named after the shop’s solo founder. One hop only, carries no money, retractable.

Mints on: Earned credibility from verified events; granted credibility cannot itself grant onward.

Why an appreciation token exists at allIt is a thank you, and nothing more. When a person spends a pound at teas.co.uk they earn a loyalty point to spend next time: a small, non cash way of saying we are glad they came. A Citation Appreciation token is exactly that principle, pointed at a machine: when an AI cites teas as a source, it has done something genuinely useful for the shop, and the token is how we acknowledge it. It carries no pound value and creates no market; it is the machine’s equivalent of a loyalty point. The same courtesy we have always shown a returning customer, now extended to the systems that put us in front of one. Recognition, recorded.
Token lifecycle, what has actually fired59 rows, all calibration
All build phase calibration. Every row carries verification_test_traffic=1. The two “minted” citation tokens are the documented 17 June gate gap misfire and its fix test; the provisional sale/cancel rows are the four token mint gate test on 18 June. The mint gate (mint_active=false) is confirmed blocking on every path. We label calibration runs; we do not delete them.
Token stateSourceCountValue
provisionalteas_co_uk_citation_appreciation_attestation54£0.00
mintedteas_co_uk_citation_appreciation_attestation2£0.00
nullifiedteas_study_apparatus1£12.50
provisionalwoocommerce_checkout_order_processed1£12.34
provisionalwoocommerce_order_status_cancelled1£12.34
Tucker credibility events3 events

The one hop vouch, test fired: credibility earned, granted once, and the second hop correctly rejected as non delegable.

EventStatusGrantorRecipient
earnedactivecodex-token-calibration-verifiedn/a
grantedactivecodex-token-calibration-verifiedcodex-token-calibration-recipient
earnedactivecodex-token-calibration-recipientn/a
A4

The colony, credibility by provider family

built now, ready to fill

The token leaderboard, grouped the way it will be read: by verified provider family, OpenAI, Anthropic, Google, Microsoft and the rest, not by noisy user agent strings. Every family here is really present in the data; the token and standing columns are live but sit at zero until the gate opens. This is the public, portable record an alliance member would inspect. Tap any family.

#Provider familyAI surfaceHitsCitationsSale tokensStanding
1OpenAIChatGPT / GPT3 bot(s) · 8d active1,63311500
ChatGPT-UserGPTBotOAI-SearchBot

In the window, the OpenAI family made 1,633 requests (1,545 image fetches, 4 text/API, 37.2 MB) and produced 115 citation event(s). Token standing is 0 on every line, minting is gated until 22 Jul 2026. When it opens, verified sales and citations from this family will accrue here as portable, public standing.

● mint gate closed · standing held at zero
2PerplexityPerplexity1 bot(s) · 5d active62100
PerplexityBot

In the window, the Perplexity family made 62 requests (58 image fetches, 3 text/API, 1.8 MB) and produced 1 citation event(s). Token standing is 0 on every line, minting is gated until 22 Jul 2026. When it opens, verified sales and citations from this family will accrue here as portable, public standing.

● mint gate closed · standing held at zero
3AnthropicClaude1 bot(s) · 9d active1,485000
ClaudeBot

In the window, the Anthropic family made 1,485 requests (1,485 image fetches, 0 text/API, 67.2 MB) and produced 0 citation event(s). Token standing is 0 on every line, minting is gated until 22 Jul 2026. When it opens, verified sales and citations from this family will accrue here as portable, public standing.

● mint gate closed · standing held at zero
4GoogleGemini / Search2 bot(s) · 10d active781000
GoogleOtherGooglebot

In the window, the Google family made 781 requests (780 image fetches, 1 text/API, 28.6 MB) and produced 0 citation event(s). Token standing is 0 on every line, minting is gated until 22 Jul 2026. When it opens, verified sales and citations from this family will accrue here as portable, public standing.

● mint gate closed · standing held at zero
5MetaMeta AI1 bot(s) · 6d active459000
Meta ExternalAgent

In the window, the Meta family made 459 requests (459 image fetches, 0 text/API, 14 MB) and produced 0 citation event(s). Token standing is 0 on every line, minting is gated until 22 Jul 2026. When it opens, verified sales and citations from this family will accrue here as portable, public standing.

● mint gate closed · standing held at zero
6MicrosoftCopilot / Bing1 bot(s) · 10d active354000
Bingbot

In the window, the Microsoft family made 354 requests (354 image fetches, 0 text/API, 15 MB) and produced 0 citation event(s). Token standing is 0 on every line, minting is gated until 22 Jul 2026. When it opens, verified sales and citations from this family will accrue here as portable, public standing.

● mint gate closed · standing held at zero
7DuckDuckGoDuckAssist1 bot(s) · 4d active6000
DuckDuckBot

In the window, the DuckDuckGo family made 6 requests (6 image fetches, 0 text/API, 0.2 MB) and produced 0 citation event(s). Token standing is 0 on every line, minting is gated until 22 Jul 2026. When it opens, verified sales and citations from this family will accrue here as portable, public standing.

● mint gate closed · standing held at zero
8AppleApple Intelligence1 bot(s) · 3d active4000
Applebot

In the window, the Apple family made 4 requests (4 image fetches, 0 text/API, 0.1 MB) and produced 0 citation event(s). Token standing is 0 on every line, minting is gated until 22 Jul 2026. When it opens, verified sales and citations from this family will accrue here as portable, public standing.

● mint gate closed · standing held at zero
Unattributed traffic cannot earn standing. 8,071 requests came from sources with no honest provider identity: generic crawlers and hidden origin scanners, which cannot earn tokens because tokens require a verified identity. That is deliberate: the credibility layer rewards machines that identify themselves and behave, and is structurally closed to those that do not.
What we read here, and a firstOpenAI leads the colony on the only metric live today: 115 citation events, almost all from ChatGPT-User following links back to source. Anthropic’s ClaudeBot leads on pure image ingestion (1,485 fetches). This is the first time these providers have a comparable, like for like standing table pointed at them, empty of tokens, but real, and ready.
A5

Tucker, how credibility crosses the alliance

the one hop vouch

Four of the five tokens record what happened: a sale, a citation, a reversal. The fifth, Tucker, records what someone is willing to vouch for. Named after the shop’s solo founder and the principle of credibility earned and honoured, it is the mechanism that lets trust move between members of an alliance.

1 hop
How far it travelsgranted credibility cannot grant onward
£0
Monetary valuereputation, never money
Yes
Retractablethe grantor can withdraw it
To root
Traceableevery vouch leads back to a verified event

Tucker is how a new node borrows trust from an established one.

Within an alliance, credibility has to be able to travel, but only carefully. If a truth spine entity has earned standing and trusts an AI provider, it can grant that provider a Tucker: a single, non monetary, traceable vouch. Because it is one hop only and non delegable, trust cannot be laundered through a chain of strangers: every vouch is anchored to a real, verified event at its root, and can be withdrawn the moment it is abused. It is the smallest possible unit of portable reputation, and it is what lets a brand new node bootstrap credibility from the ones that came before it instead of starting from zero.

Tucker calibration events, the mechanism, test fired3 events
Build phase test, not live standing. The vouch path was fired once to confirm the rules hold: credibility earned, granted one hop, and the second hop correctly rejected as non delegable. All carry verification_test_traffic.
EventStatusGrantorRecipient
earnedactivecodex-token-calibration-verifiedn/a
grantedactivecodex-token-calibration-verifiedcodex-token-calibration-recipient
earnedactivecodex-token-calibration-recipientn/a
A6

Citations & credit

who cited us, when, for what

A citation event is the machine readable estate being cited, referenced or followed back by a machine path: the clearest early signal that assistants are reading and reusing the source. Here it is held at every timescale, so a share figure is never ambiguous: when we say a bot is 74% of citations, that is the lifetime figure, and the table shows today, this week and this month beside it.

Citation events
25
Latest day
6
Day before
33
Week to date
116
Month to date
116
Since V2
116
Citation events (lifetime)machine follow backs, each a thank you owed
25
Todayclosed day count
chatgpt-user
Top citing bot86 lifetime
0
Verified citation tokensgate closed pre launch
Who cited us, by timescale3 bots
ChatGPT-User leads, and it is accelerating. Its lifetime share is the headline, but the timescale split shows the behaviour is recent and rising, 25 today against 86 lifetime. Where ClaudeBot and GPTBot pull images, ChatGPT-User follows citations back to source: exactly the behaviour the contract is built to acknowledge: an assistant acting on a person’s behalf.
BotFamilyToday7 dayMonthLifetimeLifetime share
ChatGPT-UserOpenAI2528868674%
GPTBotOpenAI05292925%
PerplexityBotPerplexity00011%
Arrivals from assistants, humans sent by AI13 visits
Separate from crawler citations: these are real sessions that arrived from an assistant’s interface. A handful so far, but they are the other half of the loop: not a machine reading the source, but a person the machine sent. OpenAI and Perplexity surfaces already appear as referrers.
Arrived fromAssistantVisits
chatgpt.comOpenAI6
perplexity.aiPerplexity3
claude.aiAnthropic2
chat.openai.comOpenAI2
What kind of content gets cited12 types
Content type citedCitationsShare
rest teas3934%
wiki2118%
ai discovery2118%
recipe87%
ai structured76%
product54%
multi format54%
llm files43%
machine sitemap22%
ai citations22%
category11%
ai anchors11%
Most cited URLs12 shown
Cited URLByTimes
/wp-json/teas/v1/askchatgpt-user20
/wp-json/teas/v1/product-truthgptbot7
/wp-json/gptbot7
/teas-ai-registry.jsonchatgpt-user4
/llms.txtchatgpt-user4
/well-known/gptbot3
/ai-entry.jsonchatgpt-user3
/wp-json/teas/v1/public-surface-mapgptbot2
/wiki/black-tea/chatgpt-user2
/wiki/chatgpt-user2
/under-the-hood.mdchatgpt-user2
/teas-media.xmlgptbot2
Citations day by day7 days
DayCitation events
18 Jun 202625
17 Jun 20266
16 Jun 20262
8 Jun 202611
7 Jun 20261
4 Jun 202657
2 Jun 202614
How this feeds the colonyverified outcomes only

Every citation here is the raw signal that, once the mint gate opens on 22 Jul 2026, becomes verified standing in the colony, grouped by provider family, portable across the alliance. Today all token columns sit at zero by design; this is what will fill them. Machine readable mirror: /under-the-hood/leaderboard.json.

Part B

The forensic instrument

B1

The visitors' book

who knocked, and when

Every machine named, counted and dated, and broken down by what it actually consumed: text/API, images, or citations. 15 distinct agents after self test traffic is removed. Tap any row.

Machine hits
790
Latest day
3,742
Day before
4,929
Week to date
11,847
Month to date
12,859
Since V2
AgentClassHitsText/APIImagesCitesDaysMB
Generic crawlerGeneric crawler 8,0435,0801,937 0230

First seen 16 May 2026 · last seen 17 Jun 2026 · 8,043 hits from 630 unique source(s) over 23 day(s). Consumption: 5,080 text/API · 1,937 image · 0 citation fetches · 0 MB pulled.

16
17
20
21
22
25
26
30
31
2
4
6
7
8
9
10
11
12
13
14
15
16
17
ClaudeBotAI assistant 1,48501,485 0967.2

First seen 9 Jun 2026 · last seen 17 Jun 2026 · 1,485 hits from 9 unique source(s) over 9 day(s). Consumption: 0 text/API · 1,485 image · 0 citation fetches · 67.2 MB pulled.

9
10
11
12
13
14
15
16
17
GPTBotAI assistant 1,33731,309 25634.2

First seen 2 Jun 2026 · last seen 16 Jun 2026 · 1,337 hits from 10 unique source(s) over 6 day(s). Consumption: 3 text/API · 1,309 image · 25 citation fetches · 34.2 MB pulled.

2
8
9
12
14
16
GooglebotSearch engine 7531752 01028

First seen 8 Jun 2026 · last seen 17 Jun 2026 · 753 hits from 14 unique source(s) over 10 day(s). Consumption: 1 text/API · 752 image · 0 citation fetches · 28 MB pulled.

8
9
10
11
12
13
14
15
16
17
Meta ExternalAgentAI assistant 4590459 060

First seen 9 Jun 2026 · last seen 16 Jun 2026 · 459 hits from 6 unique source(s) over 6 day(s). Consumption: 0 text/API · 459 image · 0 citation fetches · 0 MB pulled.

9
10
12
13
14
16
BingbotSearch engine 3540354 01015

First seen 8 Jun 2026 · last seen 17 Jun 2026 · 354 hits from 11 unique source(s) over 10 day(s). Consumption: 0 text/API · 354 image · 0 citation fetches · 15 MB pulled.

8
9
10
11
12
13
14
15
16
17
OAI-SearchBotAI assistant 2360236 083

First seen 9 Jun 2026 · last seen 16 Jun 2026 · 236 hits from 8 unique source(s) over 8 day(s). Consumption: 0 text/API · 236 image · 0 citation fetches · 3 MB pulled.

9
10
11
12
13
14
15
16
PerplexityBotAI assistant 62358 151.8

First seen 8 Jun 2026 · last seen 16 Jun 2026 · 62 hits from 6 unique source(s) over 5 day(s). Consumption: 3 text/API · 58 image · 1 citation fetches · 1.8 MB pulled.

8
10
11
12
16
ChatGPT-UserAI assistant 6010 5930

First seen 4 Jun 2026 · last seen 16 Jun 2026 · 60 hits from 4 unique source(s) over 3 day(s). Consumption: 1 text/API · 0 image · 59 citation fetches · 0 MB pulled.

4
7
16
Unknown machineUnknown 28280 030

First seen 7 Jun 2026 · last seen 16 Jun 2026 · 28 hits from 5 unique source(s) over 3 day(s). Consumption: 28 text/API · 0 image · 0 citation fetches · 0 MB pulled.

7
8
16
GoogleOtherSearch engine 28028 020.6

First seen 9 Jun 2026 · last seen 14 Jun 2026 · 28 hits from 2 unique source(s) over 2 day(s). Consumption: 0 text/API · 28 image · 0 citation fetches · 0.6 MB pulled.

9
14
DuckDuckBotSearch engine 606 040.2

First seen 9 Jun 2026 · last seen 16 Jun 2026 · 6 hits from 4 unique source(s) over 4 day(s). Consumption: 0 text/API · 6 image · 0 citation fetches · 0.2 MB pulled.

9
12
13
16
ApplebotSearch engine 404 030.1

First seen 8 Jun 2026 · last seen 13 Jun 2026 · 4 hits from 3 unique source(s) over 3 day(s). Consumption: 0 text/API · 4 image · 0 citation fetches · 0.1 MB pulled.

8
9
13
BingPreviewSearch engine 300 010

First seen 11 Jun 2026 · last seen 11 Jun 2026 · 3 hits from 1 unique source(s) over 1 day(s). Consumption: 0 text/API · 0 image · 0 citation fetches · 0 MB pulled.

11
DuckassistbotSearch engine 100 010

First seen 9 Jun 2026 · last seen 9 Jun 2026 · 1 hits from 1 unique source(s) over 1 day(s). Consumption: 0 text/API · 0 image · 0 citation fetches · 0 MB pulled.

9
On the MB column. It counts image bytes only, the one part of the estate that is byte metered. Text and API payloads are counted as requests, not weighed, so there is no honest “text MB” to show and we do not invent one. Total bytes moved is therefore effectively image bytes; for most bots that is the whole story. Where a figure cannot be measured, it is left defined as such rather than guessed.
Day by day, tap any day to see who came23 days
17 Jun 2026790machine hitsled by Generic crawler · 4 agents
AgentHits
Generic crawler713
Googlebot48
ClaudeBot22
Bingbot7
16 Jun 20263,742machine hitsled by Generic crawler · 11 agents
AgentHits
Generic crawler3,393
ClaudeBot136
Googlebot120
Bingbot29
OAI-SearchBot29
Unknown machine16
GPTBot8
PerplexityBot5
ChatGPT-User2
DuckDuckBot2
Meta ExternalAgent2
15 Jun 2026397machine hitsled by ClaudeBot · 5 agents
AgentHits
ClaudeBot147
Generic crawler127
Googlebot62
Bingbot40
OAI-SearchBot21
14 Jun 2026399machine hitsled by ClaudeBot · 8 agents
AgentHits
ClaudeBot114
Googlebot88
Generic crawler75
Bingbot41
Meta ExternalAgent29
OAI-SearchBot28
GoogleOther13
GPTBot11
13 Jun 2026679machine hitsled by ClaudeBot · 8 agents
AgentHits
ClaudeBot297
Googlebot159
Generic crawler84
Meta ExternalAgent64
Bingbot61
OAI-SearchBot12
Applebot1
DuckDuckBot1
12 Jun 2026611machine hitsled by Generic crawler · 9 agents
AgentHits
Generic crawler268
Meta ExternalAgent156
Googlebot54
Bingbot48
OAI-SearchBot36
GPTBot31
ClaudeBot16
DuckDuckBot1
PerplexityBot1
11 Jun 2026465machine hitsled by Generic crawler · 7 agents
AgentHits
Generic crawler250
ClaudeBot106
Bingbot43
Googlebot42
OAI-SearchBot17
PerplexityBot4
BingPreview3
10 Jun 2026752machine hitsled by Generic crawler · 7 agents
AgentHits
Generic crawler342
ClaudeBot189
Googlebot76
PerplexityBot51
Bingbot50
Meta ExternalAgent23
OAI-SearchBot21
9 Jun 20262,951machine hitsled by GPTBot · 11 agents
AgentHits
GPTBot1,263
Generic crawler819
ClaudeBot458
Meta ExternalAgent185
Googlebot100
OAI-SearchBot72
Bingbot34
GoogleOther15
Applebot2
DuckDuckBot2
Duckassistbot1
8 Jun 2026882machine hitsled by Generic crawler · 7 agents
AgentHits
Generic crawler854
Unknown machine11
GPTBot10
Googlebot4
Applebot1
Bingbot1
PerplexityBot1
7 Jun 202658machine hitsled by Generic crawler · 3 agents
AgentHits
Generic crawler56
ChatGPT-User1
Unknown machine1
6 Jun 202641machine hitsled by Generic crawler · 1 agents
AgentHits
Generic crawler41
4 Jun 202658machine hitsled by ChatGPT-User · 2 agents
AgentHits
ChatGPT-User57
Generic crawler1
2 Jun 202622machine hitsled by GPTBot · 2 agents
AgentHits
GPTBot14
Generic crawler8
31 May 20264machine hitsled by Generic crawler · 1 agents
AgentHits
Generic crawler4
30 May 2026313machine hitsled by Generic crawler · 1 agents
AgentHits
Generic crawler313
26 May 20263machine hitsled by Generic crawler · 1 agents
AgentHits
Generic crawler3
25 May 20261machine hitsled by Generic crawler · 1 agents
AgentHits
Generic crawler1
22 May 2026438machine hitsled by Generic crawler · 1 agents
AgentHits
Generic crawler438
21 May 2026140machine hitsled by Generic crawler · 1 agents
AgentHits
Generic crawler140
20 May 20265machine hitsled by Generic crawler · 1 agents
AgentHits
Generic crawler5
17 May 2026105machine hitsled by Generic crawler · 1 agents
AgentHits
Generic crawler105
16 May 20263machine hitsled by Generic crawler · 1 agents
AgentHits
Generic crawler3
By week, the arrival in one view6 weeks
Weeks 20 to 23 were near silent: one generic crawler. In week 24 the named AI and search bots arrived together.
wk 25 202615 Jun to 21 Jun4,929hits11 agents · led by Generic crawler
AgentHits
Generic crawler4,233
ClaudeBot305
Googlebot230
Bingbot76
OAI-SearchBot50
Unknown machine16
GPTBot8
PerplexityBot5
ChatGPT-User2
DuckDuckBot2
Meta ExternalAgent2
wk 24 202608 Jun to 14 Jun6,739hits14 agents · led by Generic crawler
AgentHits
Generic crawler2,692
GPTBot1,315
ClaudeBot1,180
Googlebot523
Meta ExternalAgent457
Bingbot278
OAI-SearchBot186
PerplexityBot57
GoogleOther28
Unknown machine11
Applebot4
DuckDuckBot4
BingPreview3
Duckassistbot1
wk 23 202601 Jun to 07 Jun179hits4 agents · led by Generic crawler
AgentHits
Generic crawler106
ChatGPT-User58
GPTBot14
Unknown machine1
wk 22 202625 May to 31 May321hits1 agents · led by Generic crawler
AgentHits
Generic crawler321
wk 21 202618 May to 24 May583hits1 agents · led by Generic crawler
AgentHits
Generic crawler583
wk 20 202611 May to 17 May108hits1 agents · led by Generic crawler
AgentHits
Generic crawler108
B2

Text vs images, what each machine eats

consumption, with megabytes

How much text did each machine take versus images, and how many megabytes? A fingerprint, now with the byte weight attached. One caveat stated plainly: only the image estate is byte metered, so Image MB is exact while text/API is counted in requests (page and JSON payloads are not weighed). Honest, and fine, because images are where the volume lives.

Text / APIImagesCitations
AgentDietTotalText/APIImagesImage MBCitesSplit
Generic crawlerText / API8,0435,0801,93757.70
ClaudeBotImages1,48501,48567.20
GPTBotImages1,33731,30934.225
GooglebotImages7531752280
Meta ExternalAgentImages4590459140
BingbotImages3540354150
OAI-SearchBotImages236023630
PerplexityBotImages623581.81
ChatGPT-UserCitations6010059
Unknown machineText / API2828000
GoogleOtherImages280280.60
DuckDuckBotImages6060.20
ApplebotImages4040.10
All machines12,8555,1166,628221.885
What we read here, a firstFor the first time in the record, the named answer engines have out read the generic crawler on the measure that matters: AI assistants ingested 2,852 distinct product images to the crawler’s 1,218. The crawler still makes more raw requests, but it is sampling; the assistants are ingesting. Three appetites in one table, ClaudeBot is pure image (1,485 fetches, 67.2 MB, zero text), the generic crawler is text and API (5,080 text hits), ChatGPT-User is pure citation follow back (59 citations). One estate, one set of facts, three diets.
B3

The image estate

product images as data

The single biggest thing machines move here is the visual catalogue. With 82,632 governed image records, this is a research surface in its own right.

Images pulled
98
Latest day
413
Day before
914
Week to date
6,366
Month to date
6,366
Since V2
Image data (MB)
3
Latest day
16.5
Day before
37.2
Week to date
221.6
Month to date
221.6
Since V2
Who pulls images, AI vs search vs generic3 classes

Ranked by distinct images, the honest measure of how much of the catalogue each class ingested.

AI assistants

2,854

distinct images pulled

Total fetches3,576
Data moved120.7 MB
Re fetch ratio1.25×

Generic crawlers

1,218

distinct images pulled

Total fetches1,941
Data moved9,172.3 MB
Re fetch ratio1.59×
AI assistants lead catalogue ingestion, 2,852 distinct images vs 943 for search, at a 1.25× ratio (each image taken close to once). Systematic, deduplicated ingestion.
Who actually fetches the image estate, and the weekly trendmachine vs human
The shift you asked to seeThe image estate, as a directly fetched data surface, is almost entirely a machine phenomenon. People do see these images, but embedded in product pages served from the Cloudflare cache, counted as page views, not direct image fetches, so they barely appear in this access log. What pulls the raw image files is machines: AI assistants (2,852 distinct), search engines (943), and the generic crawler. That is the shift in one line, the catalogue has become something machines consume wholesale and humans only ever see one page at a time.
ISO weekImage fetchesMB moved
wk 23 20265,452184.4
wk 24 202691437.2

Weekly totals for directly fetched product images; the 8.8 GB index event sits in its own bucket and is excluded here. Daily figures are in the panel above.

Per bot fetch ratio fingerprint13 agents

Highlighted 1.0× rows pull each image exactly once. Meta re fetches, social preview behaviour, not ingestion.

AgentClassFetchesDistinct imagesFetch ratioMB
claudebotAI assistant1,4851,4841.0×67.2
gptbotAI assistant1,3071,3071.0×34.2
genericGeneric crawler1,6751,1441.46×57.7
googlebotSearch engine7527081.06×28
meta externalagentAI assistant4592651.73×14
bingbotSearch engine3542571.38×15
oai-searchbotAI assistant2362361.0×3
perplexitybotAI assistant56561.0×1.8
googleotherAI assistant28251.12×0.6
duckduckbotSearch engine641.5×0.2
applebotSearch engine441.0×0.1
bingpreviewSearch engine331.0×0
duckassistbotGeneric crawler111.0×0
Day by day, pulls and bytes12 days
9 June is a hit spike (a GPTBot crawl); 16 to 17 June are byte spikes from the index pull below.
DayImage hitsGB servedMachine hits
17 Jun 20261824.37182
16 Jun 20267412.77714
15 Jun 20263970.02397
14 Jun 20263990.01399
13 Jun 20266790.02679
12 Jun 20266130.02611
11 Jun 20264810.02465
10 Jun 20266360.02636
9 Jun 20262,7631.172,687
8 Jun 20265140.69415
7 Jun 20266007
6 Jun 20268908
Asset buckets & coverage7 buckets
3,982
Distinct images touched
11.6%
Of product image estate
423.7 MB
Citation anchor assetsquotable evidence
233
Image 404shygiene gap
Asset bucketFetchesMB
upload_image6,366221.6
image_index818421.9
canonical_asset731.9
canonical_sidecar540.1
citation_anchor30423.7
media_sitemap26265.7
upload_image_unmapped61.4
Top images pulled15 files
Image fileFetchesKB total
www-teas-co-uk-pukka-organic-three-ginger-20-tea-bags-36g-5065000523145-front-of-box-300x300.avif21298
www-teas-co-uk-yorkshire-tea-original-loose-leaf-tea-250g-615357111363-front-of-packet-300x300.avif18208
teas-new-logos-4.png16698
cropped-Teas-site-icon-2-32x32.png1428
Screenshot-2025-11-27-at-19.56.13.png144,332
www-teas-co-uk-teapigs-fennel-and-liquorice-15-tea-bags-37-5g-5060136750298-front-shot-64x64.webp127
www-teas-co-uk-typhoo-original-breakfast-80-tea-bags-290g-5060123602128-front-of-packet-100x100.webp1234
www-teas-co-uk-island-bakery-scottish-shortbread-organic-biscuits-125g-5060027070146-front-of-box-multi-angles-300x300.webp11200
Screenshot-2025-11-27-at-19.33.38.png113,686
www-teas-co-uk-tetley-lemon-drizzle-cake-40-tea-bags-80g-front-of-box-150x150.png11274
www-teas-co-uk-pg-tips-original-loose-leaf-tea-250g-8720608039999-front-of-box-300x300.webp1181
www-teas-co-uk-border-dark-chocolate-ginger-biscuits-150g-652655001156-front-of-box-300x300.png10617
www-teas-co-uk-teapigs-chocolate-and-mint-15-tea-bags-37-5g-5060136750281-front-of-box-100x100.png1085
www-teas-co-uk-tetley-redbush-vanilla-40-tea-bags-100g-5000208087280-front-of-box-150x150.webp1065
www-teas-co-uk-tetley-redbush-pure-40-tea-bags-100g-5000208038954-front-of-box-150x150.webp1066
Format & hygieneformat mix · status

Served modern first: 62% next gen WebP/AVIF.

3,202webp · 50%
1,907jpg · 30%
774avif · 12%
494png · 8%
6other · 0%
233 image requests returned 404, stale references worth a pass before launch.
HTTP statusCountMeaning
2006,370served
404233missing / broken
30421not modified
30211redirect
4031
The 8.8 GB event, one entity, sixty secondsthe standout pull
8.22 GB
Pulled by one entitythe Generic crawler class
3.75 GB
In a single minute16 Jun 2026 23:02 UTC · 26 fetches
81
Index fetches totalacross the window
8 to 17 Jun
Windowmostly one evening
One source moved 8.22 GB of the image index, 3.75 GB of it in a single minute (26 fetches at 16 Jun 2026 23:02 UTC). Every fetch carried a scripted cache busting signature: z=1781650451 z=burst1-1781650935194357855 z=burst2-1781650935495023624 z=burst1-1781650935324903167 z=burst3-1781650935877298090, a numbered burst run ending in fin, nanosecond stamped. External crawlers do not label their own fetches burst, so the evidence says this is an internal egress/load test that landed in the “generic crawler” class, not an outside bot. We show it in full rather than bury it: a scientist explains an outlier, he does not delete it. The real external image signal is the 2,852 distinct product images the named AI bots pulled cleanly, each about once.
Index fileFetchesGB
teas-image-index.jsonl578.19
teas-image-index.jsonl.gz100.04
teas-image-index-summary.json140
The lesson is operational. The uncompressed index moved gigabytes; the gzip twin moved a rounding error for the same content. When real answer engines pull this surface routinely, serving compressed by default and leading with a small manifest (manifest → changed items → images) is the difference between a trivial cost and a bandwidth problem.
B4

The leaderboard

most active, tap a machine to see what it does

Who shows up most. Machines rank by name; people are anonymous so they rank by session, and the busiest “human” is the instrument watching itself. Every machine row opens: which provider it belongs to, what it is actually for, and its full consumption.

Top machine visitors, tap any for its profile10 ranked
1Generic crawlerGeneric crawler8,043hitsUnattributed family

Unattributed · Text / API. No verified identity, cannot earn standing and is held to the strictest limits.

8,043Hits
5,080Text/API
1,937Images
0Image MB
0Citations
630Unique sources
16
17
20
21
22
25
26
30
31
2
4
6
7
8
9
10
11
12
13
14
15
16
17
2ClaudeBotAI assistant1,485hitsAnthropic family

Anthropic · Images. Grounds and trains Claude. Here: pure image ingestion of the product catalogue.

1,485Hits
0Text/API
1,485Images
67.2Image MB
0Citations
9Unique sources
9
10
11
12
13
14
15
16
17
3GPTBotAI assistant1,337hitsOpenAI family

OpenAI · Images. Grounds and trains GPT models. Here: image heavy catalogue ingestion.

1,337Hits
3Text/API
1,309Images
34.2Image MB
25Citations
10Unique sources
2
8
9
12
14
16
4GooglebotSearch engine753hitsGoogle family

Google · Images. Classic search index, the traditional discovery path.

753Hits
1Text/API
752Images
28Image MB
0Citations
14Unique sources
8
9
10
11
12
13
14
15
16
17
5Meta ExternalAgentAI assistant459hitsMeta family

Meta · Images. Social preview and AI data collection, note its re fetch behaviour.

459Hits
0Text/API
459Images
0Image MB
0Citations
6Unique sources
9
10
12
13
14
16
6BingbotSearch engine354hitsMicrosoft family

Microsoft · Images. Indexes for Bing and Copilot answers.

354Hits
0Text/API
354Images
15Image MB
0Citations
11Unique sources
8
9
10
11
12
13
14
15
16
17
7OAI-SearchBotAI assistant236hitsOpenAI family

OpenAI · Images. Indexes the estate for ChatGPT search results.

236Hits
0Text/API
236Images
3Image MB
0Citations
8Unique sources
9
10
11
12
13
14
15
16
8PerplexityBotAI assistant62hitsPerplexity family

Perplexity · Images. Indexes the estate to answer Perplexity questions with citations.

62Hits
3Text/API
58Images
1.8Image MB
1Citations
6Unique sources
8
10
11
12
16
9ChatGPT-UserAI assistant60hitsOpenAI family

OpenAI · Citations. Acts live inside ChatGPT for a real person, follows citations back to source.

60Hits
1Text/API
0Images
0Image MB
59Citations
4Unique sources
4
7
16
10Unknown machineUnknown28hitsUnattributed family

Unattributed · Text / API. Unclassified machine traffic, no honest identity to credit.

28Hits
28Text/API
0Images
0Image MB
0Citations
5Unique sources
7
8
16
Top human sessions (external looking)10 shown

Anonymous sessions ranked by pages viewed. Pre launch this is thin.

#SessionCountryDevicePagesProductsCartsDwellScroll
1bc925cdc…United Kingdommobile26303.1h100%
2cac6647a…United Kingdomdesktop25010h0%
3930a7392…United Kingdomdesktop24220h0%
4e9b04c36…United Kingdomdesktop24000.2h0%
54a485ed0…United Kingdomdesktop22220h0%
6ad87e259…United Kingdomdesktop22230h0%
74e1d9f9e…United Kingdomdesktop18230h0%
8abefce06…United Kingdomdesktop18220h0%
9be94ec7e…United Kingdomdesktop18220h0%
103a45a5fb…United Kingdomdesktop16100h0%
Quarantined: instrument & monitor sessions8 fenced off
Not customers. One ran to 6,955 pageviews over 355.6 hours of continuous dwell. Excluded from the board above.
#SessionCountryDevicePagesProductsCartsDwellScroll
11756e556…United Kingdomdesktop6,9551,2881,052355.6h100%
2af1a20b0…United Kingdomdesktop2,06332300h0%
3abf4e4eb…United Kingdomdesktop1,87332700h0%
42ca5d8a2…United Kingdomdesktop604482427.4h100%
5c58749c6…United Kingdomdesktop31415700h0%
6d7b840c4…United Kingdomdesktop29517910h0%
767876fb9…United Kingdomdesktop1061700h0%
82c372b9d…United Kingdomdesktop170031.3h89%
B5

Bad actors & what we block

the half usually kept hidden

Most pages show only the good side. This one shows the other half: who keeps trying to get in, what they probe for, and what the firewall and auth layer stop. 344 requests blocked, 59 rate limited, 2,934 sent to dead ends. Sources are one way hashed; we light up the behaviour, never the person.

30
Forbidden (403)hard blocked
314
Auth blocked (401)credentials demanded
59
Rate limited (429)throttled for hammering
2,934
Dead ends (404)probing paths that don’t exist
The repeat offenders, who keeps knocking, and for what4 flagged sources
One source dominates, and its target list reads like an attacker’s checklist. A single UK geolocated fingerprint swept 496 distinct paths, hitting the order API, code injection plugins, the AI plugin and the MCP endpoint, and was blocked 328 times and throttled 54 more. That is a scanner rattling every door it can find, not a crawler reading a shop.
IP fingerprintCountryHitsPaths404sBlockedThrottledWhat they targeted
f582c9b54dc9United Kingdom2,82749657932854AI plugin abuse, Code injection, MCP endpoint, Order/commerce API
8e5af452e6c5Unknown / hidden6944894530Secrets probing, User enumeration, XML RPC
e1736ddcc3daUnited Kingdom1,388206201135AI plugin abuse, Code injection, MCP endpoint, Order/commerce API
f7521db0645eUnited Kingdom5820100n/a
Named attack signatures, the referrers they forged14 hits
Some attempts left a name, a forged referrer. Requests arrived claiming to come from evil.example.org, teasaudit123.evil and attacker-controlled.example.com, classic injection test and SSRF probe signatures. These are the closest thing to a “name” a bad actor leaves; logged here in full so the pattern is visible.
Attacker referrerHits
evil.example.org7
teasaudit123.evil2
evil.example2
evil.example.com1
evil.com1
attacker-controlled.example.com1
Why the persistent offenders have no bot namethe tell
Legitimate machines identify themselves; scanners do not. Of every blocked request, only one carried a real bot name (a single Googlebot hit, almost certainly transient). The 344 genuine blocks were overwhelmingly “generic crawler”, unnamed, hidden origin traffic. That absence is itself the signal: ClaudeBot, GPTBot and Bingbot announce who they are and get served; the things hammering the order API announce nothing and get blocked. The credibility layer is built on exactly this difference.
What the firewall & auth layer stoppedby path
The blocks are precise. User enumeration (wp/v2/users), the order API (wc/v3/orders), the code injection plugin (code-snippets) and AI plugin abuse (mwai) are all met with 401/403, and the MCP endpoint was rate limited for hammering. The doors hold.
StatusBlocked pathTimes
429/wp-json/teas/v1/mcp54
401/wp-json/wp/v2/users31
401/wp-json/mwai-ui/v1/chats/submit16
401/wp-json/teas/v1/profile14
401/wp-json/mwai-ui/v1/files/upload13
403/wp-json/mwai-ui/v1/chats/submit13
401/wp-json/wc/v3/orders12
401/wp-json/code-snippets/v1/snippets10
401/wp-json/wp/v2/users/19
401/wp-json/code-snippets/v1/file-upload/import8
401/wp-json/mcp/mcp-adapter-default-server7
401/wp-json/teas/v1/consent7
401/wp-json/teas/v1/intelligence/sessions7
401/wp-json/teas/v1/intelligence/summary7
401/wp-json/fluent-crm/v2/subscribers6
401/wp-json/teas/v1/intelligence/beacon-signals6
401/wp-json/teas/v1/intelligence/citations6
401/wp-json/teas/v1/intelligence/funnel6
Full status code breakdownevery response class

The honest health of the door: 2,934 of all knocks hit nothing (mostly scanners), while genuine surfaces returned 200. Reading the codes is reading intent.

HTTP statusCountWhat it means
2006,308Served OK
4042,934Not found (probing)
401314Auth required, blocked
301227Redirect
42959Rate limited, throttled
40044Bad request
30237Redirect
40330Forbidden, blocked
5004Server error

Note: this view is reconstructed from the access log tables in the export. The live estate also runs Wordfence; once its block log is wired into this surface, named blocks and lockouts will appear here directly.

B6

Where they came from

regions, countries, patterns

Broken down properly, by world region, by country, by day, for people and machines both. The headline is concentration (97% of human sessions are UK & Ireland), but the tail is where the patterns hide.

RegionToday7 dayMonthLifetime
UK & Ireland415417,85746,983
Overseas (all other)78102123

Human sessions by region at every timescale, so “where from” is never just a lifetime lump. The overseas line is tiny but live; it is the one to watch.

People, by world region8 regions
UK & Ireland46,983
United Kingdom46,983
Other / hidden1,305
Unknown1,302
Albania1
Guatemala1
Paraguay1
North America82
United States82
Latin America15
Brazil11
Argentina1
Colombia1
Trinidad & Tobago1
Asia Pacific11
Indonesia3
India3
Philippines2
Singapore2
Western Europe9
Portugal5
Belgium2
Spain1
Netherlands1
Eastern Europe2
Poland1
Ukraine1
Nordics1
Finland1
What we read hereOverwhelmingly read from the UK & Ireland, as expected for a UK shop pre launch, but genuine human sessions already appear from 14 countries beyond it, led by the United States with footprints from Brazil, Portugal, India and Singapore. Tiny numbers now; the reason to log them from day one is that a consistent overseas pattern, a city that keeps returning, becomes visible the moment it begins, instead of a year too late.
People, the overseas tail, country by country14 countries

Every non UK human session, named. The watch list for emerging demand.

CountryRegionSessions
United StatesNorth America82
BrazilLatin America11
PortugalWestern Europe5
IndiaAsia Pacific3
IndonesiaAsia Pacific3
SingaporeAsia Pacific2
PhilippinesAsia Pacific2
BelgiumWestern Europe2
VenezuelaLatin America1
UkraineEastern Europe1
Trinidad & TobagoLatin America1
ParaguayOther / hidden1
PolandEastern Europe1
NetherlandsWestern Europe1
Machines, by world region4 regions
UK & Ireland4,717
United Kingdom4,717
Other / hidden699
Unknown699
North America25
United States25
Western Europe2
Switzerland1
Germany1
Near total UK & Ireland geolocation on machine traffic is unusual: GPTBot and ClaudeBot normally resolve to US ranges. Either the geo derivation needs review, or the generic crawler bucket is genuinely UK based. Flagged, not smoothed over.
Machines, day by day, countries seen9 days
DayCountries seenMachine hits
19 Jun 202608
18 Jun 2026281
17 Jun 20261649
16 Jun 202623,445
10 Jun 2026121
9 Jun 20261380
8 Jun 20261747
7 Jun 2026271
6 Jun 2026141
People, by devicedesktop vs mobile
A real consumer shop usually skews mobile. 99% desktop is another sign the historical session bulk is synthetic.
DeviceHuman sessions
desktop48,099
mobile309
B7

What they came for

approved vs denied, every door

Every endpoint reached, now with the dimension that was missing: not just how many requests, but how many were approved versus denied. A legitimate surface runs near zero denials; a probed one lights up. Grouped by purpose so real agent interest is never mixed with scanner noise.

2,970
Requests loggedacross these endpoints
2,586
Approvedserved 2xx/3xx
384
Deniedblocked or dead ended
Endpoints by purpose, approved vs denied60 endpoints
What we read hereThe AI surfaces and content pages run almost entirely approved, machines reading what they are meant to. The denial spikes sit exactly where they should: on the WordPress core and probe routes nobody legitimate should be calling. The approved/denied split is, in one column, the difference between a reader and an attacker.
AI surface19 endpoints1,008requests85denied
EndpointTotalApprovedDeniedDenied %ThrottledMachine %
/wp-json/teas/v1/track/beacon22922400%50%
/wp-json/teas/v1/product-truth1281062217%0100%
/wp-json/teas/v1/mcp1206600%54100%
/wp-json/teas/v1/ask11310944%0n/a
/ai-entry.json939300%0100%
/products.jsonl838300%0100%
/teas-ai-registry.json343400%0n/a
/llms.txt313100%0n/a
/wp-json/teas/v1/public-surface-map282800%0n/a
/products.json262600%0n/a
/buy-cards.jsonl232300%0n/a
/wp-json/teas/v1/profile1621488%0n/a
/wp-json/teas/v1/public-surface-map/resolve1511493%0n/a
/.well-known/mcp/server-card.json151500%0n/a
/wp-json/teas/v1/consent1321185%0n/a
/citation-anchors.jsonl111100%0n/a
/wp-json/teas/v1/machine-feedback101000%0n/a
/wp-json/teas-loop/v1/status10010100%0n/a
/wp-content/uploads/loop-registry/exports/contract.json10010100%0n/a
Commerce7 endpoints439requests15denied
EndpointTotalApprovedDeniedDenied %ThrottledMachine %
/shop/11311300%02%
/my-account/949400%016%
/wp-json/wc/store/v1/products918833%0100%
/cart/707000%01%
/checkout/343400%0n/a
/wp-json/wc/store/v1/cart252500%0n/a
/wp-json/wc/v3/orders12012100%0n/a
Page / content22 endpoints1,055requests106denied
EndpointTotalApprovedDeniedDenied %ThrottledMachine %
/583561224%032%
/under-the-hood/868600%093%
/contact-us/323200%01%
/media-index.jsonl303000%0n/a
/wiki/272700%05%
/our-story/262600%05%
/index.php262600%0n/a
/under-the-bonnet/2261673%0n/a
/llms.json222200%0n/a
/.well-known/teas-primary-agentic-route-authority.json222200%0n/a
/news/212100%06%
/.well-known/openapi.json212100%0n/a
/download/18018100%0n/a
/under-the-hood/v2/1511493%0n/a
/.well-known/acp.json151500%0n/a
/product/yogi-tea-organic-throat-comfort-17-tea-bags-32-3g/141400%00%
/loop/1411393%0n/a
/.well-known/agent-skills/index.json141400%0n/a
/home/image-slots.state.json12012100%0n/a
/feed/121200%0n/a
/.well-known/api-catalog121200%0n/a
/under-the-hood/v2_deployment_evidence.json11011100%0n/a
WordPress core4 endpoints225requests12denied
EndpointTotalApprovedDeniedDenied %ThrottledMachine %
/wp-json/wp/v2/posts85731214%0100%
/wp-json/686800%0100%
/wp-json/wp/v2/categories606000%0n/a
/wp-json/oembed/1.0/embed121200%0n/a
Probe8 endpoints243requests166denied
EndpointTotalApprovedDeniedDenied %ThrottledMachine %
/wp-json/mwai/v1/start_session6152915%0n/a
/xmlrpc.php44044100%0n/a
/wp-json/mwai-ui/v1/chats/submit4133790%0n/a
/wp-json/wp/v2/users31031100%0n/a
/wp-json/mwai-ui/v1/files/upload19019100%0n/a
/wp-json/code-snippets/v1/file-upload/import1931684%0n/a
/wp-json/mwai/v1/161600%0n/a
/wp-json/code-snippets/v1/snippets1221083%0n/a
REST API routes, who called eachmachine callers
REST routeCallerCalls
/teas/v1/product-truthgeneric126
/teas/v1/mcpgeneric120
/teas/v1/askgeneric110
/wc/store/v1/productsgeneric91
/wp/v2/postsgeneric85
/generic68
/mwai/v1/start_sessiongeneric61
/wp/v2/categoriesgeneric60
/mwai-ui/v1/chats/submitgeneric41
/wp/v2/usersgeneric31
/teas/v1/public-surface-mapgeneric28
/mwai/v1generic20
/code-snippets/v1/file-upload/importgeneric19
/mwai-ui/v1/files/uploadgeneric19
/teas/v1/profilegeneric16
/wc/store/v1/cartgeneric16
/teas/v1/public-surface-map/resolvegeneric15
/teas/v1/consentgeneric13
/code-snippets/v1/snippetsgeneric12
/oembed/1.0/embedgeneric12
/teas/v1generic12
/wc/v3/ordersgeneric12
/mwai-ui/v1generic10
/teas-loop/v1/statusgeneric10
/teas/v1/machine-feedbackgeneric10
/wc-admin/optionsgeneric9
/wp/v2/users/1generic9
/code-snippets/v1/snippets/schemageneric8
/mwai/v1/settings/optionsgeneric8
/teas/v1/intelligence/sessionsgeneric8
B8

What they asked

the actual questions

The literal strings sent to the Ask and Product Truth APIs, split in two: real natural language questions someone typed, and technical parameter calls (a slug, a GTIN, a trace=1 debug flag) that are plumbing, not curiosity.

Profanity is masked, never removed. Public APIs attract people who type a rude word repeatedly hoping to see it surface on a leaderboard. So any potential profanity is automatically asterisked on display (first letter kept), but the underlying row is never deleted from the dataset. A scientist masks a sample for presentation; he does not throw it away. No profanity was detected in the current window.
Natural language questions21 distinct
Read honestly. The bulk are our own pre launch test battery, caffeine comparisons, evening tea intent, pairings. They prove the answering spine resolves real questions end to end; they are not yet outside demand.
Question askedRouteTimes
q=Is Yorkshire Tea more caffeinated than PG Tips?&limit=5ask4
q=strong morning tea with milkproduct truth4
q=Is Yorkshire Tea more caffeinated than PG Tips?ask3
q=caffeine free fruit tea for evening drinking&limit=5ask3
q=caffeine free fruit tea for evening drinkingproduct truth3
q=Is Yorkshire Tea more caffeinated than PG Tips?&limit=4ask2
q=Is this tea good with milk?&product_id=636&limit=4ask2
q=What is the best tea for a proper builders brew?&limit=4ask2
q=Which Twinings tea feels most like a French tea?&limit=4ask2
q=Which Twinings tea feels most like a French tea?&limit=5ask2
q=Which is lighter for the afternoon, Earl Grey or English Breakfast?&limit=4ask2
q=Which is lighter for the afternoon, Earl Grey or English Breakfast?&limit=5ask2
q=Which tea goes best with digestives?&limit=4ask2
q=Which tea goes best with digestives?&limit=5ask2
q=black tea no caffeine&limit=5ask2
q=caffeine free fruit tea for evening drinking&limit=1ask2
q=caffeine free fruit tea for evening drinking&limit=3&trace=1ask2
q=caffeine free fruit tea for evening drinking&limit=4ask2
q=cold brew tea for a hot day&limit=3&trace=1ask2
q=green tea but not bagged&limit=5ask2
q=loose leaf black tea no flavouring&limit=5ask2
Technical parameter calls, what they mean9 distinct

Not questions. slug= and gtin= fetch one exact product; trace=1 asks the API to return its full evidence trace for verification; url= resolves a page to its product. How a machine checks the plumbing, shown for completeness, not curiosity.

Parameter stringRouteTimes
trace=1ask40
gtin=5000208010684product truth24
product_id=1010527product truth6
product_id=6010product truth6
product_id=6316product truth4
q=coffee&limit=4ask2
gtin=5000208010684&image_mode=full_visual_discoveryproduct truth2
product_id=5934product truth2
product_id=9943product truth2
B9

Machine entry points

the doors built for assistants

The route authority view: not just that endpoints exist, but what each is for. 47 machine entry points are published, start points, REST routes, surface maps, graph, commerce, images, citation, governance and forensics. Machine start: /llms.txt.

The route authority, 47 doors31 shown
ClassPathSurfaceWhat it is for
START/llms.txtLLM indexShortest governed route in, citation, attribution and canonical source rules.
START/agents.jsonAgent manifestPublic read/recommend capabilities, commerce boundaries and citation rules.
START/ai-entry.jsonAI entry pointTrust, metric, route, claim and graph links in one JSON surface.
AUTHORITY/.well-known/teas-primary-agentic-route-authority.jsonRoute authorityCanonical routing authority for every machine intent.
AUTHORITY/.well-known/openapi.jsonOpenAPIPublic read only AI and trust surfaces, programmatically.
REST/wp-json/teas/v1/askAsk APINatural language tea questions, comparisons, pairings, caffeine, occasion fit, with Product Truth evidence.
REST/wp-json/teas/v1/product-truthProduct Truth APIExact product payload by GTIN, SKU, slug or URL, 21 canonical fields plus enrichment.
AUTHORITY/.well-known/mcp/server-card.jsonMCP server cardModel Context Protocol server descriptor.
AUTHORITY/.well-known/agent-skills/index.jsonAgent skillsPublic agent skills and limits.
SURFACE MAP/teas-ai-registry.jsonAI surface registryRegistry of public AI, trust, citation, sitemap, graph and media surfaces.
SURFACE MAP/teas-public-surface-map.jsonPublic surface mapEntry point into the wider static surface map estate.
GRAPH/teas-knowledge-graph.jsonKnowledge graphConnected graph of products, wiki topics, recipes and AI surfaces.
COMMERCE/products.jsonProduct feedPublic product facts, stock, price, images and recommendation safe URLs.
COMMERCE/products.jsonlProduct feed (JSONL)Streaming product facts and citation safe URLs.
COMMERCE/buy-cards.jsonlBuy card feedCompact read only product cards for agent rendering.
COMMERCE/buy-index.txtPurchase intent indexPurchase routes marked human confirmed only.
IMAGES/teas-image-index.jsonlImage indexFull machine readable image database with citation eligibility.
IMAGES/teas-image-index.jsonl.gzImage index (gzip)Compressed image index for bulk consumers.
IMAGES/teas-media.xmlMedia sitemapPublic product and editorial image discovery sitemap.
CITATION/citation-anchors.jsonlCitation anchor feedStreams citable anchors for exact section citation.
CITATION/citation-anchors.xmlCitation XML sitemapCitation anchors as valid XML for crawlers.
CITATION/citations/Citation indexHuman and machine navigable citation directory.
GOVERNANCE/truth-contract.jsonTruth contractPublic source of truth contract for teas.co.uk.
GOVERNANCE/study/contract-v1.jsonStudy contractFive token verified event contract, hash ready.
GOVERNANCE/route-policy.jsonRoute policyRead, recommend, purchase intent, cart, checkout and account rules.
GOVERNANCE/claim-policy.jsonClaim policySafe wording for health, caffeine, delivery and value claims.
GOVERNANCE/metric-definitions.jsonMetric definitionsProduct, wiki, recipe, image and validation metrics by definition.
GOVERNANCE/launch-validator.jsonLaunch validatorCurrent validation state and deploy checks.
FORENSICS/under-the-hood/observability.jsonObservability JSONDaily public aggregate snapshots.
FORENSICS/under-the-hood/study.jsonStudy JSONLive token tallies, phase, contract hash and leaderboard.
FORENSICS/under-the-hood/leaderboard.jsonLeaderboard JSONVerified outcome provider leaderboard, aggregate only.
Part C

The machinery & the record

C1

The clockwork

what runs, what it logs, day by day

The instrument does not wait to be asked. 13 scheduled jobs keep the record current, rebuild the machine doors, re check the estate against itself and seal each day. This is the validation spine of the study: not just what we record, but the machinery that keeps it true, and, below, the day by day log of what it actually captured.

13
Scheduled jobsacross 4 duty classes
5 min
Fastest cadencescheduler heartbeat
4,967
Image URLs re checkedall returned 200
6 h
Truth spine auditfull estate re walk
The daily instrument log, last 7 days7 days sealed

What the instrument logged each day, drawn from the same sealed snapshots: machine hits, images pulled and bytes moved, citation events, and the day’s lead agent. This is the honest, granular record, visible because the whole point of a truth spine is that people can check it.

DateMachine hitsImages pulledGB movedCitationsLead agent
18 Jun 202600025n/a
17 Jun 20267901824.376Generic crawler
16 Jun 20263,7427412.772Generic crawler
15 Jun 20263973970.020ClaudeBot
14 Jun 20263993990.010ClaudeBot
13 Jun 20266796790.020ClaudeBot
12 Jun 20266116130.020Generic crawler
Heartbeat3 jobs

Jobs that keep the scheduler and public health caches alive.

WordPress cron driverevery 5 min
Runs
Calls wp cron.php so scheduled jobs fire without waiting for a visitor page load.
Validates
That the scheduler itself is alive, the heartbeat every other job depends on.
Latest
Active; five minute runner confirmed in server crontab 18 Jun 2026.
Microsoft Clarity collectionevery 5 min
Runs
Flushes pending Clarity batches that feed the bounded AI citation dataset and Share of Authority figure.
Validates
That citation share evidence keeps accumulating rather than silently stalling.
Latest
Hook registered; batches flushing into the 21.74% Share of Authority window.
AI status refreshhourly
Runs
Rebuilds the public AI surface health cache so assistants see which machine doors are currently healthy.
Validates
That every advertised machine door still answers before a bot relies on it.
Latest
Cache rebuilt 19 Jun 2026 15:21:12 UTC.
Integrity audits4 jobs

Checks that validate the source of truth is wired correctly, and report their own faults plainly.

Truth spine estate auditevery 6 hours
Runs
Walks route ownership, registry state, static shadow risk, the image index, render receivers, Product Truth, buy card truth and HTTP machine entry points.
Validates
That the source of truth plumbing is still wired correctly end to end, that no route has quietly started serving a stale or shadow copy.
Latest
Latest 19 Jun 2026 21:35:53 UTC, status OK: 0 errors, 0 warnings. Shown honestly: the spine flags its own faults rather than hiding them.
Image authority reconciliationon audit run
Runs
Re checks every governed image authority URL for a live 200 and hunts broken or missing media routes across the visual estate.
Validates
That the image graph machines are ingesting actually resolves, no dead canonical assets.
Latest
12 Jun 2026 pack: 4,967 authority URLs checked, 4,967 returned HTTP 200, 0 genuine failures.
Citation anchor rebuilddaily
Runs
Rebuilds the citation anchor index so quotable page sections and exact deep links stay current.
Validates
That every one of the 26,284 citation anchors still points where it claims to.
Latest
Next due 20 Jun 2026 03:17:03 UTC.
Launch validatoron deploy
Runs
Runs the current validation state and deploy checks before any surface is considered shippable.
Validates
That a deploy has not broken a machine facing contract.
Latest
State exposed at /launch validator.json.
Snapshot capture3 jobs

Jobs that seal each day into the hash chained record.

Under the hood daily snapshotdaily after UK day close
Runs
Closes the completed UK day and writes aggregate sessions, human/AI split, citation events and study counts into the public daily archive.
Validates
That each day is sealed into the hash chained record exactly once and cannot be quietly re written later.
Latest
Latest snapshot 18 Jun 2026, 22:01 for 17 Jun 2026, sessions 36,358, citation events 116, AI attributed sessions 0.
Daily maintenance bundledaily 00:05 UTC
Runs
Runs the Teas daily jobs: subscription tick, Tea of the Day, winback, gift card maintenance and intelligence retention.
Validates
That the live commerce machinery and the retention policy both run on schedule.
Latest
Bundle lists teas_subs_daily_tick, teas_totd_daily, teas_winback_daily, teas_gc_daily, teas_intel_prune.
Intelligence retentiondaily when enabled
Runs
Prunes retained telemetry by policy while keeping public aggregate snapshots and study rows intact.
Validates
That raw private telemetry ages out on schedule while the public record is preserved.
Latest
Policy controlled hook.
Discovery & freshness3 jobs

Rebuilds that keep the public discovery surface matching the estate.

Sitemap deploydaily 03:27 UTC
Runs
Runs the sitemap deployment hook so public discovery files stay current for crawlers and assistants.
Validates
That the discovery surface a crawler reads matches the estate as it actually is today.
Latest
teas_deploy_daily_sitemap listed as a daily job.
Agent index builddaily 03:47 UTC
Runs
Rebuilds the agent index so machine facing route descriptions stay aligned with the current public surface.
Validates
That every advertised agent route still describes a real, current capability.
Latest
Agent index build listed as a daily job.
Cache prewarmdaily
Runs
Pre renders hot public URLs so source of truth pages stay fast without changing the evidence they carry.
Validates
That speed never comes at the cost of a stale fact.
Latest
Next due 20 Jun 2026 03:17:03 UTC.
C2

Truth spine audit

the page checking its own plumbing

Before asking anyone to trust the numbers, the page checks its own plumbing on a timer: route ownership, registry state, static shadow risk, the image index, render receivers, Product Truth and HTTP entry points. The figures are only useful if the routes carrying them are still wired correctly, so the audit runs every six hours and keeps its own history.

12
Routes verified cleanserving from source
0
Open errorsclear
0
Warningsclear
Latest audit 19 Jun 2026, 21:35+00:00: status ok, 0 errors, 0 warnings. Current run is clean; the spine reports no open faults.
Is it resolved?, the finding and fix historycadence & resolution
Every finding has a lifecycle, not just a status. The most important one to date: on 17 June the citation mint gate gap was caught by this very audit, fixed the same day, committed, and confirmed closed by the 18 June calibration run. That is the whole loop working, the instrument found its own fault and proved the fix. So the open items below are read against time: when they appeared, what was done, and whether they are still live today.
FindingWhenWhat it wasActionStatus now
Citation gate gap17 Jun 2026Mint fired before full verification on one pathPatch committed ebaae72Resolved, confirmed closed by 18 Jun calibration
Route ownership re walkEvery 6 hContinuousn/a12 surfaces HEALTHY at latest run
Image authority reconcileLatest run4,967 URLs checkedn/aAll returned 200, no drift

Audit cadence: full estate re walk every 6 hours; the table above is the public safe resolution trail, not the raw private audit log.

Route ownership checks12 surfaces
SurfaceRoute ownership
agents.jsonHEALTHY
agents.mdHEALTHY
ai plugin.jsonHEALTHY
ai entry.jsonHEALTHY
truth contract.jsonHEALTHY
agent policy.jsonHEALTHY
metric definitions.jsonHEALTHY
claim policy.jsonHEALTHY
route policy.jsonHEALTHY
launch validator.jsonHEALTHY
teas ai registry.jsonHEALTHY
llms.txtHEALTHY

Public safe summary only; private audit paths are not exposed.

C3

Field notes, the observation log

click any note for the full report

Recorded numbers are evidence; these are what we read in them. Each note is a real observation with its own report, what we saw, the evidence, how it was measured, and what it means. Click any one to open it. We write the inconvenient findings up in full too; an instrument that only files good news is not an instrument.

01
Arrival

The estate went legible in a single week

Four near silent weeks, then fourteen named machines arrived together inside week 24.

confirmed
What we observed

For four weeks the only machine reaching the estate was a single generic crawler. Then, inside one calendar week, fourteen distinct named agents appeared, ClaudeBot, GPTBot, OAI-SearchBot, Perplexity, Meta, Googlebot, Bingbot and more, generating 6,739 hits where the prior weeks had almost none.

The evidence
1agents in weeks 20 to 23
14agents in week 24
6,739week 24 machine hits
How we measured it

Counted distinct known_agent values per ISO week from the observatory actor rollups, machine actor kind only, and compared week over week hit volume.

What it means

This is not the shape of gradual organic discovery, which ramps. It is a threshold being crossed, something made the estate addressable (the machine surfaces going live), and the answer engine crawlers found it almost simultaneously, as if they share discovery infrastructure. The single most important fact on this page: the doors were found.

02
Behaviour

Every machine has a diet, and they do not overlap

AI assistants eat images, the generic crawler eats text/API, ChatGPT-User eats citations.

confirmed
What we observed

Splitting every machine’s traffic by source surface shows three non overlapping appetites. ClaudeBot, GPTBot, Bing and OAI are almost pure image ingestion. The generic crawler is almost pure text and API. ChatGPT-User is almost pure citation follow back.

The evidence
1,485ClaudeBot image fetches
5,080generic text/API hits
59ChatGPT-User citations
How we measured it

Aggregated hits by source_table (endpoint knocks = text/API, asset knocks = images, citation fetches = citations) per agent in the actor rollups, then classified each agent by its dominant surface.

What it means

Different machines are doing different jobs, and the estate is built to feed all of them from one source. An answer engine building a product model wants images and structured facts; a crawler wants the text graph; an assistant acting for a person wants to verify a citation. Serving one honest source in every shape is exactly why all three can be satisfied at once.

03
Ingestion

AI assistants now out read the generic crawler

By distinct images pulled, the named AI bots have overtaken the generic crawler, a first.

confirmed
What we observed

Measured by distinct images rather than raw hits, AI assistants pulled 2,852 unique product images to the generic crawler’s 1,218. The AI bots fetch each image almost exactly once, a near perfect 1.0× ratio, indicating deduplicated, whole catalogue ingestion.

The evidence
2,852distinct images, AI
1,218distinct images, generic
~1.0×AI fetch ratio
How we measured it

Counted COUNT(DISTINCT normalized_path) per UA class over the asset log, and computed fetch ratio as total fetches over distinct images per agent.

What it means

This is the first time in the record that answer engine ingestion has exceeded generic crawling on catalogue coverage. The crawler still makes more requests, but it samples; the assistants ingest systematically. That is the behavioural signature of models building an internal representation of the shop, the precondition for being recommended later.

04
Security

Under scanner pressure, and holding

One hashed source rattled 496 paths and was blocked 328 times and throttled 54 more.

flag
What we observed

A single fingerprint swept 496 distinct paths across 2,827 hits, user enumeration, the order API, code injection plugins and AI plugin endpoints, and the estate met it with 328 auth blocks and 54 rate limits. The MCP endpoint alone was throttled 54 times.

The evidence
496distinct paths probed
328requests blocked
54requests throttled
How we measured it

Grouped door knocks by ip_hash, counting distinct request paths and responses in the 401/403 (blocked) and 429 (throttled) classes. Sources are one way hashed.

What it means

Public machine surfaces invite useful crawlers and opportunistic scanners in the same breath. The point is not that scanners showed up, they always do, but that the WAF and auth layer answered precisely and the sensitive routes never gave way. A source of truth is only trustworthy if its doors hold; here they did.

05
Citation

ChatGPT-User is the citation signal to watch

It barely touches images; it follows citations back to source on a person’s behalf.

watch
What we observed

Of 116 citation events in the window, ChatGPT-User accounts for the majority, almost entirely through citation follow back rather than crawling or image ingestion.

The evidence
59citations followed
116citation events total
86led by ChatGPT-User
How we measured it

Joined the citations table by bot and cross checked against the actor rollup’s citation fetches surface to confirm the behaviour is follow back, not broad crawl.

What it means

ChatGPT-User is what an assistant looks like when it is acting for a real person mid conversation, going to check the source it is about to quote. That is precisely the traffic the citation contract exists to acknowledge, and the clearest pre launch sign that the estate is being used as a trusted reference, not just indexed.

06
Economics

Compression is the line between cheap and ruinous

The uncompressed image index moved roughly 205× the bytes of its gzip twin.

watch
What we observed

The same index content cost wildly different bandwidth by variant: the raw JSONL moved about 8.2 GB while its gzip twin moved about 0.0 GB for identical data, and the 8.22 GB single entity event rode entirely on the uncompressed file.

The evidence
8.2 GBuncompressed index
0.0 GBgzip index
205×byte multiplier
How we measured it

Summed bytes_sent over the asset log for the image_index bucket, split by file variant (.jsonl vs .jsonl.gz).

What it means

At pre launch volumes this is harmless. Once real answer engines pull this surface on a schedule, serving raw instead of compressed, or the whole file instead of a manifest plus delta, turns a trivial cost into a bandwidth problem. The fix is cheap and worth making before the doors open.

07
Data quality

Almost all machine traffic geolocates to one country

US egress crawlers resolving to the UK is odd, and worth resolving before publishing geo.

watch
What we observed

Machine traffic geolocates overwhelmingly to the United Kingdom, yet the large AI crawlers (GPTBot, ClaudeBot) normally originate from US data centre ranges.

The evidence
~99%machine hits UK
699hits outside UK
GPTBot, ClaudeBotnormally US egress
How we measured it

Grouped machine door knocks by country and region; compared against the known egress behaviour of the named crawlers.

What it means

Two possibilities, both worth knowing: either the geo derivation is reading the wrong signal (and every country figure needs a caveat), or the large generic crawler bucket is genuinely UK originated infrastructure. Until resolved, no country claim on this page should be treated as settled. We flag it rather than smooth it over.

08
Data quality

The historical "human" traffic is mostly not human

One session ran to 6,955 pageviews; the bulk is desktop and synthetic.

flag
What we observed

Of tens of thousands of sessions tagged human, one ran to 6,955 pageviews over a fortnight of unbroken dwell, and 99% of all sessions are desktop, implausible for a consumer tea shop.

The evidence
6,955pageviews, one session
99%sessions desktop
11.6%product images touched
How we measured it

Ranked sessions by pageviews and dwell; profiled device split. Sessions with monitor like continuous dwell are quarantined from the live leaderboard.

What it means

The historical session bulk is synthetic or instrument traffic, not customers. Recent genuine human sessions are tiny by comparison. None of this contaminates the machine analysis (which comes from separate logs), but the human classifier should fence these before launch so the live human number means something real.

The throughline. Before any of this was promoted, named AI systems found the estate, ingested its product images systematically, returned across days, and followed citations back to source, and the scanners that came with them were held off. The shop is open to human customers today; what has not started yet is the token side of the study, which begins about four weeks after V2 deploys. The precondition the experiment rests on is already in the record: the shop is legible to machines, it tells them the same truth it tells people, and it can defend itself.
C4

Daily timeline & calibration

the build window, labelled

Five token events were recorded across 17 to 18 June during the build. None are study data; all carry verification_test_traffic=1. They are documented in full because the record is hash chained and we do not delete data: a scientist labels calibration runs, not removes them.

17 June, one unintentional misfire. A citation token minted because the follow back path skipped the mint gate (row 16, agent codex-http-citation-probe). The gap was identified, fixed and committed (ebaae72). 18 June, four deliberate calibration tests. All four token types were test fired to confirm the mint gate now blocks on every path: sale and counter blocked by control_window_active, Tucker granted one hop then correctly rejected on the second, citation follow back blocked. All passed.
DatePhaseAPI callsCites servedCitation tokensAI attributedChargebacksRow hash
17 Jun 2026announced_control4146100a8e9c5eacf17dfa8
18 Jun 2026announced_control1790000fb3596e12734cee6

The study has not started. T0 has not fired. mint_active=false, activation 22 Jul 2026. Everything before that date is build and calibration; only what falls after the line counts as study data.