If a metric is not defined here for the layer you care about, it is not shown on the dashboard. We refuse to fabricate rollups from missing data.
Layers
Higher layers never query field-level data live. They read pre-computed rollups written by a scheduled job. This keeps executive dashboards fast and predictable, and it makes the aggregation reproducible for audit.
Rollup categories
Each metric on a higher-layer dashboard belongs to one of five categories. The category decides how it aggregates.What rolls up cleanly, and what does not
Rolls up cleanly
- Area totals
- Area-weighted indices (NDVI, NDMI, NDRE)
- Health distribution buckets
- Alert counts by severity and category
- Production forecast (yield-per-ha × area)
- Verification counts and acceptance rate
Does not roll up
- Individual rule card severity (a field is HIGH; the estate is not)
- Scout task assignees (person-level, not areal)
- Specific VRA prescriptions (field-specific)
- Named recommendations (rule cards fire per field, not per estate)
Forecast layer
Regional Forecast and National Overview add a forecast on top of the rollup. This is where satellite phenology, weather, and historical yield combine to project production forward. The forecast is not a single point. Every projection carries:- Central estimate - the median of the yield model output
- Confidence band - P10 to P90 range
- Confidence label - High, Medium, Low, based on the drivers listed below
Confidence degradation
Confidence is highest at the field level and drops as you climb. Reasons:
The Confidence chip on every regional and national card is the minimum of its input chips. One weak input drags the whole answer down. This is intentional. Executives should see the weakest link, not an optimistic average.
Refresh, freshness, and lag
Every rollup card shows aLast updated timestamp and a Data through timestamp. They are not the same.
- Last updated - when the aggregation job wrote this rollup
- Data through - the newest field observation that was included
Data through is more than one refresh cycle behind expected, the card renders a Stale badge. Common causes:
- Persistent cloud cover blocking imagery for a share of area (“cloud debt”)
- Fields with paused monitoring (billing, subscription, or manual pause)
- Rule card upgrade in progress: fields still on old rule versions are excluded until they migrate
Privacy and access rules
Aggregation does not relax field-level access rules. If a viewer cannot see field A directly, field A’s contribution is:- Included in extensive sums and area-weighted means (the viewer sees the aggregate number)
- Excluded from any drilldown, list, filter, or export that would reveal per-field identity
- Excluded from any bucket smaller than the k-anonymity threshold (default
k = 5). If a regional slice contains fewer than 5 fields, that slice collapses into “Other” until the count is met.
Reproducibility
Every rollup card can be explained: click any number and the platform shows:- The list of child rollups that fed into it
- The aggregation rule that was applied (sum, area-weighted mean, etc.)
- The rollup job’s run timestamp and the input
Data throughcutoff - Any children that were excluded and why (stale, paused, k-anon threshold, missing phenology)
Related
- Data Model - the field-level schema everything rolls up from.
- Risk Model - rule cards fire per field; higher layers see counts and rates.
- Verification Model - how aggregated numbers stay auditable.
- Estate Group, Regional Forecast, National Overview - the three dashboards that consume this contract.