Time series grouped per provider, per model and per service. Consumption renders only where a stamped usage record matches exactly; activity counts render labeled activity-proxy, never as consumption. Missing data stays a gap — no zero-fill, no interpolation, no inferred model versions.