Why we counted the hotspots instead of estimating them

Because we bill on one of these numbers, and the number we bill on is the smallest of the three. Estimating it would have been a licence to round in our own favour. A script reads the delivered tour files and reports the positions, the overlays, the click action of every one of them and the distinct destinations they resolve to — and it catches things we would otherwise have published wrongly, three of which are set out below.
What the count reads
A finished tour is a folder of files, and the structure of the building is in it: which panoramas exist, which overlays are placed on each one, what each overlay does when you click it, and where it sends you. None of that is metadata we typed. It is what the tour needs in order to run, so reading it back is the closest thing to an audit of our own work that exists.
- Positions come from the panorama records — one record, one place the camera stood, one station.
- Links come from the overlay records, each of which carries a click action: move somewhere, open a popup, open a window, play audio, or nothing at all.
- Distinct connections come from resolving every navigation overlay to its destination panorama and removing duplicates within the source panorama.
- Floor plans come from the map records, which is why we can say that one project of twelve has two and the rest have none.
- Station names come from the tour’s own English label file, verbatim. We arrange them into a sensible walking order for a page; we do not invent or improve them.
- The town comes from the map each tour itself embeds, except two whose own descriptions name the place. The reading of coordinates to a town is ours, and the project pages say so.
Nothing here describes the software we build with, and that is deliberate — what matters to you is the folder you receive and what is verifiably in it. What you actually receive on the last day opens the folder and lists it.
Three numbers, not one
| Figure | What it counts | Where it is used |
|---|---|---|
| 1,614 | Every overlay of any kind placed on a panorama | The “navigation and information hotspots” figure on the project pages |
| 1,441 | Overlays whose click action moves you somewhere | The navigation figure — included in every tour, unlimited, never charged |
| 696 | Distinct A-to-B connections after duplicates collapse | The billable unit for analytics, at €0.50 each |
| 146 | Overlays that open information rather than move you | Build effort, and the main driver of how long a tour takes |
| 27 | A window link, an audio trigger, and overlays with no click action | Reported rather than folded into a rounder number |
1,441 plus 146 plus 27 equals 1,614. If a page on this site quotes one of these without saying which, that is a mistake and we would like to know.
Publishing all four together was a decision rather than an accident. The largest is the most flattering, and a studio quoting “1,614 hotspots” while billing on 696 has a contradiction a buyer can find in one click. The reconciliation lives on arrows, connections and popups so that every other page can point at it.
The traps it caught
Video placements are not videos, and are not 360°
The university building’s tour carries four video placements. An earlier draft of its project page read “4 · 360° videos”. Both halves were wrong: the four placements point at three flat clips, at 800×450 and 1456×832, and they are the institute’s own promotional reel playing on the televisions that are physically inside the building. A genuine 360° video is 2:1. Checking the dimensions is what caught it, and the page now says the tour has no 360° video at all — which is true of all seventeen.
A station list cannot be derived from station names
One seafront shop tour names all six of its positions with the same words. Publishing that list would have printed one phrase six times; inventing six different names would have been fiction. So that project page publishes no station list and says why. Two other tours label their positions in Albanian, and their pages mark the names as translated rather than passing our English off as the tour’s own.
Overlays and positions are a mixed unit, and dividing them is meaningless
It is tempting to publish “overlays per station” as a density figure. It is arithmetic on a mixed unit. One seven-position restaurant has fifty overlays, but they are twenty-three navigation arrows and twenty-seven information popups — two different kinds of work in one ratio. Density, where we publish it, is always distinct connections divided by positions.
Most of the tag data is not data
Overlays can carry tags, and one tour’s are populated properly. In the other sixteen, every overlay is untagged. So tags are usable as evidence about that one build and nothing else, and any archive-wide figure derived from them would be sixteen-seventeenths invented. We report the one and say the rest is empty.
The check that found nothing
The count also looks for orphaned navigation — an arrow pointing at a destination that is not in the tour, which is what a broken link looks like from the inside. Across all seventeen tours and all 1,441 arrows, that count is zero. It is not an impressive number and it is not a marketing claim. It is a check we ran on our own delivered work with no idea what it would say, and reporting a null result is part of the reason the other figures are worth anything.
Why any of this matters to you
Three reasons, in order of how much money is attached to them. The line we bill for analytics uses the smallest of the four figures, so how it is derived is your business. The counts on the project pages are checkable — every tour is public and ungated, and you can open one and count the arrows in a room if you want to. And the same discipline is what lets us refuse the statistics this industry circulates: it is easier to say no to an unsourced percentage when your own numbers came out of a file.
The full per-tour table is in seventeen tours in numbers, and what the connection count costs is in €0.50 a hotspot means about €1.07 a station.
Questions people ask
- How are virtual tour statistics like hotspot counts actually measured?
- In our case, by reading the delivered tour files themselves. Panorama records give the number of camera positions, overlay records give every clickable element and its click action, and resolving each navigation overlay to its destination gives the distinct connections once duplicates are removed. Nothing is estimated and nothing is recalled from memory, which matters because one of those figures is what an analytics line is billed on.
- Why do you publish three different hotspot numbers?
- Because they count three different things and all three are true. Across seventeen delivered tours there are 1,614 overlays in total, of which 1,441 move you somewhere, 146 open information and 27 do something else. The 1,441 arrows resolve to 696 distinct destinations once duplicates within a panorama are collapsed. Quoting only the largest would contradict the smallest, which is the one we bill on.
- Does your tour count include 360° video?
- No, and none of our published tours contains a 360° video. One tour carries four placements of flat promotional clips that play on televisions inside the building itself, at 800×450 and 1456×832 — a real 360° video has a 2:1 aspect ratio, which is how the difference was caught. Video placements are counted separately from hotspots and are never reported as videos.
- Can I verify these numbers myself?
- Partly, and that is the point. Every tour behind these figures is public, ungated and linked from the project pages, so you can open one and count the arrows in a room. What you cannot do from outside is see the deduplication, which is why the collapse rate is published per tour rather than only as an archive total.