Healthcare, client name withheld · 2025–2026
Hospital Billing, Modeled Once
Led a cross-functional team through a hospital billing engagement, refactoring 100+ fact and dimension tables, data marts, and Power BI semantic models sourced from Epic Clarity and Caboodle.
- Databricks
- SQL
- Power BI
- Epic Clarity / Caboodle
- Dimensional modeling
- fact and dimension tables refactored off Epic Clarity and Caboodle
- 100+
- delivery owned, from Epic source through to the Power BI semantic model
- End-to-end
fact and dimension tables refactored off Epic Clarity and Caboodle
delivery owned, from Epic source through to the Power BI semantic model
The problem
Revenue cycle reporting ran directly against Epic Clarity and Caboodle. Those schemas are built for the EHR’s convenience rather than for analysis, so every new question became another bespoke query written against raw source tables by whoever asked it. The predictable result: reports that disagreed with each other, no shared definition of a billed encounter, and a reporting layer where fixing a number in one place fixed it in exactly one place.
The approach
I led a cross-functional team of data engineers and visualization developers (a deliberately different problem from leading either alone) through recreating and refactoring 100+ fact and dimension tables into a modeled layer, rebuilding the data marts on it, and reworking the Power BI semantic models so a definition lives in one place and every report inherits it. Running both disciplines together mattered more than the modeling did: the failure mode on this kind of work is a clean warehouse with a BI layer still quietly redefining metrics on top of it.
The outcome
Revenue cycle reporting now resolves to one modeled layer instead of direct queries against the EHR, so a definition changes once. The harder-won outcome was organizational: the visualization developers stopped being downstream consumers of the model and became co-owners of it, which is what stops the old pattern reappearing six months later.