Backfill
This is the step people miss, so here is the why up front: charts in Asemic read a precomputed entity table: one row per user per day, built in your warehouse. Publishing defines what to compute; backfilling computes it for a date range. Until a day is backfilled, charts show a gap for that day. A published model with no backfill is a perfectly correct model with nothing to show.
Where
Open the ⋮ menu → “Materialization coverage…”. The dialog shows a per-day heatmap (full, partial, or none) so you can see exactly which days exist.
Select a range and use the backfill buttons:
- “Backfill latest”: the most recent unmaterialized days
- “Backfill selected”: exactly the range you selected
- “Backfill incomplete”: days that are partial
- “Backfill whole period”: everything in view
Progress survives closing the dialog: the header shows a chip with “backfilling X/Y” and an estimated time remaining.
The in-product nudge
Whenever any of the last 7 days isn’t materialized, a card appears on the Data Model page: “Backfill N recent days” → “Review & backfill…”. Today is excluded: it is still being written, so it materializes on the next day’s run.
How much to backfill
Start with the range your dashboards actually need: recent weeks for activity metrics, further back if you want retention and LTV curves for older cohorts. You can always extend the range later; coverage is per-day, so backfills are incremental, not all-or-nothing.
The payoff
When your first backfill completes, open a dashboard: your metrics are charting real data from your own warehouse. Onboarding is done. To understand what got built along the way, read The data model and Materialization.