# Nova Metrics Views — PowerBI Data Dictionary This document is the column-level data dictionary for the PowerBI export views in `metrics/powerbi/`. Each fact/dimension table and placeholder view is documented with: column, type, source/formula, unit, and grounded/derived/deferred status. ## Fact tables (grounded) ### fact_run | Column | Type | Source | Unit | Status | |--------|------|--------|------|--------| | run_id | TEXT | run_manifest.py | — | grounded | | contract_id | TEXT | run_manifest.py | — | grounded | | environment | TEXT | run_manifest.py | dev/qa/prod/dr | grounded | | started_at | TEXT | run_manifest.py | ISO8601 | grounded | | completed_at | TEXT | run_manifest.py | ISO8601 | grounded | | exit_code | INTEGER | run_manifest.py | — | grounded | | outcome | TEXT | run_manifest.py | succeeded/failed | grounded | | confidence_score | REAL | confidence_signal.py | 0.0–1.0 | grounded | | confidence_band | TEXT | confidence_signal.py | pass/warn/block | grounded | | hitl_block | INTEGER | hitl_gates.py | 0/1 | grounded | | cost_estimate_usd | REAL | infracost_adapter.py | USD | grounded (Infracost) | | decision_id | TEXT | decision_ledger.py | — | grounded | ### fact_capability | Column | Type | Source | Unit | Status | |--------|------|--------|------|--------| | capability_id | TEXT | REGRESSION_REPORT.json | CAP-NNN | grounded | | run_id | TEXT | REGRESSION_REPORT.json | — | grounded | | name | TEXT | REGRESSION_REPORT.json | — | grounded | | status | TEXT | REGRESSION_REPORT.json | Verified/Decayed/Broken/Skipped | grounded | | tier | TEXT | REGRESSION_REPORT.json | local/live-aws/lifecycle-pipeline | grounded | | duration_ms | REAL | REGRESSION_REPORT.json | milliseconds | grounded | | detail | TEXT | REGRESSION_REPORT.json | — | grounded | | run_at_utc | TEXT | REGRESSION_REPORT.json | ISO8601 | grounded | ### fact_decision | Column | Type | Source | Unit | Status | |--------|------|--------|------|--------| | decision_id | TEXT | decision_ledger.py | = run_id | grounded | | run_id | TEXT | decision_ledger.py | — | grounded | | chosen_action | TEXT | confidence_signal.py | pass/warn/block | grounded | | confidence | REAL | confidence_signal.py | 0.0–1.0 | grounded | | alternatives | TEXT (JSON) | confidence_signal.py | perInput breakdown | grounded | | human_override | INTEGER | hitl_gates.py | 0/1 | grounded | | outcome | TEXT | decision_ledger.py | succeeded/failed/pending | grounded | | event_time | TEXT | decision_ledger.py | ISO8601 | grounded | ### fact_test | Column | Type | Source | Unit | Status | |--------|------|--------|------|--------| | run_id | TEXT | junit XML | — | grounded | | total_tests | INTEGER | junit XML | count | grounded | | passed | INTEGER | junit XML | count | grounded | | failed | INTEGER | junit XML | count | grounded | | errors | INTEGER | junit XML | count | grounded | | skipped | INTEGER | junit XML | count | grounded | | duration_s | REAL | junit XML | seconds | grounded | | coverage_pct | REAL | coverage.json | % | grounded | | collected_at | TEXT | collector.py | ISO8601 | grounded | ### fact_cost_estimate | Column | Type | Source | Unit | Status | |--------|------|--------|------|--------| | run_id | TEXT | infracost_adapter.py | — | grounded | | delta_usd | REAL | Infracost | USD/month | grounded (pre-apply) | | total_monthly_usd | REAL | Infracost | USD/month | grounded (pre-apply) | | available | INTEGER | infracost_adapter.py | 0/1 | grounded | | estimated_at | TEXT | infracost_adapter.py | ISO8601 | grounded | ### fact_lifecycle | Column | Type | Source | Unit | Status | |--------|------|--------|------|--------| | module | TEXT | lifecycle report | — | grounded | | environment | TEXT | lifecycle report | — | grounded | | phase | TEXT | lifecycle report | apply/modify/destroy | grounded | | result | TEXT | lifecycle report | pass/fail | grounded | | duration_ms | REAL | lifecycle report | milliseconds | grounded | | run_at | TEXT | lifecycle report | ISO8601 | grounded | ## Dimension tables ### dim_capability | Column | Type | Source | Status | |--------|------|--------|--------| | capability_id | TEXT | REGRESSION_REPORT.json | grounded | | name | TEXT | REGRESSION_REPORT.json | grounded | | tier | TEXT | REGRESSION_REPORT.json | grounded | | source_milestone | TEXT | REGRESSION_REPORT.json | grounded | ### dim_milestone | Column | Type | Source | Status | |--------|------|--------|--------| | milestone | TEXT | REGRESSION_REPORT.json | grounded | | phase | INTEGER | REGRESSION_REPORT.json | grounded | | tag | TEXT | — | grounded | | completed_at | TEXT | REGRESSION_REPORT.json | grounded | ## Placeholder views (deferred — 8 views, headers only, no data) ### placeholder_live_infra_health - **Blocking decision:** D-096 - **Description:** Live infrastructure health (ECS running count, ALB 5xx, RPS) - **Columns:** timestamp, resource_id, resource_type, running_count, healthy, downtime_seconds ### placeholder_live_outbox_rate - **Blocking decision:** D-096 - **Description:** Live outbox write rate / ledger append latency - **Columns:** timestamp, contract_id, write_latency_ms, append_count ### placeholder_tamper_evident_checkpoints - **Blocking decision:** D-083 - **Description:** Tamper-evident ledger checkpoints / JWS signature rate - **Columns:** timestamp, checkpoint_id, jws_signed, object_lock_enabled ### placeholder_onboarding_funnel - **Blocking decision:** D-113/D-114/D-119 - **Description:** Onboarding funnel: requested → granted conversion - **Columns:** timestamp, consumer_repo, requested_environment, status, granted_at ### placeholder_drift_detection - **Blocking decision:** D-096 + no scheduler - **Description:** Drift detection (scheduled terraform plan -detailed-exitcode) - **Columns:** timestamp, workspace_id, drift_count, auto_reverted, detection_cycle ### placeholder_live_cur_reconciliation - **Blocking decision:** D-096 - **Description:** Live cost CUR reconciliation - **Columns:** timestamp, resource_address, actual_usd, baseline_usd, saved_usd ### placeholder_sla_downtime - **Blocking decision:** D-096 - **Description:** SLA / unplanned downtime - **Columns:** timestamp, service, uptime_pct, downtime_minutes, slo_target ### placeholder_predictive_reactive - **Blocking decision:** future emitter - **Description:** Predictive vs Reactive ratio - **Columns:** timestamp, action_id, label, trigger, count