Most small sites cannot measure revenue. There is no checkout, and the sale happens on a call.
That does not make the site unmeasurable. It changes which rung you read.
The ladder
| Rung | Signal | Source | What it cannot tell you |
|---|---|---|---|
| 1 | Impressions | Search Console | Whether anybody chose you |
| 2 | Clicks | Search Console | Whether they read the page |
| 3 | Engaged sessions | Analytics | Whether they wanted to talk |
| 4 | Contact actions | Analytics events | Whether the enquiry qualified |
| 5 | Stored enquiries | The form inbox | Whether it became revenue |
Each rung is closer to money and further from certainty.
A filled month
Meridian Landscaping, a fictional client, September 2026.
rung 1 impressions 2,910 search console, 28 days
rung 2 clicks 73 search console, 28 days
click rate 2.51% derived: 73 / 2910
rung 3 engaged sessions 54 analytics, consent applies
rung 4 contact actions 9 analytics, generate_lead event
rung 5 stored enquiries 7 the form inbox
the gap between rungs 4 and 5
9 events, 7 stored responses. Two events were clicks on the phone
number, which does not create a stored response. That is expected,
and it is why the phone number is rung 4 and not rung 5.
not available
revenue: the property records no revenue, and the invoice happens
on a call. Anything called revenue here would be an invention.
qualified: a person decides this, after a conversation.
How to use the ladder in a prediction
Predict the highest rung you can read. A title change predicts clicks. It cannot predict revenue, and a proposal that says otherwise should be refused.
Acceptance: the measurement is honest when
- every rung names its source and its window
- the click rate shows the division behind it
- the gap between events and stored responses is explained
- consent’s effect on Analytics is stated
- nothing downstream of the last readable rung is given a number
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| Events exceed stored responses | Phone clicks, or a form that posts elsewhere | Name the difference, do not average |
| Sessions much lower than clicks | Consent, or a lost tag | Compare with the consent rate before worrying |
| A conversion rate looks great | A denominator from a different rung | Use one source for both numbers |
| The client wants a lead forecast | Too little volume | Report the direction and the sample size |
| Every month is flat | No new pages, no new queries | Say it, and propose one test |
Choosing the rung from what you have
Work backwards from the sources you already own.
no search property start at rung 5: the form inbox
search property, no analytics rungs 1 and 2, plus the inbox
both, no events rungs 1 to 3, plus the inbox
both, one event configured all five rungs
The rung you cannot read should be named in the report rather than estimated. A report that says “rung 4 is unavailable” is more useful than one that guesses at it.
Limits
Phone enquiries never appear in this data, and a rung 5 enquiry is not a qualified one.
The ladder is a reading order. It does not promise that each rung converts to the next at a known rate.