Skip to content
A horizontal teal line on a dark grid with four filled dots; from the third dot five thin lines fan upward and flatten out to the right. After the fourth dot the line turns dashed and ends in a dot inside a ring. Lower left, four outlined rectangles of decreasing width are stacked like a funnel.

“You cannot take a bounce rate to a repair shop and explain the invoice.”

Measuring what the customer actually pays for

An advertiser pays for position and gets value in calls. So we measured both ends, and everything between.

Get in touch
A US marketplace for truck services · technical leadership · 2022–2026 · same engagement
~180
event types in the taxonomy
5
stages: position to contact
3
phone numbers tracked separately
Summary

We tracked around 180 event types. That number sounds like sprawl and isn’t — the taxonomy is a map of how the business makes money, from the position an advertiser paid for through to the phone call that resulted.

Designing it was a product decision far more than a technical one, and it’s the part of the analytics work we would point at first.

The problem

In a directory business the advertiser buys position and receives calls. Everything between those two points is assumption.

The constraint

Standard analytics measures neither. It counts sessions, pageviews and bounce rates — quantities that describe a website rather than the value delivered to one customer of that website. You cannot take a bounce rate to a repair shop and explain why the invoice is what it is.

What we did

  1. Measured position as a first-class event

    top1, top3, top5, top10 — recorded at the moment a listing appears, not derived afterwards. A premium listing is sold as better placement, so placement is the thing that must be demonstrable. Reconstructing it later from something else is not the same as recording it.

    Recorded, not derived
  2. Interest is granular by design

    Opening hours, services, amenities, rates, reviews. Those are different questions, and a system that lumps them together as “engagement” throws away the answer.

    Five questions, not one
  3. Separated intent from contact

    Revealing a phone number and actually placing a call are two events, not one. The gap between them is a conversion rate no general-purpose tool would ever produce, because no general-purpose tool knows that revealing a number is the meaningful moment in this business.

    Reveal → call
  4. Distinguished the phone numbers

    Primary, secondary and after-hours are tracked separately. In truck repair that is not pedantry: a call at three in the morning is a different kind of urgency and a different kind of job.

    Three a.m. is not noon
  5. Measured the sales funnel too

    Which package a visitor chose, and which tier of listing they created. So the system describes not only what an advertiser receives but how they decided what to buy.

    What they get and how they chose
THE VALUE CHAIN — FIVE STAGES
Position what was paid for

top1, top3, top5, top10 — recorded at the moment a listing appears. A premium listing is sold as better placement, so placement must be demonstrable rather than reconstructed afterwards from something else.

The taxonomy is built around the value chain rather than around the pages. That is why it measures what the advertiser buys and what they receive.

The result

  • ~180 event types mapping the full chain from placement to call
  • Yearly reports that answer the only question an advertiser has at renewal
  • A conversion rate — reveal to call — that no off-the-shelf tool would have produced

What we’d do differently

180 event types across four years, and no scheduled review of which ones anyone still looked at. Some certainly stopped being used and kept being written. A taxonomy needs a pruning habit as much as a naming convention, and we only ever had the second.

Related
2M writes a day, a report under a secondThe architecture that carries these 180 event types.Four re-platformings, zero downtimeThe engagement the taxonomy was designed inside.
All 18 case studies
  • InfluxDB
  • MySQL
  • Node.js

Measuring sessions while your customer pays for calls?

Get in touch

Systems that can’t stop — from architecture to production.

© 2026 Micro Tech, Sarajevo