From Question to Visuals: Data Insights with Fabric, Rayfin & GitHub Copilot
Conversational→Automatic & Governed→Generative UI
Microsoft · October 2026
Ask anything, right where you already work.
In the flow of work
Microsoft 365 Copilot and GitHub Copilot in VS Code and the CLI. No new tool to open.
One semantic model, any source
Every answer uses the same Fabric measures, relationships and security.
Grounded, not guessed
MCP tools read the schema and run DAX, so the numbers come from the model.
The catch: answers arrive as a wall of text, with only a little bit of visuals.
- cms_schemaHAI · PSI90 · HCAHPS✓
- run_daxSIR by infection, 2019–2025✓
- show_chartbar · 6 rows✓
Insights that find you, told for the role you play.
Executive takeaways, automatically
Headlines, narratives and KPIs are regenerated from the semantic model at every refresh.
Persona-based views
One governed model tells a different story for each role.
Published on Fabric Rayfin
A Fabric app with Fabric sign-in and protected hosting.
Hospital infections are at a seven-year low. One surgical infection is moving the other way.
Across 3,896 reporting hospitals, five of the six infections CMS tracks are below their 2019 level, led by C. diff and catheter infections. Hysterectomy surgical-site infections are the exception: up 19% since 2019 and above the national baseline since 2023.
- Device-associated infections have fully recovered from the pandemic surge.
- 1,824 hospitals now beat the national benchmark for C. diff.
- Hysterectomy infections crossed the 1.0 baseline in 2023, and 43 hospitals are flagged worse than national.
Six infections, 2019–2025 National SIR · 1.0 = expected
Recommended focus
- Hysterectomy surgical-site infections. Start a bundle review at the 43 hospitals flagged worse than national.
- Colon surgery. Flat at 0.87 since 2019; keep it on watch.
Six infections, one shared shock and an uneven recovery
Device infections spiked in 2020–21 as COVID-19 stretched intensive care, then fell below their 2019 level. Surgical-site infections never had that spike, and hysterectomy drifted upward instead.
SIR by report year Σ observed ÷ Σ predicted
Every infection improved since 2019 except hysterectomy surgical-site infections
Flagged worse than national, 2025 Top 6 of 43 · hysterectomy SIR
Where to act
- Georgia first. It has the most flagged hospitals (7).
- Surgical-site bundle review at all 43 flagged hospitals.
- Re-check at the next refresh. This view regenerates automatically.
Every visual explains itself, and anyone can check it by hand.
One click on Explain
Every visual carries its own explanation, right next to the chart.
How it's calculated
The source, the exact DAX that ran, the rules, and every number the chart plots.
Try it yourself
Recalculate by hand, re-run the query in Fabric, or trace it back to CMS's own files.
Six infections, one shared shock
National pooled SIR (Σ observed ÷ Σ predicted), report years 2019–2025.
Where each infection stands vs. 2019
National SIR, 2019 (○) to 2025 (●); ◆ pandemic-era peak.
Hospitals flagged vs. benchmark
CLABSI · 95% CI wholly below or above 1.0.
Fig 1 · How “Six infections, one shared shock” was built
Each line is the national pooled Standardized Infection Ratio (SIR): every infection hospitals reported, divided by every infection CDC’s risk models predicted for those same hospitals. Below 1.0 means fewer infections than predicted.
- 1
Source
CMS Care Compare HAI file, loaded into semantic model CMS, table
HAI. - 2
Query
One DAX query sums observed and predicted cases per infection, by
REPORTYEAR. - 3
Calculate
Pooled SIR = Σ observed ÷ Σ predicted. No weighting, filtering or smoothing.
- 4
Draw
One point per report year. Rounded to 2 decimals only when displayed.
The query
- Semantic model
- CMS · 222a5f01-1ba4-4870-ad84-220a7b1745b0
- Workspace
- contoso-quality · dec44340-2960-4ab8-8ae9-3a7ddda348a9
- API
- POST api.powerbi.com/v1.0/myorg/…/executeQueries
- Run
- Oct 13, 2026 14:10 UTC, signed in with the Azure CLI
EVALUATE
SUMMARIZECOLUMNS (
HAI[REPORTYEAR],
"o1", SUM ( HAI[HAI_1_NUMERATOR-Central Line Associated Bloodstream Infection (ICU + select Wards): Observed Cases] ),
"p1", SUM ( HAI[HAI_1_ELIGCASES-Central Line Associated Bloodstream Infection (ICU + select Wards): Predicted Cases] ),
"o2", SUM ( HAI[HAI_2_NUMERATOR-Catheter Associated Urinary Tract Infections (ICU + select Wards): Observed Cases] ),
…
)The numbers behind the chart
Why pooled, not an average of hospitals
CMS only publishes a hospital’s SIR when at least one infection is predicted, so many hospitals have no published SIR but are still in the totals. Pooling counts every infection once, which is how NHSN aggregates SIRs for groups of hospitals.
You don’t have to trust this dashboard, the semantic model, or this panel. Here are four independent checks, quickest first.
Recalculate by hand
≈ 1 minute- 2025: 10,805 ÷ 17,570.315 = 0.614958 → 0.61, the big number in the panel.
- Change: 0.614958 ÷ 0.684675 − 1 = −10.2% → −10%, the label under it.
Re-run the query in Fabric
≈ 5 minutes- In the Fabric portal, open workspace contoso-quality and semantic model CMS.
- Choose Write DAX queries, paste the query below and select Run.
- Observed, predicted and hospital counts should match exactly.
EVALUATE
SUMMARIZECOLUMNS (
HAI[REPORTYEAR],
"Observed", SUM ( HAI[HAI_1_NUMERATOR-…: Observed Cases] ),
"Predicted", SUM ( HAI[HAI_1_ELIGCASES-…: Predicted Cases] ),
"Pooled SIR", DIVIDE ( SUM ( HAI[…Observed Cases] ), SUM ( HAI[…Predicted Cases] ) )
)
ORDER BY HAI[REPORTYEAR]Trace it back to CMS’s own files
≈ 15 minutes- Download the report year’s snapshot from the CMS hospitals data archive.
- Open
Healthcare_Associated_Infections-Hospital.csvin Excel. - Observed: =SUMIFS(L:L, I:I, "HAI_1_NUMERATOR")
- Predicted: =SUMIFS(L:L, I:I, "HAI_1_ELIGCASES"), then divide.
An automated check repeats this for every infection and year: all 42 infection-years match exactly.
Sanity-check against CDC
optionalCDC’s HAI Progress Report publishes national SIRs from the same NHSN system. Expect the same direction and similar size, not identical values.
Visual-first insights, not a wall of text.
Ask in plain language
The answer arrives as a ranked chart and a short narrative, built from governed components.
Every visual is a doorway
Click any hospital to open its card, then Ask Copilot to go deeper.
A new visual, no new prompt
Copilot queries Fabric again and answers with a fresh chart and narrative.
run_daxCMS semantic model · run_dax · 616 hospitals rated, 43 flagged worseHysterectomy surgical-site infections, 2025
95% CI 2.68–7.42Ask Copilot whyClose
43 of 616 rated hospitals are flagged worse than national, and Georgia has the most (7). Beth Israel Deaconess leads at 5.25: 12 infections where 2.3 were predicted.
run_daxHAI · six infections · CMS 110008run_daxNational SIR by infection · 2025show_chartHospital vs nationalNorthside Hospital Cherokee: SIR by infection, 2025
It's the operating room, not the wards. Both surgical-site infections are flagged: hysterectomy 4.60 (15 vs 3.3 predicted) and colon 2.63 (29 vs 11.0).
Ward infections are under control. Central line, catheter, MRSA and C. diff are in line with or below national, and patients still rate it 4 stars.
A rare pattern. Only 3 of the 43 are flagged on both surgeries, and Northside Hospital in Atlanta is another. Start with a surgical-site bundle review.
Thank you. Questions?
Conversational→Automatic & Governed→Generative UI