Skip to content

Understanding your analytics

How the numbers are computed, what a blank cell means, and how to read the AI output.

3 min readUpdated 30 July 2026
Business prediction
A forecast that ships its own error rate
090180270actualforecast + interval
Holt’s exponential smoothing with a weekday index. The fit predicts a held-out tail first and reports the error it would have made; a fit that cannot beat “same weekday last week” is rejected rather than shown. Example shape.
Attribution
Which channel actually feeds the business
  • Direct / walk-in27%
  • Google Ads24%
  • Meta Ads20%
  • WhatsApp10%
  • Website10%
  • Other9%
Example distribution. Source and channel ROI compares spend against CRM outcomes rather than platform-reported ones — the two rarely agree.

The reporting layer makes a few deliberate choices that differ from other CRMs. They are worth understanding, because they change how you read the screen.

A blank is not a zero

Everywhere in the product, a metric that cannot be computed shows an em dash, not 0.

A conversion rate on a day when no leads were created is not 0% — it is undefined. A productivity score for someone with no comparable colleagues is not 0 — it is unmeasurable.

This makes some screens look emptier than you may be used to. It also means every number you *do* see is one the data actually supports.

Where the numbers come from

Reports read pre-computed daily rollups, not the live tables. This is why a report over twelve months returns instantly rather than scanning millions of rows.

The rollups are recomputed:

  • Nightly, for the day that just closed
  • On read, for today — so the current day is always live to the minute

The consequence: a report including today is exact; a report about last week is served from the rollup and identical every time you run it.

Days are your days

Every daily figure buckets by *your* workspace timezone. "Leads today" means today where your team is, not UTC.

Comparison periods

"vs previous period" is always an equal-length window ending the day before the current one starts. A 17-day range compares against the previous 17 days, not against last month.

"vs same period last year" shifts by 364 days at daily and weekly grain so that a Tuesday compares with a Tuesday. Retail weeks matter.

A trend direction is only reported when the fit actually explains the movement — R² of 0.3 or better. Below that the chart says "no clear trend" rather than calling noise a direction.

Forecasts

Projections use Holt exponential smoothing with a weekday index, and are scored against a held-out tail of your own series.

Every forecast carries its measured error rate. A projection showing ±34% typical error is telling you something real: treat it as a range, not a number.

The confidence band widens with the horizon, because uncertainty genuinely does.

Note
If there is not enough history to fit a model, the product says so rather than drawing a flat line. A forecast of zero and an absent forecast look very different, and only one of them is honest.

Anomaly detection

Runs nightly against the day that just closed. Each metric is compared against the same weekday over the previous eight weeks.

That weekday matching is the important part. A Sunday compared against a weekday-heavy average looks like a catastrophe every week; compared against previous Sundays it looks normal — and a genuinely bad Sunday still stands out.

Each finding states:

  • What was observed
  • What was expected
  • How far apart they are, in multiples of normal variation
  • A recommended first thing to check

Findings can be acknowledged or dismissed, and stay that way. An alert nobody can close becomes noise within a fortnight.

Productivity scores

Percentiles against the same role in your own workspace. 50 means the middle of your team.

There is no industry benchmark, because a good conversion rate for enterprise software and for a discount pharmacy differ by an order of magnitude, and a product that ships one is telling half its customers they are failing at a business it does not understand.

Below three comparable colleagues, no score is produced.

Utilization and unobserved time

Presence tracking splits a working day into three:

  • Active — real input observed
  • Idle — present but not interacting
  • Unaccounted — we genuinely do not know

Utilization is active ÷ (active + idle). Unaccounted time is excluded from both sides rather than quietly counted as idle, and the coverage figure tells you how much of the day was actually observed.

A 90% utilization built on twenty observed minutes is not the same claim as 90% across a full shift, and the product refuses to let those look identical.

Something unclear or missing? Tell us and we will fix the page — send us a note.

Understanding your analytics — Documentation — atomcrm.ai