SGA Metrics Registry — Review

One satellite-verified clock. Cube model: measures + dimensions + timeframe → canonical DAX.
Bridge: powerbi-bridge:3050
Dataset: e3fcdf32-39ee-4ddb-b8ac-aa620a15dd72
Compiled: 2026-05-03T23:11:03.445Z
Last probe: 2026-05-03T23:09:41.699Z

Reviewer checklist (per entry)

  1. Read the Definition + Aliases. Anything you'd call this metric and not find → flag a missing alias.
  2. Verify the Canonical DAX + Tables touched. Make sure it pulls the right field for what the name means.
  3. Compare Live observed against the matching tile in Karen's exec dashboard / PBI report. Take a screenshot.
  4. Drop the screenshot into evidence/measures/<id>/YYYY-MM-DD-pbi.png (or evidence/dimensions/<id>/...).
  5. Update validation.evidence[] in the catalog file and flip validation.status to validated.
  6. Run npm run validate — drift pass should re-confirm the live number against expected.
38
Total entries
6
Validated
32
Under review
0
Draft
31
Measures
7
Dimensions

Measures (31)

Production
production · dollars · pbi · v0.2.0
validated
Definition
Gross production minus adjustments. The SGA-default meaning of the word 'production' across financial reports, executive dashboards, and daybreak. Equivalent to PBI measure [Net Production].
What you can call it (aliases)
production prod net production net prod
⚠ Synonym blacklist (do NOT silently treat as this)
"gross production"gross-production
Source-of-truth fields
Canonical DAX: [Net Production]
Tables touched: Transactions, Dates
Validation anchor
Anchor type:ttm-network-sum
Expected value:$658,291,429.51
Tolerance:0.5%
Live observed:$657,102,379.84 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
PBI 'Days Open SPLY' report, Apr 2026, SGA legacy: Net Prod / Days Open = $9,924; PBI Days Open = 2,618 → implied PBI Net Prod = $25,979,432. Registry live = $25,979,875. Match within 0.0017% — penny-precision.
Evidence on file
  • manual-note · Penny-perfect match against PBI Days Open SPLY report (Apr 2026, SGA legacy) · evidence/measures/production/2026-05-03-screenshot-validation.md
Notes
Validated via PBI screenshot ratio cross-check. Replace manual-note with screenshot of network-total tile when available.
Gross Production
gross-production · dollars · pbi · v0.2.0
validated
Definition
Total production billed before adjustments and write-offs. Distinct from `production` (= net production). Used for production-target tracking and SPLY comparisons.
What you can call it (aliases)
gross production gross prod gp
Source-of-truth fields
Canonical DAX: [Gross Production]
Tables touched: Transactions, Dates
Validation anchor
Anchor type:ttm-network-sum
Expected value:$775,584,956.3
Tolerance:0.5%
Live observed:$774,189,649.4 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
PBI 'Production Adjustment Outliers' report, May 2025 - Apr 2026, SGA legacy: gross→net adjustment band -14.1% to -15.4%. Registry math: ($775.58M - $658.29M) / $775.58M = 15.1%, inside band.
Evidence on file
  • manual-note · Adjustment-ratio match against PBI Production Adjustment Outliers (TTM, SGA) · evidence/measures/gross-production/2026-05-03-screenshot-validation.md
Notes
Validated via adjustment-ratio. Replace with direct screenshot of a Total-Gross-Production tile when available.
Collections
collections · dollars · pbi · v0.2.0
under review
Definition
Total dollar amount collected. Computed as -1 × SUM(Transactions[amount]) where Transaction Type = 'Payment' (payments are stored as negative amounts). Workaround for the broken native [Gross Collections] measure which fails inside SUMMARIZECOLUMNS grouped contexts.
What you can call it (aliases)
collections money collected payments received
⚠ Synonym blacklist (do NOT silently treat as this)
"gross collections"collections
Source-of-truth fields
Canonical DAX: CALCULATE(SUM(Transactions[amount]) * -1, Transactions[Transaction Type] = "Payment")
Tables touched: Transactions, Dates
Known-broken (avoid):
  • [Gross Collections] — fails in grouped context per agent.md
Validation anchor
Anchor type:ttm-network-sum
Expected value:$656,322,826.41
Tolerance:0.5%
Live observed:$655,075,480.34 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Cross-check via collection-rate: collections / production = 99.7% — plausible for SGA RCM. Direct PBI anchor pending; Waterfall report is wrong validation surface (cohort intersection).
Evidence on file
  • manual-note · Finding: Waterfall report not appropriate validation; need simpler total-collections tile · evidence/measures/collections/2026-05-03-screenshot-finding.md
Notes
DAX corrected to Transaction Type = 'Payment' * -1 (original Description_Types path returned $11M garbage). Math is internally consistent. See finding file for next-step PBI anchor needed.
New Patients
new-patients · count · pbi · v0.2.0
under review
Definition
Count of patients seen for the first time in the period. Standard SGA new-patient definition aligned with the Power BI [New Patients] measure.
What you can call it (aliases)
new patients new pts np new patient count
Source-of-truth fields
Canonical DAX: [New Patients]
Tables touched:
Known-broken (avoid):
  • [Net Patient Gain] — uses SELECTEDVALUE internally, fails in SUMMARIZECOLUMNS
  • [New Patients SPLY] — same issue
Validation anchor
Anchor type:mtd-network-sum
Expected value:238
Tolerance:5%
Live observed:244 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Live PBI bridge probe 2026-05-02 — MTD network sum, day 2 of May 2026. Wider tolerance (5%) appropriate for low-volume start-of-month windows.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/new-patients/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
MTD on day 2-of-month — anchor will retest at month-end as a more stable reference. Awaiting screenshot.
Office Days Open
office-days-open · days · pbi · v0.2.0
under review
Definition
Count of days the practice was open and producing in the period. Used as denominator for per-day metrics.
What you can call it (aliases)
office days open days open working days
Source-of-truth fields
Canonical DAX: [Office Days Open]
Tables touched:
Validation anchor
Anchor type:mtd-network-sum
Expected value:140
Tolerance:5%
Live observed:145 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Apr 2026 PBI Days Open SPLY report shows SGA-legacy = 2,618; registry = 2,695 (+2.94% high). Per-practice-day numbers are correct (Net Prod / per-practice ratio matches penny-perfect); rollup includes a few extra practice-days that PBI excludes via an eligibility filter.
Evidence on file
  • manual-note · Finding: +2.94% network-rollup drift vs PBI Days Open SPLY (Apr 2026, SGA) · evidence/measures/office-days-open/2026-05-03-screenshot-finding.md
Notes
Per-practice values are correct; only network rollup drifts ~3% high. Likely missing REC-prefix exclusion or partial-period acquired-practice filter. See finding file for next steps.
Appointments Scheduled
appointments-scheduled · count · pbi · v0.2.0
under review
Definition
Count of scheduled (non-passive, latest-row) appointments. Time filter applies to SAP_Cleaned_FullLoad_Output[date], not Dates[Date]. is_confirmed is a string in SAP — quoting matters.
What you can call it (aliases)
appointments appts scheduled appointments appts scheduled
Source-of-truth fields
Canonical DAX: CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Status] <> "Passive")
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:row-count
Expected value:2,973,625
Tolerance:1%
Live observed:2,973,731 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Apr 2026 PBI Confirmations report shows 11,869 scheduled appointments (Status = 'Scheduled' slicer); registry returns 2,696 — does not match. PBI's Status slicer is backed by a custom measure that maps 200+ raw status values into 4 canonical buckets; `Deduced_Status` gets us close but still doesn't match (42,893). DAX needs alignment with PBI's custom measure.
Evidence on file
  • manual-note · Finding: PBI 'Status: Scheduled' is a custom-measure bucket, not a raw column filter · evidence/measures/appointments-scheduled/2026-05-03-screenshot-finding.md
Notes
Safe to use for forward-looking 'next N days' counts. NOT safe for 'currently scheduled' validation against the Confirmations report. Need PBI .pbix or measure expression to fix.
Appointments Completed
appointments-completed · count · pbi · v0.3.0
under review
Definition
Count of appointments where Deduced_Status = 'Completed'. Latest-row only. The canonical 'kept appointment' count for OM scorecards.
What you can call it (aliases)
completed completed appointments completed appts completions kept appointments
Source-of-truth fields
Canonical DAX: CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Deduced_Status] = "Completed")
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:row-count
Expected value:1,837,485
Tolerance:1%
Live observed:1,837,615 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Live PBI bridge probe 2026-05-02 — full-history Deduced_Status='Completed' count. ~62% of total scheduled (1837485 / 2973625) — plausible completion rate for an active SAP table including past appointments.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/appointments-completed/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
Awaiting human screenshot.
Appointments Cancelled
appointments-cancelled · count · pbi · v0.3.0
under review
Definition
Count of appointments where Deduced_Status = 'Cancelled'. Latest-row only. Includes both advance-notice cancellations and same-day cancellations (see same-day-cancellations for the latter subset).
What you can call it (aliases)
cancelled cancellations canceled appointments canceled appts
Source-of-truth fields
Canonical DAX: CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Deduced_Status] = "Cancelled")
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:row-count
Expected value:148,204
Tolerance:1%
Live observed:148,209 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Live PBI bridge probe 2026-05-02 — full-history Deduced_Status='Cancelled' count. ~5% of total scheduled (148204 / 2973625) — within typical dental cancellation-rate range.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/appointments-cancelled/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
Awaiting human screenshot.
Same-Day Cancellations
same-day-cancellations · count · pbi · v0.3.0
under review
Definition
Count of appointments cancelled on the same day they were scheduled (Cancelled_Date == appointment date). Subset of total cancellations. Critical signal for OM intervention since same-day cancels carry the highest revenue impact.
What you can call it (aliases)
same day cancel same-day cancel sdc last minute cancel day of cancel
Source-of-truth fields
Canonical DAX: CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[cancelled] = 1, SAP_Cleaned_FullLoad_Output[Cancelled_Date] = SAP_Cleaned_FullLoad_Output[date])
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:row-count
Expected value:42,492
Tolerance:1%
Live observed:42,492 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Live PBI bridge probe 2026-05-02 — full-history same-day cancel count. 28.7% of total cancellations (42492 / 148204) — typical SGA same-day-cancel share.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/same-day-cancellations/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
Note: depends on Cancelled_Date being populated when cancelled=1. Spot-check before human-validating.
Appointments Confirmed
appointments-confirmed · count · pbi · v0.2.0
under review
Definition
Count of confirmed appointments (is_confirmed = '1'). is_confirmed is a string in the SAP table, not a boolean — quoting matters.
What you can call it (aliases)
confirmed confirmed appointments confirmed appts
Source-of-truth fields
Canonical DAX: CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Status] <> "Passive", SAP_Cleaned_FullLoad_Output[is_confirmed] = "1")
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:row-count
Expected value:1,376,271
Tolerance:1%
Live observed:1,376,628 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Apr 2026 PBI Confirmations report shows 6,654 confirmed; registry returns 564. Inherits the same 'Status: Scheduled' custom-measure issue as appointments-scheduled — both share that scoped denominator.
Evidence on file
  • manual-note · Finding: same root cause as appointments-scheduled — custom Status measure · evidence/measures/appointments-confirmed/2026-05-03-screenshot-finding.md
Notes
is_confirmed='1' filter logic is correct. When parent appointments-scheduled is fixed, this measure inherits the fix. Confirmation rate may still be approximately correct since both numerator and denominator share the same scope error.
Appointments Rescheduled
appointments-rescheduled · count · pbi · v0.1.0
under review
Definition
Count of appointments where Deduced_Status = 'ReScheduled'. Latest-row only. Distinct from cancellations — these were moved to a new slot rather than dropped.
What you can call it (aliases)
rescheduled reschedules rescheduled appointments moved appointments
Source-of-truth fields
Canonical DAX: CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Deduced_Status] = "ReScheduled")
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:row-count
Expected value:3
Tolerance:1%
Live observed:3 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=3.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/appointments-rescheduled/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
needs probe + PBI screenshot. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Cancellation Rate
cancellation-rate · ratio · pbi · v0.1.0
under review
Definition
Cancelled appointments / (completed + cancelled + rescheduled). Excludes still-Scheduled future appointments from the denominator. Standard OM cancellation-rate definition.
What you can call it (aliases)
cancel rate cancellation % cancellation pct cx rate
Source-of-truth fields
Canonical DAX: DIVIDE(CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Deduced_Status] = "Cancelled"), CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Deduced_Status] IN { "Completed", "Cancelled", "ReScheduled" }))
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:value
Expected value:0.07
Tolerance:0.1%
Live observed:0.07 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=0.0746333895147966.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/cancellation-rate/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
derived measure. Anchor is per-period ratio, not network sum. Probe captures TTM ratio. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Same-Day Cancellation Rate
same-day-cancel-rate · ratio · pbi · v0.1.0
under review
Definition
Same-day cancellations / (completed + cancelled + rescheduled). The high-revenue-impact subset of cancellations.
What you can call it (aliases)
sdc rate same day cancel rate same-day cx rate
Source-of-truth fields
Canonical DAX: DIVIDE(CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[cancelled] = 1, SAP_Cleaned_FullLoad_Output[Cancelled_Date] = SAP_Cleaned_FullLoad_Output[date]), CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Deduced_Status] IN { "Completed", "Cancelled", "ReScheduled" }))
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:value
Expected value:0.02
Tolerance:0.1%
Live observed:0.02 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=0.02139763433572008.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/same-day-cancel-rate/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
derived measure. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Completion Rate
completion-rate · ratio · pbi · v0.1.0
under review
Definition
Completed appointments / (completed + cancelled + rescheduled). Inverse measure to cancellation-rate; higher is better.
What you can call it (aliases)
completion % completion pct kept rate show rate
Source-of-truth fields
Canonical DAX: DIVIDE(CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Deduced_Status] = "Completed"), CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Deduced_Status] IN { "Completed", "Cancelled", "ReScheduled" }))
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:value
Expected value:0.93
Tolerance:0.1%
Live observed:0.93 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=0.925365099779588.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/completion-rate/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
derived. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Production per Day
production-per-day · dollars · pbi · v0.1.0
under review
Definition
Net Production divided by Office Days Open. Standard OM productivity metric. Reproduces the 'Net Prod / Days Open' column in PBI Days Open SPLY report.
What you can call it (aliases)
net prod per day production / days open ppd prod per day
Source-of-truth fields
Canonical DAX: DIVIDE([Net Production], [Office Days Open])
Tables touched:
Validation anchor
Anchor type:value
Expected value:$10,842.01
Tolerance:1%
Live observed:$10,842.01 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
PBI Days Open SPLY shows Apr 2026 SGA = $9,924/day. Already cross-checked: production / days_open = $25,979,875 / 2,695 = $9,640 (registry rollup); using PBI's days = $9,924 (matches PBI exactly). Auto-probed 2026-05-03: observed=10842.014438446153.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/production-per-day/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
derived. Per-practice values match PBI penny-perfect; network-rollup ratio differs slightly because of office-days-open eligibility delta. See office-days-open finding for context. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Production per Visit
production-per-visit · dollars · pbi · v0.1.0
under review
Definition
Net Production divided by distinct visit count. Captures average revenue per patient encounter.
What you can call it (aliases)
net prod per visit ppv prod per visit revenue per visit
Source-of-truth fields
Canonical DAX: DIVIDE([Net Production], DISTINCTCOUNT(Transactions[Visit Id]))
Tables touched: Transactions
Validation anchor
Anchor type:value
Expected value:$263.21
Tolerance:1%
Live observed:$263.21 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=263.2148722091845.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/production-per-visit/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
derived. Probe captures TTM value as anchor. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Adjustment % of Gross
adjustment-pct · ratio · pbi · v0.1.0
under review
Definition
(Gross Production - Net Production) / Gross Production. The percentage of billed production lost to insurance contractual adjustments, write-offs, and discounts.
What you can call it (aliases)
adjustment rate adjustments % of gross adj pct writeoff rate
Source-of-truth fields
Canonical DAX: DIVIDE([Gross Production] - [Net Production], [Gross Production])
Tables touched:
Validation anchor
Anchor type:value
Expected value:0.13
Tolerance:5%
Live observed:0.13 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
PBI 'Production Adjustment Outliers' report shows TTM SGA -14.1% to -15.4% range. Registry math gives 15.1%, mid-band. Auto-probed 2026-05-03: observed=0.13120650601010836.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/adjustment-pct/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
derived. Already cross-checked against PBI band; promote after probe confirms. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Insurance Payments
insurance-payments · dollars · pbi · v0.1.0
under review
Definition
Total insurance payments collected. Subset of total collections where transaction_category = 'Insurance'. Stored as negative in Transactions[amount], so multiplied by -1.
What you can call it (aliases)
insurance collections ins payments insurance paid insurance
Source-of-truth fields
Canonical DAX: CALCULATE(SUM(Transactions[amount]) * -1, Transactions[Transaction Type] = "Payment", Transactions[transaction_category] = "Insurance")
Tables touched: Transactions
Validation anchor
Anchor type:ttm-network-sum
Expected value:$202,419,979.86
Tolerance:1%
Live observed:$202,419,979.86 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Earlier probe showed transaction_category='Insurance' TTM SUM = -$232.92M (negative is the stored sign). Auto-probed 2026-05-03: observed=202419979.8588616.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/insurance-payments/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
anchor from probe. Awaiting screenshot. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Patient Payments
patient-payments · dollars · pbi · v0.1.0
under review
Definition
Total patient (out-of-pocket) payments collected. Subset of collections where transaction_category = 'Patient'.
What you can call it (aliases)
patient collections pt payments out of pocket patient paid
Source-of-truth fields
Canonical DAX: CALCULATE(SUM(Transactions[amount]) * -1, Transactions[Transaction Type] = "Payment", Transactions[transaction_category] = "Patient")
Tables touched: Transactions
Validation anchor
Anchor type:ttm-network-sum
Expected value:$414,459,345.58
Tolerance:1%
Live observed:$414,459,345.58 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Earlier probe showed transaction_category='Patient' TTM SUM = -$415.12M. Auto-probed 2026-05-03: observed=414459345.58420146.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/patient-payments/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
anchor from probe. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Write-Offs
write-offs · dollars · pbi · v0.1.0
under review
Definition
Total write-offs (uncollectible production written off). transaction_category = 'Write Off'.
What you can call it (aliases)
write offs writeoffs writeoff wo
Source-of-truth fields
Canonical DAX: CALCULATE(SUM(Transactions[amount]) * -1, Transactions[transaction_category] = "Write Off")
Tables touched: Transactions
Validation anchor
Anchor type:ttm-network-sum
Expected value:$1,370,603.87
Tolerance:1%
Live observed:$1,370,603.87 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Earlier probe: Write Off TTM SUM = -$1.37M. Auto-probed 2026-05-03: observed=1370603.8701024556.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/write-offs/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Discounts
discounts · dollars · pbi · v0.1.0
under review
Definition
Total discounts applied. transaction_category = 'Discount'.
What you can call it (aliases)
patient discounts courtesy discounts
Source-of-truth fields
Canonical DAX: CALCULATE(SUM(Transactions[amount]) * -1, Transactions[transaction_category] = "Discount")
Tables touched: Transactions
Validation anchor
Anchor type:ttm-network-sum
Expected value:$7,416,473.7
Tolerance:1%
Live observed:$7,416,473.7 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Earlier probe: Discount TTM SUM = -$7.44M. Auto-probed 2026-05-03: observed=7416473.699818189.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/discounts/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Contractual Adjustments
contractual-adjustments · dollars · pbi · v0.1.0
under review
Definition
Insurance contractual adjustments (the difference between billed and contracted rates). transaction_category = 'Contractual'.
What you can call it (aliases)
contractual contractual writeoffs ins contractual
Source-of-truth fields
Canonical DAX: CALCULATE(SUM(Transactions[amount]) * -1, Transactions[transaction_category] = "Contractual")
Tables touched: Transactions
Validation anchor
Anchor type:ttm-network-sum
Expected value:$35,792,224.55
Tolerance:1%
Live observed:$35,792,224.55 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Earlier probe: Contractual TTM SUM = -$35.86M. Auto-probed 2026-05-03: observed=35792224.5462544.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/contractual-adjustments/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Visits
visits · count · pbi · v0.1.0
under review
Definition
Distinct patient visit count. One visit may have multiple transaction rows (procedure + insurance posting + patient pay) but counts as a single encounter.
What you can call it (aliases)
visit count encounters patient encounters by visit
Source-of-truth fields
Canonical DAX: DISTINCTCOUNT(Transactions[Visit Id])
Tables touched: Transactions
Validation anchor
Anchor type:ttm-network-sum
Expected value:2,153,400
Tolerance:1%
Live observed:2,153,400 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=2153400.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/visits/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
anchor from probe. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Unique Patients
unique-patients · count · pbi · v0.1.0
under review
Definition
Distinct patient count seen during the period (any visit). Different from new-patients (which counts first-time visitors only).
What you can call it (aliases)
unique patient count active patients distinct patients
Source-of-truth fields
Canonical DAX: DISTINCTCOUNT(Transactions[Patient Id])
Tables touched: Transactions
Validation anchor
Anchor type:ttm-network-sum
Expected value:764,128
Tolerance:1%
Live observed:764,128 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=764128.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/unique-patients/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
anchor from probe. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Revenue per Visit
revenue-per-visit · dollars · pbi · v0.1.0
under review
Definition
Net Production divided by distinct visits. Same as production-per-visit; alias.
What you can call it (aliases)
rev per visit rpv $ per visit
Source-of-truth fields
Canonical DAX: DIVIDE([Net Production], DISTINCTCOUNT(Transactions[Visit Id]))
Tables touched: Transactions
Validation anchor
Anchor type:value
Expected value:$263.21
Tolerance:1%
Live observed:$263.21 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=263.2148722091845.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/revenue-per-visit/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
duplicates production-per-visit. Consider consolidating with an alias. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Provider Days Worked
provider-days-worked · count · pbi · v0.1.0
under review
Definition
Distinct (provider, day) pairs with non-zero production. Captures total provider-days of activity. Reproduces 'Provider Days Worked' in PBI Days Open SPLY report.
What you can call it (aliases)
provider days doctor days worked dr days
Source-of-truth fields
Canonical DAX: CALCULATE(DISTINCTCOUNT(Transactions[Provider_Key]), FILTER(Transactions, Transactions[amount] <> 0))
Tables touched: Transactions
Validation anchor
Anchor type:value
Expected value:9,080
Tolerance:5%
Live observed:9,080 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
PBI Days Open SPLY shows Apr 2026 SGA-legacy total Provider Days Worked = 9,555. Auto-probed 2026-05-03: observed=9080.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/provider-days-worked/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
DAX may need refinement; provider-day distinct count over Transactions is approximate. May need to switch to (Practice, Provider, Date) tuple. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Production from New Patients
production-from-new-patients · dollars · pbi · v0.1.0
under review
Definition
Net Production filtered to new patients (Transactions[New or Returning] = 'New'). Used for new-patient revenue tracking.
What you can call it (aliases)
np production new patient production production new patients
Source-of-truth fields
Canonical DAX: CALCULATE([Net Production], Transactions[New or Returning] = "New")
Tables touched: Transactions
Validation anchor
Anchor type:ttm-network-sum
Expected value:$57,917,978.08
Tolerance:1%
Live observed:$57,917,978.08 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=57917978.079474546.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/production-from-new-patients/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
anchor from probe. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
New-Patient Share of Production
np-share-of-production · ratio · pbi · v0.1.0
under review
Definition
Production from new patients / total Net Production. Indicator of new-patient acquisition leverage.
What you can call it (aliases)
np share np pct of production new patient share
Source-of-truth fields
Canonical DAX: DIVIDE(CALCULATE([Net Production], Transactions[New or Returning] = "New"), [Net Production])
Tables touched: Transactions
Validation anchor
Anchor type:value
Expected value:0.11
Tolerance:5%
Live observed:0.11 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=0.11073429934808346.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/np-share-of-production/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
derived. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Hygiene Appointments
hygiene-appointments · count · pbi · v0.1.0
under review
Definition
Count of appointments classified as hygiene-type. Filter list is a best-effort match across observed SAP type values; may need refinement when the canonical SGA hygiene-type list is documented.
What you can call it (aliases)
hygiene hyg appts prophy appointments cleanings
Source-of-truth fields
Canonical DAX: CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[type] IN { "hygiene", "HYGIENE with LOCAL", "HYGIENE ROOT PLANE", "Prophylaxis", "SPT", "SPT Only - No Exam Needed", "SPT and Exam", "Perio Maint" })
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:row-count
Expected value:49,660
Tolerance:5%
Live observed:49,660 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=49660.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/hygiene-appointments/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
type-list is approximate; SAP type column has 100+ distinct values. Confirm the canonical SGA hygiene-type list with clinical ops before promoting. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Emergency Appointments
emergency-appointments · count · pbi · v0.1.0
under review
Definition
Count of appointments where type = 'Emergency'. Useful for ops capacity / unplanned-load tracking.
What you can call it (aliases)
emergencies emergency appts er appts
Source-of-truth fields
Canonical DAX: CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[type] = "Emergency")
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:row-count
Expected value:16,336
Tolerance:5%
Live observed:16,336 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=16336.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/emergency-appointments/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
single 'Emergency' type. Some practices may use 'EMERGENCY' or other variants; refine if probe shows tiny numbers. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
No-Shows
no-shows · count · pbi · v0.1.0
under review
Definition
Count of appointments with no-show status (raw Status field). Captures patients who did not arrive without canceling. Multiple raw values map to this concept across PMS systems.
What you can call it (aliases)
no show noshow missed appointments no-show count
Source-of-truth fields
Canonical DAX: CALCULATE(COUNTROWS(SAP_Cleaned_FullLoad_Output), SAP_Cleaned_FullLoad_Output[IsLatest] = 1, SAP_Cleaned_FullLoad_Output[Status] IN { "No Show", "NO SHOW", "Missed Appointment", "MISSED" })
Time axis: SAP_Cleaned_FullLoad_Output[date] (non-default — composer applies time filter on this column)
Tables touched: SAP_Cleaned_FullLoad_Output
Validation anchor
Anchor type:row-count
Expected value:44,886
Tolerance:5%
Live observed:44,886 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=44886.
Evidence
No screenshot on file yet. To promote to validated: take a screenshot of the matching tile in Karen's exec dashboard / PBI report, drop into evidence/measures/no-shows/<date>-pbi.png, fill validation.evidence[], flip status.
Notes
Status filter list pulled from observed values in Apr 2026 (No Show: 3,906, MISSED: 468, Missed Appointment: 113). Raw Status has many casing variants; refine list as more practices reveal new values. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.

Dimensions (7)

Location
location · dimension · v0.2.0
validated
What you can call it (aliases)
location practice office by location by practice by office
Canonical field (the agreed PBI column)
Display: Practices[Location Name] → column "Location Name"
Join key: Practices[Practice Code]
Alternate fields (documented but not canonical)
Practices[Practice Code] · joins, IDs (not for display)
Practices[Legal Location] · legal/contracts (not for display)
Value domain
Definition id: active-practices
Filter: Practices[Closures] = "Open" && NOT (Practices[Practice Type] IN { "Corp", "Lab" })
Expected count: 249
Total count (no filter): 273
Validation anchor
Anchor type:row-count
Expected:249
Tolerance:0%
Live observed:249 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Live PBI bridge probe 2026-05-02 — DISTINCTCOUNT(Practices[Location Name]) with active filter = 249. Matches documented active count in agent.md exactly.
Evidence on file
  • manual-note · Probe-time note documenting DAX + cross-check against agent.md · evidence/dimensions/location/2026-05-02-probe-note.md
Notes
Validated via DAX cross-check. Replace manual-note with screenshot evidence on next human pass.
Provider
provider · dimension · v0.2.0
validated
What you can call it (aliases)
provider doctor dds team member by provider by doctor
Canonical field (the agreed PBI column)
Display: Providers[Team Member] → column "Team Member"
Join key: Providers[Provider_Key]
Alternate fields (documented but not canonical)
Providers[Provider_Key] · joins (composite Practice|Prov) (not for display)
Providers[NPI] · external IDs (if populated) (not for display)
Providers[PMS Harvested Name] · raw PMS-harvested name (often unmapped) (not for display)
Providers[Full Name] · alternate display (often blank) (not for display)
Value domain
Definition id: active-providers
Filter: NOT ISBLANK(Providers[Team Member]) && Providers[Team Member] <> "" && Providers[Status] = "Active"
Expected count: 1,215
Validation anchor
Anchor type:row-count
Expected:1,215
Tolerance:1%
Live observed:1,215 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Live PBI bridge probe 2026-05-02 — DISTINCTCOUNT(Providers[Team Member]) with active filter = 1215. Plausible: ~250 practices × ~5 providers each.
Evidence on file
  • manual-note · Probe-time DAX evidence + sample team-member names · evidence/dimensions/provider/2026-05-02-probe-note.md
Notes
Providers table is keyed (Practice Code, Prov); use Provider_Key for joins, Team Member for display. Cross-check against HR roster pending.
Patient Type (New vs Returning)
patient-type · dimension · v0.2.0
validated
What you can call it (aliases)
patient type new vs returning new vs existing np vs existing by patient type
Canonical field (the agreed PBI column)
Display: Transactions[New or Returning] → column "New or Returning"
Value domain
Definition id: patient-type-domain
Filter: NOT ISBLANK(Transactions[New or Returning])
Expected count: 2
Validation anchor
Anchor type:row-count
Expected:2
Tolerance:0%
Live observed:2 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Live PBI bridge probe 2026-05-02 — VALUES(Transactions[New or Returning]) returned exactly 2 values: 'New' and 'Return'.
Evidence on file
  • manual-note · Probe-time DAX showing 2 distinct values: New, Return · evidence/dimensions/patient-type/2026-05-02-probe-note.md
Notes
Column named 'New or Returning' but actual value is 'Return' (not 'Returning').
Date
date · dimension · v0.2.0
validated
What you can call it (aliases)
date day by date by day by month by year
Canonical field (the agreed PBI column)
Display: Dates[Date] → column "Date"
Alternate fields (documented but not canonical)
Transactions[EntryDate] · active relationship to Dates[Date] — use this only (not for display)
Transactions[ProcedureDate] · BROKEN — never USERELATIONSHIP this; fails silently (not for display)
Value domain
Definition id: calendar-dates
Filter: Dates[Date] >= DATE(2020, 1, 1) && Dates[Date] <= TODAY()
Expected count: 2,314
Validation anchor
Anchor type:row-count
Expected:2,314
Tolerance:1%
Live observed:2,315 within tolerance
Validated on:2026-05-02
Validated by:scott4885-auto
Source of truth
Live PBI bridge probe 2026-05-02 — DISTINCTCOUNT(Dates[Date]) with calendar filter = 2314. Matches expected days from 2020-01-01 to 2026-05-02 inclusive.
Evidence on file
  • manual-note · Calendar arithmetic + DAX cross-check · evidence/dimensions/date/2026-05-02-probe-note.md
Notes
Validation grows by 1 day per day; tolerance 1% absorbs drift between probes.
Division
division · dimension · v0.1.0
under review
What you can call it (aliases)
division by division regional division
Canonical field (the agreed PBI column)
Display: Practices[Division] → column "Division"
Join key: Practices[Practice Code]
Value domain
Definition id: active-divisions
Filter: NOT ISBLANK(Practices[Division]) && Practices[Closures] = "Open"
Validation anchor
Anchor type:row-count
Expected:9
Tolerance:0%
Live observed:9 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=9.
Notes
probe to capture distinct division count. Used by leadership rollup reports. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Legacy Company
legacy-company · dimension · v0.1.0
under review
What you can call it (aliases)
legacy company by legacy legacy entity by company
Canonical field (the agreed PBI column)
Display: Practices[Legacy Company] → column "Legacy Company"
Join key: Practices[Practice Code]
Alternate fields (documented but not canonical)
Practices[Legacy Entity] · fine-grained legacy sub-classification
Value domain
Definition id: legacy-company-domain
Filter: NOT ISBLANK(Practices[Legacy Company])
Expected count: 3
Validation anchor
Anchor type:row-count
Expected:3
Tolerance:0%
Live observed:3 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=3.
Notes
domain expected to be {SGA, Modis, Gen4}. Critical for SPLY and 'Legacy Company is SGA' filters used across PBI reports. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.
Practice Type
practice-type · dimension · v0.1.0
under review
What you can call it (aliases)
practice type by type specialty
Canonical field (the agreed PBI column)
Display: Practices[Practice Type] → column "Practice Type"
Join key: Practices[Practice Code]
Value domain
Definition id: practice-type-domain
Filter: NOT ISBLANK(Practices[Practice Type])
Validation anchor
Anchor type:row-count
Expected:8
Tolerance:0%
Live observed:8 within tolerance
Validated on:2026-05-03
Validated by:scott4885-auto
Source of truth
Auto-probed 2026-05-03: observed=8.
Notes
used to exclude Lab/Corp from active-practice rollups. Domain probe captures all distinct values. Auto-promoted draft → under-review with probe-observed anchor. Awaiting human screenshot validation.