Skip to content

The instrument

This is what the surface looks like.

A redacted instance of a deployed instrumentation layer. Names are struck out and absolute values are shifted; the structure, cadence, sample sizes and confidence bands are the ones that ran.

What has been changed

  • Entity names are struck out. Each mask is stable across the whole page, so ███ 04 is the same operator in every panel.
  • Absolute values are shifted by a per-panel constant. Relative position, direction and spread are unchanged.
  • The observation window, the sample sizes and the intervals are as measured. Nothing here is illustrative.

Surface

Six panels from one deployment.

Each panel states its provenance — counted, computed, or estimated — and every estimate carries the interval it comes with.

Observation window

01 — Corpus

observed

What is being counted.

RAW_COUNTS · AGG 1w · n=13,596 records · CONF 5

CONF 5Stable, with no known data-quality issue.

The instrument tracks a fixed set of operators on a weekly cadence. Coverage is stated per source, including where it is incomplete — a source that reaches 62% of the set is reported as 62%, not quietly dropped.

Corpora the instrument counts from, with coverage and cadence
SourceRecordsCoverageCadence
Public review corpus, source A4,95521 of 21 operatorsWeekly
Public review corpus, source B34913 of 21 operatorsWeekly
Paid creative, live-ad capture1,88018 of 21 operatorsDaily, rolled weekly
Booking-surface instrumentation21 surfaces × 34 fields21 of 21 operatorsWeekly
Organic publishing capture6,41220 of 21 operatorsDaily, rolled weekly

Every downstream figure resolves to one of these five corpora. Nothing on this page is sourced from a panel, a survey, or a purchased estimate.

02 — Movement

derived

Where custom actually goes when it leaves.

PERTURBED · RAW_COUNTS · AGG 1w · n=302 resolved · CONF 4

CONF 4Stable, with a known gap in source coverage.

Every edge is a resolved public statement that a person moved from one operator to another, and the stated reason. Edges below a floor of four resolved mentions are not shown at all rather than shown faintly — a thin edge is the most persuasive and least reliable object on a graph like this.

Why this is hard to get

No operator can see this from their own systems. It is not in a CRM, a booking platform, or a payment processor: the moment a customer leaves, they stop generating records you own. It only exists in what they say somewhere public, and only if someone resolves those statements to entities.

Net movement, resolved mentions

███ 01
+58
OPERATOR
+37
███ 05
+11
███ 03
+5
███ 08
-9
███ 07
-14
███ 06
-17
███ 02
-22
███ 04
-49
Net movement per operator: inbound, outbound and net mentions
OperatorInOutNet
███ 0158058
OPERATOR673037
███ 0511011
███ 0317125
███ 0809-9
███ 07014-14
███ 06017-17
███ 02022-22
███ 04958-49
Edge ledger — every reportable edge with its interval
Resolved defection edges with sample size, 95 percent interval and stated reason
FromTon95% CIStated reason
███ 04OPERATOR312438Wait time
███ 02OPERATOR221628Result consistency
███ 07OPERATOR14919Handling of a complaint
OPERATOR███ 01191325Price
OPERATOR███ 0511716Availability
███ 04███ 01272034Wait time
███ 06███ 03171123Staff turnover
███ 03███ 0112817Price
███ 08███ 049513Booking friction

Unresolved

214 Mentions of leaving that could not be resolved to a destination. Reported rather than dropped: an instrument that hides what it failed to resolve is overstating what it knows.

Edges below 4 resolved mentions are not shown.

04 — Friction

observed

How hard each operator is to buy from.

RANK_ONLY · AGG 1w · n=21 surfaces · CONF 4

CONF 4Stable, with a known gap in source coverage.

Public booking surfaces are enumerated field by field — never submitted to. Rank only: these observations are ordinal, and an index would imply a precision the measurement does not have.

Why this is hard to get

You know your own funnel. You do not know that four operators in your set dropped their deposit requirement this quarter, or that the two ranked above you ask for three fewer fields than you do before a customer can commit.

Booking-surface friction rank, fields, steps, deposit and policy disclosure
RankOperatorRequired fieldsStepsDepositPolicy upfront
01███ 0542NoneStated
02███ 0152NoneStated
03OPERATOR63RequiredStated
04███ 0373RequiredNot stated
05███ 0494RequiredNot stated
06███ 07114RequiredNot stated

05 — Recovery

observed

Who answers, and how fast.

PERTURBED · PCT · AGG 1w · n=617 pairs · CONF 5

CONF 5Stable, with no known data-quality issue.

Every public complaint in the corpus is paired with its first response, if one exists. Rate and latency are counted, not sampled.

Why this is hard to get

This is visible to anyone and instrumented by almost nobody, because it requires pairing two records that no platform joins for you — the complaint and the reply, across every operator, every week.

Operator

Response rate

Median

n

███ 01

3.1h

142

OPERATOR

19.4h

118

███ 03

26.8h

96

███ 04

61.2h

173

███ 07

96.5h

88

███ 06

WITHHELDn below the reporting threshold of 30 paired records.

<30

███ 07

WITHHELDn below the reporting threshold of 30 paired records.

<30

Bar = share of public complaints answered. Tick = median hours to first response, against the slowest operator in the set.

Public-complaint response rate, median hours to first response, and sample size per operator
OperatorResponse rateMedian hoursn
███ 0194%3.1142
OPERATOR71%19.4118
███ 0368%26.896
███ 0444%61.2173
███ 0729%96.588

06 — Pressure

modelled

Competitive weight, week by week.

PERTURBED · RAW_COUNTS · AGG 1w · n=52 weeks · CONF 4

CONF 4Stable, with a known gap in source coverage.

Distinct live creatives across the tracked set, weekly. The band is the modelled expectation given the set's own seasonality; the line leaving it is the event worth a decision.

Why this is hard to get

A single operator sees their own spend. Nobody sees the set's aggregate weight moving — which is what tells you whether a bad month was you or the market.

Latest

196

distinct live creatives

Against expectation

-5

8 of 26 weeks outside the band

Solid = observed. Dashed = modelled expectation. Band = ±14 distinct live creatives.

Series — 26 weekly observations
Weekly observed competitive pressure against modelled expectation
WeekObservedExpected
1148158
2156158
3164158
4164158
5182159
6186159
7192160
8191160
9199161
10196162
11160164
12160165
13176167
14168169
15178171
16173173
17178176
18175178
19210181
20216184
21180186
22193189
23191192
24202195
25203198
26196201

What this is not

None of this is your data.

This is one deployment with its identity removed. Yours would be built against your set, your baseline and your questions — and it would be wrong to promise you these specific figures, because they belong to someone else's market.

The read-only audit that starts an engagement produces the first version of this surface. Start a conversation.

Contact

If you already have the data, we can show you what it says.

We take on a small number of operators at a time. Engagements start with a read-only audit of what your existing systems already know.

Start a conversation

No deck, no discovery call. Send the shape of your data and we will tell you what it can support.