A case now carries pictures, and a button that turns it into a deck.
THE CHARTS (Briefing.tsx) answer the same three questions the page does,
visually: the spike (the flagged slice's weekly denials, with the payer's
rule change drawn as a line — weeks after it in the accent, before in gray),
where it sits (denial rate by insurer, baseline vs now), where the money
stands (the slice's denied dollars by what can still happen to them), and
appeals about to expire by insurer. Every chart has a table twin.
Data comes from six pre-aggregated Databricks views (sm2/…/chart_views.py)
read through the ordinary record-view API, filtered by the slice Ava now
records in four structured fields (slice_payer, slice_department,
slice_reason_code, spike_start). Nothing is computed from raw claims in the
browser.
COLOUR WAS COMPUTED, NOT EYEBALLED. The palette is the dataviz reference
set (blue 1, orange 2, green 6, violet 7, gray) run through
validate_palette.js against this console's own surfaces, both themes — all
checks pass. Two things the validator caught: the brand teal fails the
chroma floor and would read as gray on a chart, so it is never a data hue;
and red beside orange in the recovery stack fails adjacent-pair separation
even for normal vision (ΔE 7.1), so "lost on appeal" is violet.
THE SLIDES (lib/slides.ts) are six native-chart PowerPoint slides built in
the browser with pptxgenjs from the same rows: what happened, the spike,
where it sits, the money, the recommendations, the method. Text is Ava's
verbatim. Lazy-imported so the 700 KB library is paid for only on click.
Backend counterpart: sm2/custom-apps/denials-investigator/10_briefing.sql.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The operator console for Northlake Health's Denials Investigator (dev, org
900000109 / app 900000102). A revenue-cycle manager asks why claim denials
rose; Ava — an AI employee — investigates the hospital's Databricks lakehouse
and comes back with a cause, a dollar figure and a recommendation. He approves,
and she re-checks on her own two minutes later.
THE POINT OF THE SCREEN is that her work is checkable. Anyone can be told an
agent analysed their denials; AvaLive shows the actual SQL she sent to
Databricks, in order, with what came back and how long each query took — and it
does NOT hide a query she got wrong and corrected, because that is the most
convincing thing on the page.
Two decisions worth knowing about:
* Her trace does not come from the AI-employee monitor API. That endpoint needs
an org-scoped studio token and answers "no organization scope on this
account" for every user of this console. It comes instead from two views
(northlake_app.ava_trace / ava_decisions) exposed as ordinary rdbms record
views, behind a login role that cannot read the aiemployee schema at all.
Seeded by sm2/custom-apps/denials-investigator/07_console_views.sql.
* Ava's own activities — Record Findings, Confirm Recovery, Flag Still
Elevated, Escalate — are deliberately absent from STAGE_ACTIONS. Putting them
on screen would only let a person sign in as the agent and press its button,
which is a person impersonating an agent rather than an agent working.
Violet is the AI and nothing else is violet; amber is the one queue a human
owns. No API URL is compiled in — config.js carries it at placement time.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>