Coverage Report — daily_revenue
Generated from Scope x Basis matrix on 2026-06-29. Platform: dbt.
Tests generated
| # | Scope | Basis | Check | Severity | Output |
|---|---|---|---|---|---|
| 1 | row-level | absolute | amount must be >= 0 | error | schema.yml (dbt_expectations.expect_column_values_to_be_between) |
| 2 | aggregate-level | relative | sum(amount) within 2 std-dev of trailing-30-day mean | error | tests/daily_revenue_amount_sum_within_2_stddev.sql |
| 3 | aggregate-level | temporal | daily row count within 20% of prior day | warn | tests/daily_revenue_row_count_within_20pct_of_prior_day.sql |
| — | row-level | human | spot-check 5 rows against the billing UI | skip (manual) | noted in schema.yml, not automated |
Coverage by scope
Row-level: ✓ (1 test) [+1 human check, manual]
Aggregate-level: ✓ (2 tests)
Transformation-level: ✗ (0 tests — GAP)
Coverage by basis
Absolute: ✓ (1 test)
Relative: ✓ (1 test)
Temporal: ✓ (1 test)
Human: — (1 noted, not automatable)
Gaps flagged
- Transformation-level scope: 0 automated tests. Every transformation-level cell in the matrix is empty. Per the framework definition-of-done (at least one check per scope level), this scope is uncovered. Recommend adding a source-fidelity check (e.g. sum(amount) downstream reconciles to the upstream billing source).
Dependencies / notes
- Tests 2 and 3 assume a date column
revenue_dateon the model. Adjust if the date grain column is named differently. - Test 3 (temporal) is set to
warnseverity per the basis mapping (temporal -> warn). It uses a window function over the model's own history; no snapshot table required because daily_revenue retains historical days. If the model is truncated/replaced each run, point the query at adaily_revenue_snapshotinstead. - The human sanity check is a manual reminder only — no test code emitted.