Skip to content

How it works

A model you can inspect, not a black box.

LocalPulse separates your normal week from everything that pushed it around, measures each push on your own data, and shows you what it can’t explain.

  1. 01

    Signals

    Weather, holidays, term dates, events, news and visitor-market holidays for your town, kept in a shared calendar.

  2. 02

    Your history

    Daily totals from your own export. Optional booking dates and customer counts by country.

  3. 03

    Model

    Your normal week and season, plus the measured effect of each driver.

  4. 04

    Explain & forecast

    Each day split into drivers and an unexplained share; the days ahead with the reason attached.

The model in one line

log(demand) = your baseline + Σ driver effect × driver value + noise

baseline = level + day of week + time of year + trend

1. A normal day, for your business

Everything starts from a baseline fitted to your own history: a level, a shape for the days of the week, a smooth curve for the time of year, and a slow trend. Together they say what an ordinary Tuesday in March looks like for you.

The baseline is what lets us say a day was busy for you, rather than busy compared with an industry average.

2. Drivers that are zero on an ordinary day

Each date gets a set of driver values: warmth or cold against the monthly normal for your town, light and heavy rain, wind, sunshine, public holidays and the eve before them, school holidays, payday weekends, event pressure, disruption, local news intensity and the share of your visitor markets on holiday.

Because demand is modelled on a logarithmic scale, each driver’s effect comes out as a percentage you can read directly: “heavy rain, −18%” rather than an abstract coefficient.

Event pressure combines an event’s expected attendance, its distance from you and a rating of how much that kind of crowd uses your kind of business. A conference matters to a hotel next door; a fun run matters to the café on its route.

3. Sensible starting points, then your data

Every driver starts from an assumption for your type of business and is pulled away from it only as far as your own data supports. That is what stops a café with three months of history from concluding that rain is good for trade because of one wet festival weekend.

Those starting points improve over time: we combine the learned effects of businesses of the same type, as anonymous medians, so each new business starts from a better place. Only the percentages are pooled, never anyone’s figures.

4. One strange day doesn’t bend the rest

Days the model can’t explain at all (a burst pipe, a private hire, a till that didn’t export) are down-weighted in a second pass, so a handful of one-offs don’t distort every other estimate.

5. Attribution, with the gap left visible

For any day, the difference between what happened and the baseline is split across the drivers. Whatever is left over is shown as unexplained, in grey.

A large unexplained share is information: either something happened that we don’t yet track, or the data needs checking. For those days you can ask LocalPulse to research what happened. It searches for local reports for that date, checks the evidence against the dates and the location, and either logs a verified event or puts a suggestion in front of you to confirm.

6. Forecasts, and how far to trust them

For the next 16 days the forecast uses a live weather forecast for your town. Beyond that, typical weather is assumed and the range widens, while known events and holidays still move the line.

We don’t publish a headline accuracy figure, because it would say nothing about your business. Instead each dashboard backtests the model: it hides your most recent weeks, forecasts them from the data before, and shows you the error next to that of a simple “same weekday, last four weeks” average. If the simple average does better on your data, the dashboard says so. A backtest needs about six months of history.

7. Where AI is used, and where it isn’t

The demand model, the arithmetic and the dates are ordinary, inspectable code. AI is used for reading and writing:

Claude, Anthropic’s model, finds the public pages that list what is on in each town (once per town), researches days the model can’t explain, and writes the plain-English summaries, grounded in the numbers on screen.

System One, a fast classification model from TypeSafe, reads every dated line from those pages and every local headline, and returns typed answers with a confidence: is this local, which way does it push demand, when does it hit? Code then applies thresholds: confident items are logged, uncertain ones become suggestions for you.

8. Where the signals come from

Weather comes from Open-Meteo, public holidays from Nager.Date and the news signal from the GDELT Project. Events come from public event listings: venue and fixture pages, council and tourism calendars, and feeds, read daily and shared by every business in the town. You can add pages we’ve missed, or hide ones you don’t want for your business.

We identify ourselves honestly when reading public pages and don’t try to get around sites that block automated access.

9. What it can’t do

LocalPulse measures association, not proof. When two drivers usually arrive together (warm weather and school holidays, say) it can struggle to separate them until your history contains days where they don’t.

It needs history to learn your business: three months to start, a year or more to see the seasons. Event coverage depends on what is published locally and is thinner in small towns. And it can’t know about things nobody wrote down, which is why logging your own events helps.

Check the method on a demo.

Open any demo day and see the drivers, the unexplained share and the backtest for yourself.