Reporting layer that wouldn't scale.
Operational reporting was anchored on a SQL Server warehouse that had grown for a decade. Multi-million-row tables behind dashboards used by service operations to monitor SLA adherence and patient-impact metrics — and the dashboards were getting slower every quarter.
Key symptoms:
- Power BI refreshes timing out during business hours
- Stored queries with hand-tuned joins that no one alive understood
- Semantic model bloated with many-to-many fixes and shadow measures
- No clear path to incremental load — full refresh every time
Rebuild the layer, don't lift-and-shift.
Migrated source-of-truth queries to Snowflake views, with companion logical models in OAC. Rewrote stored queries from scratch instead of porting them — preserved business rules, dropped the legacy scaffolding.
-- representative Snowflake view (anonymized) CREATE OR REPLACE VIEW ops.encounter_sla_v2 AS SELECT e.encounter_id, e.patient_uid, DATEDIFF('hour', e.opened_at, COALESCE(e.resolved_at, CURRENT_TIMESTAMP())) AS hours_open, CASE WHEN e.resolved_at IS NULL THEN 'open' ELSE 'closed' END AS status FROM raw.encounters e WHERE e.opened_at >= DATEADD('year', -2, CURRENT_DATE());
- Staged ingestion with incremental loads on warehouse-friendly clustering keys
- Converted complex DAX → Oracle Logical SQL; validated via reconciliation tests
- Rebuilt Power BI semantic model — normalized relationships, killed shadow measures
Faster dashboards, cleaner model.
Most importantly, the semantic model became diagnosable. New measures land in a day instead of a week, and reconciliations against source-of-truth are routine instead of dramatic.