NOVUS / RESTAURANT

Documentation

Reading the dashboard

The dashboard shows two unrelated bodies of evidence side by side, and reading it well starts with knowing which half a panel comes from.

Last reviewed against the product on .

The dashboard puts two unrelated bodies of evidence on one screen: the purchases your organization imported, and the market observations providers published. Reading it well is mostly a matter of knowing which half you are looking at, because the two are never combined into a single figure.

Two halves, two clocks

The header carries a separate date for each half rather than one "last updated" line. That is deliberate. Your purchasing data can be current while a provider has been quiet for months, and a single freshness date would average those two facts into something true of neither.

Which body of evidence each dashboard panel is built from
PanelReads fromDated by
Purchasing pulseYour imported purchase recordsLatest accepted purchase date
Highest weekly impactYour imported purchase recordsLatest accepted purchase date
Lower observed supplier pricesYour imported purchase recordsLatest accepted purchase date
Market evidence metricsPublished provider observationsLatest observation date
Market pulse and Novus InsightPublished provider observationsLatest observation date
Priority watchlistPublished provider observationsLatest observation date
Source healthProvider check resultsLatest check date

Measured from app/app/dashboard/page.tsx.

The purchasing half

Every purchasing figure is measured backwards from your most recent purchase date, not from today. An organization that stopped importing in spring still sees a full weekly spend figure, because the window moved with the data rather than with the calendar. The date beneath each tile is what tells you which it is.

Usage window
56 days
counted back from your latest purchase, not from today
Shortest window used
7 days
the floor when your records span less than that
Price history kept per product
52 dates
one unit price per purchase date
Currencies
Kept apart
totals are joined with a plus sign and never converted

Measured from src/lib/purchasing/intelligence.ts.

Products increased counts only products that have a price to compare against. A product bought once has no baseline, so it is counted neither as increased nor as unchanged, and the line beneath the tile says how many products do have a baseline. Where a price moved but no reliable weekly quantity could be established, the impact reads as needing usage rather than showing an estimate.

The market half

A market signal exists only where two observations match on country, region, city, market, provider, item name, economic level, unit and currency. Any difference makes them different series rather than a movement, which is why a provider can publish steadily and still produce no signal.

Sources supplying is a ratio over every configured provider. Both current and delayed sources count in the numerator, because a delayed source is still serving real persisted observations; only failed and unchecked providers fall out of it. Mean confidence is the arithmetic mean of the per-signal scores below it, which makes it an average of evidence quality and not a probability that anything is correct.

Coverage of expected history
35%
of each signal's confidence score
Freshness against cadence
25%
penalised only once a source is past its expected interval
Source reliability
25%
the lower of the two observations being compared
Match quality
15%
full marks, because only strict comparison groups reach this point

Measured from src/lib/analytics/engine.ts.

Why the watchlist is ordered the way it is

The priority watchlist is not sorted by money. It is sorted by a score that mixes how far a price moved with how much you spend on that item and how good the evidence is.

Movement severity
55%
reaches full severity at a movement of 25% and is capped there
Matching spend weight
30%
zero when no purchase record matches the item and currency
Confidence
15%
the evidence score above, rescaled

Measured from src/lib/analytics/engine.ts.

The spend match is exact. A provider's item name is reduced to lowercase letters and digits and must equal your own reduced item name, in the same currency, before your spending counts towards priority at all. Where it does not match, the spend term contributes nothing rather than an assumed average. The practical consequence is worth stating plainly: a sharp movement in something you have never bought can outrank a smaller movement in your largest line.

What the dashboard will not tell you

An empty dashboard is a real reading rather than a fault. The page shows no figures until evidence is accepted, and it never fills the gap with samples, because a sample that looks like a measurement is worse than a blank.

Where the numbers can be checked

Each market signal names its provider, level, observation date and official source, and links out to it. For the reasoning behind each half, see how a price change is detected, reading the analytics evidence table and what a saving is.