How it works
How the daily score works.
Each day gets a number from 0 to 100 — five weighted parts, nothing imputed. We score the day, not the person.
Five buckets, 100 points.
| Bucket | Points | What it measures |
|---|---|---|
| Calorie fit | 30 | Distance from your calorie target. Within ±5% earns all 30 points, stepping down through ±10%, ±15%, ±25% and ±40% to zero. Symmetric — under-eating is not rewarded. |
| Macro adequacy | 20 | Mostly protein: 12 points, ramping up between 60% and 100% of your goal. Fat and carbs cost points (4 each) only once they run more than 25% over. |
| Limit nutrients | 25 | Sugar (10), sodium (8), saturated fat (7). Graded penalties past the goal — slopes, not cliffs. |
| Fibre | 10 | The encouragement bucket: points for approaching your fibre goal, and never a penalty. |
| Processing | 15 | NOVA classification, weighted by calories: unprocessed calories keep 100% of their share, minimally processed 90%, processed 60%, ultra-processed 10%. |
Never imputed.
When data is missing, the score doesn’t guess. Per-nutrient coverage is pro-rated by calories, and when less than half the day’s calories carry NOVA data, the processing bucket is dropped entirely and the rest rescales to 100 — so scores stay comparable across days. A confidence value ships alongside the score, stating how much of the day it actually saw.
Sensible defaults, visible opportunities.
No targets yet? The score uses WHO-aligned defaults — 2,000 kcal, 50 g protein, 28 g fibre, 50 g sugar, 2,300 mg sodium, 22 g saturated fat — and says so. The breakdown also flags your biggest opportunity: the bucket with the most points left on the table, and only when you earned less than half of it. Things you’re already doing well are never nagged about.
Where the design comes from.
The structure borrows from three established systems: HEI-2020 for the 100-point adequacy-plus-moderation split, Nutri-Score for graded penalties on sugar, saturated fat, and sodium, and NOVA for the processing classification. The weights and thresholds above are Caaals’ own.
Questions
What is a good score?
The score compares the day with your own targets, so there is no universal pass mark. A day at target on calories, protein, and the limit nutrients, eaten mostly as whole food, lands high. An over day drops and the breakdown says exactly why — on the Caaals landing example, a Friday that ran 330 kcal over scored 58, and that is all that happens.
Does missing NOVA data hurt my score?
No. When less than half of the day's calories carry NOVA data, the processing bucket is dropped entirely and the remaining buckets rescale to 100. Missing data is never scored against you, and it is never guessed either — a confidence value ships with the score so you can see how much of the day it actually saw.
What if I haven't set any goals yet?
The score falls back to WHO-aligned defaults — 2,000 kcal, 50 g protein, 28 g fibre, 50 g sugar, 2,300 mg sodium, 22 g saturated fat — and tells you it is using them. Set your own targets and it scores against those instead.
Related: where the nutrition numbers come from and how the weight projection works.
Score today. Then tomorrow.
Free to start · no card required