HEATCHECK Sign in

Methodology

How HeatCheck measures demand

The rules are written down, versioned and applied to every venue the same way. A change to a rule is a new model version, never a silent edit.

The slot

The atom of measurement is the slot: one bookable start time of one pool of interchangeable units, with a capacity counter. A unit is whatever the venue sells — an admission, a class spot, a sauna seat, a 15-minute private-room block — and each venue declares its own.

Polling

  • Every slot is polled every 5 minutes from two days before its date (today, tomorrow and the day after) until it starts: 288 polls a day. That is the standard; the exception is below.
  • Slots three to nine days ahead are polled hourly wherever the booking platform accepts a date window.
  • A poll is one bounded set of requests to the venue’s public booking calendar, with an honest user agent, no logins and no private APIs. Failed polls are recorded, never dropped.
  • Heavy captures (a headless browser) may poll every 10 or 30 minutes; the venue declares it and its staleness rules scale with it.

Raw is truth

Every response body is stored verbatim, compressed and addressed by its SHA-256 hash, before it is parsed. Archives are never edited or deleted. Observations, runs, models and figures are a rebuildable index over those archives, so any number can be traced back to the payloads it came from.

From inventory to sales

  • Unavailable units U = capacity C − remaining R, at every poll.
  • Between two polls at most 20 minutes apart with the same capacity, a rise in U is a contraction: units sold. A fall is a reopen.
  • Longer gaps, unknown polls or a capacity change make a change ambiguous; it is kept, labeled, never guessed.
  • Units already gone at the first poll were booked before HeatCheck saw the slot: they count toward the final state, never toward observed flow.
  • The final state counts only if it was seen within 20 minutes of the start. Otherwise the slot is stale, and its sold units are a modeled range from the last state seen up to capacity.
  • Every slot satisfies a conservation identity: the change in U equals contractions minus reopens plus signed ambiguous change.

Figures

  • Utilization: capacity-weighted sell-through at entry, Σ sold ÷ Σ capacity, with the share of capacity whose final state was seen (coverage).
  • Revenue (GBV): units sold × price realized, from posted prices, packages and memberships with cited sources, as a log-normal estimate with P10, P50 and P90.
  • Grades A–D: how tight an estimate’s interval is.
  • Market totals: venue revenues added as independent estimates (Fenton–Wilkinson); market utilization as the unit-hour weighted mean. Units of different kinds never add.
  • Next-day forecast: each open slot’s current bookings plus the pickup comparable completed slots showed from the same lead time; published only when at least 80 % of the open capacity has comparables, otherwise withheld.

Unknown is never zero

Missing, invalid or conflicting observations stay unknown. They widen intervals and lower coverage; they are never drawn as cold or counted as unsold. Prices are never backdated: a quote applies from the poll that first saw it.

Versioned, proven models

Models are pure, versioned functions. A venue supplies parameters — each with a source and a reason — and a proof that its raw payloads map onto the model’s inputs, checked by hand arithmetic and automated tests. A released version is frozen; a changed formula is a new version that venues adopt explicitly.

Work with HeatCheck

Platform accounts are by invitation, and research is scoped per engagement. Write with your company, the venues or markets you care about, the decision you are making and when.

Email [email protected]