SAS Dashboard: 0-to-1 Technical Stack and Architecture Evaluation

Organization: Sentinel Advisory Services (SAS)
Grounding sources: docs/planning/0-to-1-product-plan.md (first slice); docs/planning/0-to-1-pr-faq.md (Working Backwards customer narrative); docs/planning/product-vision-and-roadmap.md (later increments); docs/planning/SASDashboardVision.pptx
Document type: Technical options analysis. Not a signed-off architecture, not a stack decision, not a metric formula catalog, not a HIPAA policy.
Offer (from the 0-to-1 plan): resell across hospitals with no to minimal per-hospital customization. The first ship is a repeatable product deployment. Beachhead decisions (0-to-1 plan §3): Executive + Acute Care Coding manager; Epic + 3M 360 Encompass. Hosting, data path, PHI grain, and the first hospital’s security bar are hospital questions. The Product Owner owns the catalog; the Technical Owner is SAS privacy/security owner. SAS waits to build until a hospital pilot is selected.
Stance: Compare option families with explicit tradeoffs. Recommendations are labeled suggestions. Open items stay questions. This document does not invent a named pilot, does not invent metric formulas, does not lock a tech stack, and does not treat later increments as 0-to-1 must-haves.


1. Why this document exists

The 0-to-1 product plan defines the first slice and forbids locking a tech stack. The dashboard is a resellable product: no to minimal per-hospital customization. Surfaces (Executive + Acute Care Coding) and source path (Epic + 3M 360 Encompass) are beachhead decisions in that plan, not unexplained defaults. Hosting, data-sharing path, PHI grain, and the first hospital’s security bar are hospital questions. Engineering needs a map of what is choosable, what each choice costs later, and which questions close the map.

That offer does not turn 0-to-1 into a four-focus-area multi-EMR SaaS platform. It does rule out a one-off advisory workspace whose measures, layouts, or extract schema cannot be reused by the next Epic + 3M hospital.

This evaluation:

  1. Restates the known constraints any stack must respect.
  2. Compares multiple stack and architecture option families, with tradeoffs, for presentation, ingestion, and tenancy.
  3. Classifies decisions as one-way door vs incremental / reversible.
  4. Lists questions that still need answers before technical direction can be fine-tuned, distinct from facts the product plan already settled for the 0-to-1 slice.
  5. Records other technical information the stack choice depends on (PHI grain, increment sequencing, metric versioning, freshness, authz, production destination).

It does not pick a cloud vendor, BI tool, warehouse, or application framework as settled fact. A sentence of the form “the architecture is X” would contradict the product plan.


2. Known constraints any stack must respect

These are the assumed beachhead from 0-to-1 plan decisions A (surfaces) and B (Epic + 3M). Options and trade-offs for those decisions live in the 0-to-1 plan §3. They are not reopened here as a stack pick. A stack option that violates them is not a 0-to-1 option; it is a later-increment option wearing a 0-to-1 label.

2.1 Slice (assumed beachhead)

Assumed 0-to-1 slice: one Epic + Solventum/3M 360 Encompass hospital (or single facility inside a system); a monthly Executive mid-cycle view plus an Acute Care Coding manager view; fed by agreed extracts; covering DNFB, DNFC, CMI, CC/MCC capture, min/chart productivity, coding quality/audit accuracy, and coding vs clinical-validation denials.

Also assumed (given those decisions):

What “done” means (known): a HIM director and a CFO (or VP Revenue Cycle) at one Epic + 3M site can make at least one slide-9 decision from the same underlying extracts, without waiting on a hand-built spreadsheet. Resale bar: a second Epic + 3M hospital can be onboarded onto those same views and catalog with configuration plus an extract adapter. It is not “every focus area, every EMR, every role, production-grade HIPAA platform,” and it is not a unique workspace per hospital.

2.2 Explicitly deferred (not v1 must-ship)

The 0-to-1 plan parks these. This evaluation does not pull them into 0-to-1 stack requirements:

Deferred increment Why it is not a 0-to-1 stack driver
Quality-TBD (3M Quality, Vizient, Premier; star ratings, VBP, risk-adjusted outcomes) Deck marks the focus area and vendors TBD. Building a quality connector now is guessing.
Profee Coding (CPT, E&M, modifiers; Athena / eClinicalWorks / Epic ambulatory) Different codes, EMRs, often a different buyer. No mock-up. Later product line, not a v1 filter.
CDI as its own dashboard CC/MCC and CMI can appear on the executive view if 3M extracts include them. CDI operations is increment 3.
Encounter-level worklist Described, not mocked. Turns a monthly trend product into a PHI-heavy operational system. Increment 2.
Oracle Health/Cerner, Meditech, eClinicalWorks, Athena, Optum, Nuance CDE One, Iodine Combinatorial explosion. Land Epic + 3M first, then adapters.
mmmDB as a gate Optimal if they will allow. Prefer 3M 360 Encompass reports/extracts the client already runs.
Peer-benchmark network Mock-up decoration without a source.
Live FHIR / real-time Epic APIs / intra-day 3M refresh Mock-ups are monthly. File drop is faster and sufficient for 0-to-1.
Multi-tenant SaaS hardening, SSO, customer self-onboarding Production destination, not the first paid pilot.

2.3 Delivery shape (0-to-1 plan: shape set, stack not)

The 0-to-1 plan sets a shape, not a stack: the first ship is a deployment of a repeatable product. Hospital 2 must get the same two views via configuration and an extract adapter. Self-serve multi-tenant hardening is increment 9 in the vision and roadmap.

Practical pattern (tooling still optional):

  1. SAS-owned product catalog first (one page per metric, versioned; workshop validates, does not fork).
  2. Canonical extract contract: the hospital may still drop files they already produce; SAS maps them into the canonical model (adapter). SFTP or secure share; no new vendor API if an existing report will fill the contract.
  3. Shared semantic layer + the two views that SAS can copy to hospital 2. Power BI (or equivalent) in a client tenant is acceptable only if the model is a SAS-owned product artifact, not undocumented measures. SAS-hosted BI is the alternative if the client will not take that model, or if Q9 says SAS hosts.
  4. Weekly or monthly refresh; manual acceptable for the first two cycles; the load script is parameterized product, not a one-off notebook.
  5. Pilot review against two tests: CFO/HIM trust vs spreadsheet without forking the formula, and “could hospital 2 go live on this with adapter + config?”

A custom web application, FHIR integrations, and a SAS-branded login are still not required to prove the first hospital’s numbers. They are packaging options for resale. They are not an excuse to skip the catalog or to rebuild slides 10–11 with fake data.

Configuration vs customization is a technical constraint: targets, facility names, column maps, and denial-code rows are configuration. Forked formulas, extra tiles, unique layouts, and one-off SQL are not.

2.4 Advisory vs software tension (known risk)

The offer is a resellable product. A custom Power BI in the client tenant, with measures that only exist in that file, can still be live in weeks and cannot be sold to the next hospital. A SAS-owned model (hosted by SAS or deployed as the same artifact into a client tenant) is slower to first value and is what resale requires. Hosting is an open question. Forking the first hospital’s workspace is not an option.

2.5 Workspace state (known)

The repository is greenfield: no application, no ETL, no auth, no hosting, no customer data. 0-to-1 is a product and delivery problem, not “finish the remaining screens.” There is no incumbent stack to extend.

2.6 Production destination vs day one (known)

The vision and roadmap lists what production-ready will require. That list is a destination, not day-one scope. Several controls (BAA, encryption, named-user access, extract freshness) must start in increment 1 as soon as real data is used; hardening and evidence (policies, pen-test, SSO, uptime target) wait. See §10.6 of this evaluation.


3. What this evaluation is not deciding

Left open on purpose (the product offer is not in this list; it is a resellable product):

The dashboard is not a per-hospital consulting workspace. A stack option that only works as a one-off is not a 0-to-1 option.

If a later reader treats any option below as “the architecture,” they are misreading this document.


4. Option family A: Presentation and delivery surface

Question this family answers: what does the CFO and HIM director actually log into for the two mocked views?

Three honest options exist. They are not three skins of the same system. They imply different identity, PHI, packaging, and later-increment paths.

4.1 Option A1: Client-tenant BI workspace

What it is: the two views live in a BI workspace the client already trusts and already has accounts for. The product plan names Power BI in the client tenant as a common pattern; Tableau, Looker, Qlik, or the client’s existing Epic Cogito/Caboodle reporting portal are the same family if that is where the buyer already logs in.

How 0-to-1 would look: SAS (or the client analytics team) publishes an Executive report and an Acute Care Coding manager report against a dataset loaded from agreed extracts. Access is the client’s Entra ID / Okta group. SAS may be a guest user, or may never log in and instead ship a .pbix / workbook and a load script.

Tradeoffs: what this makes easy:

Tradeoffs: what this makes hard:

Later-increment fit: acceptable for increment 1 only with an external catalog and a copyable dataset. Poor as the long-term product surface if SAS later wants a branded login and self-serve onboarding (increment 9). A unique A1 workspace with no catalog is not increment 1 under the current offer.

4.2 Option A2: SAS-hosted BI

What it is: SAS operates a BI tool (Power BI Embedded, Tableau Cloud, Looker, Metabase, Superset, or similar) in a SAS cloud account. The pilot logs into a SAS-controlled workspace. Same two views, same monthly grain.

How 0-to-1 would look: extracts land in a SAS-operated store; SAS publishes the two reports; named pilot users get accounts. This is still a single-pilot analytics workspace, not multi-tenant SaaS. The product plan names this as the alternative “if the client will not share a workspace.”

Tradeoffs: what this makes easy:

Tradeoffs: what this makes hard:

Later-increment fit: better than A1 for a second site and for a versioned metric catalog SAS owns. Encounter drill-through still pushes the BI tool toward an operational app it is not. Custom UI can replace the BI skin later if the catalog and warehouse are separate.

4.3 Option A3: Custom web application

What it is: a SAS-branded application (typical shape: a web front end, an API, an identity provider, a warehouse or OLAP store) that renders Executive and Acute Care Coding views, with SAS-controlled auth.

How 0-to-1 would look: engineering stands up hosting, auth, CI, and two dashboards, then waits on the same extracts and the same SAS catalog as A1/A2. The product plan is still explicit: a custom web application, FHIR integrations, and a SAS-branded login are not required to prove the first hospital. They are packaging for resale. Building A3 with formulas in route handlers and no catalog is still a trap.

Tradeoffs: what this makes easy:

Tradeoffs: what this makes hard:

Later-increment fit: best destination packaging for resale and for increment 2+ (encounter, roles). Still a poor first move if it delays catalog + first trusted numbers. Compatible with the resale goal if the catalog/model are built first and the app wraps them.

4.4 Presentation family: comparison

A1 Client-tenant BI A2 SAS-hosted BI A3 Custom web app
Time to first trusted monthly view Shortest, if the client shares a workspace Medium; blocked on BAA/vendor-risk Longest; blocked on app + BAA + vendor-risk
Who hosts PHI (if any) Client (typical) SAS SAS (typical)
BAA required for SAS Often no, if SAS never stores files Yes, as soon as real data lands Yes, as soon as real data lands
Identity for 0-to-1 Client IdP SAS IdP or brokered SSO SAS IdP or brokered SSO
Hard to resell to hospital 2? Yes, unless catalog + dataset are SAS-owned and copyable Medium: copy the workspace Low: if catalog is not trapped in app code
Encounter drill-through (inc. 2) Awkward Awkward Natural
CDI manager surface (inc. 3) Another report Another report Another route
Daily refresh (inc. 4) Client gateway SAS ops + stable extract SAS ops + stable extract
Second EMR (inc. 7) Second tenant dataset Second pipeline, same host Connector in the app
Multi-tenant packaging (inc. 9) Poor unless already copyable Incomplete Intended home
Fit under resale goal Only with external catalog + deployable model Good for first sites Good as packaging; not required to prove hospital 1
Conditional on Q9 = must stay in client tenant and SAS still owns the model Q9 = SAS may host; Q10 BAA startable; Q23 security bar Resale packaging / increment 2+; catalog still first

Suggestion (not a stack decision): the live 0-to-1 fork is A1-as-deployable-product-artifact vs A2, gated on Q9 (will the client allow SAS to host, or must the same product stay in the client tenant). Treat A3 as packaging for resale and increment 2+, not as a fake-data UI, and not as a substitute for the catalog. A1-as-unique-consulting-file is out. Do not rebuild the mock-up with fake data.


5. Option family B: Ingestion and data path

Question this family answers: how do Epic, 3M 360 Encompass, and denial/remit facts arrive for a monthly, trailing-six-month load?

The product plan’s illustrated path is Epic + 3M 360 Encompass plus a claim/remittance extract. The mechanism is unanswered (Q8, Q11, Q12). Four mechanisms show up in the plan; they are not equally appropriate for 0-to-1.

5.1 Option B1: File extract / SFTP (or secure share) of existing reports

What it is: the client drops the smallest set of files they already produce: Epic Clarity/Caboodle or standard financial reports; 3M 360 Encompass productivity/quality/CMI reports; a denial/remit file onto SFTP or a secure share. SAS (or the client workspace) loads them on a weekly or monthly cadence. Manual load is acceptable for the first two cycles; script the load when the layout stops moving.

This is the product plan’s default 0-to-1 path (§5.2, §5.6, §5.3 “Live FHIR / real-time Epic APIs” deferred).

Tradeoffs: what this makes easy:

Tradeoffs: what this makes hard:

Later-increment fit: right for increment 1. Increment 2 needs row grain in the same files or a companion extract. Increment 4 likely replaces or automates the drop (still files, just scheduled). API-first can be added later; it is not implied.

5.2 Option B2: Direct warehouse access (Clarity / Caboodle / 3M subscription) without a new API product

What it is: still not FHIR. The client grants SAS (or a service principal in the client tenant) read access to Epic Clarity or Caboodle, and/or a 3M 360 Encompass report subscription, and SAS (or client ETL) pulls on a schedule into the dashboard dataset. Physically this may still land as extracts; politically it is “warehouse access,” which the product plan flags as slower than the dashboard build (Epic access is political; Clarity/Caboodle sits with client IT/analytics and a ticket queue).

Tradeoffs: what this makes easy:

Tradeoffs: what this makes hard:

Later-increment fit: good bridge from B1 to daily/row-level if the first client will grant it. Not a 0-to-1 requirement. Prefer existing reports if they already contain the named metrics.

5.3 Option B3: Live Epic / 3M APIs or FHIR

What it is: Epic FHIR (USCDI / App Orchard), Epic proprietary APIs, 3M 360 Encompass interfaces, or intra-day feeds so that coding/CDI refresh “while inpatient” (slide 6).

The product plan defers this: mock-ups are monthly; file drop is faster and sufficient for 0-to-1. Live FHIR / real-time Epic APIs / intra-day 3M refresh are not a v1 must-ship.

Tradeoffs: what this makes easy:

Tradeoffs: what this makes hard:

Later-increment fit: optional accelerator for increment 4, not a substitute for B1. Do not start Cerner FHIR in parallel (product plan: do not start Cerner in parallel with 0-to-1).

5.4 Option B4: mmmDB (bonus, not a gate)

What it is: Solventum mmmDB, which the deck calls optimal if they will allow. Product plan: do not block 0-to-1 on a vendor-permission long shot; prefer 3M 360 Encompass reports/extracts the client already runs; if the client already has mmmDB, use it as a bonus.

Tradeoffs: richer coding/CDI grain if permitted; permission and contract risk if treated as required. Treating mmmDB as a 0-to-1 gate is a self-inflicted one-way delay. Ask once (Q12); do not design the warehouse around a maybe.

5.5 Ingestion family: comparison

B1 File / SFTP of existing reports B2 Clarity/Caboodle or 3M subscription pull B3 Live APIs / FHIR B4 mmmDB
Fit for monthly 0-to-1 Intended path Optional if access is already easy Poor (overkill + delay) Bonus only
Client IT friction Lowest if files already exist High (ticket queue) Highest (interface + vendor) Vendor permission
PHI volume (typical) Whatever is in the file (can be aggregate or LDS) Wider unless tightly queried Continuous; more PHI Depends on allow-list
Join keys Must be in the extract contract More likely present Not sufficient for DNFB/DNFC alone Unknown until allowed
Increment 2 (encounter rows) New extract Same access, more columns Possible, still not the metric source Maybe
Increment 4 (daily) Must automate or replace Schedule change Native Maybe
Reversible? Yes; automate later Yes; can fall back to files Starting here is a delay, not a later add Yes if unused

Suggestion (not a stack decision): start from Q11 (what files they already produce) and Q8 (which path is available). Default to B1 into a canonical contract unless B2 is already granted. Hospital 1’s file layout is an adapter input, not the product schema. Do not design 0-to-1 around B3 or B4.


6. Option family C: Tenancy and company shape

Question this family answers: is the running system a single-hospital first deployment of a repeatable product, a full multi-tenant platform on day one, or (now closed) a one-off advisory workspace?

The offer is a resellable product with no to minimal customization. Increment 9 is packaging (entity model, self-onboarding, connector library), not a company-type conversion. Do not pretend 0-to-1 is increment 9. Do not implement 0-to-1 as a workspace that cannot be sold to hospital 2.

6.1 Option C1: Single-pilot analytics workspace

What it is: one facility, one set of extracts mapped into the canonical contract, one workspace (client tenant or SAS-operated) that is a deployment of the product, not a unique consulting file. No entity resolution across hospitals on day one. No customer self-onboarding. No pooled peer benchmarks.

This is still the product plan’s 0-to-1 deployment grain (§5.1, suggestion 13: one facility even inside a system). Under the resale goal, C1 without a portable catalog is not this option. That is a discarded advisory one-off.

Tradeoffs: what this makes easy:

Tradeoffs: what this makes hard:

Later-increment fit: correct for increment 1 deployment (one facility) if and only if catalog + adapter travel. Increment 9 is packaging on top of that, not a rewrite.

6.2 Option C2: Multi-tenant product platform from day one

What it is: orgs, tenant isolation, connector library, self-onboarding, possibly pooled de-identified benchmarks, SAS-branded login. Increment 9 brought forward.

Tradeoffs: what this makes easy:

Tradeoffs: what this makes hard:

Later-increment fit: destination packaging for the resale goal. Not a 0-to-1 option. Starting C2 is a one-way spend of the 0-to-1 window (you still need a catalog and a first hospital).

6.3 Option C3: Repeatable product, first hospital now, packaging later

What it is: the path the resale goal actually requires. Deliver C1 as a deployment with portable artifacts (versioned SAS-owned metric catalog, canonical extract contract, parameterized load, definition one-pagers, configuration-vs-customization boundary). Hospital 2 is adapter + config. After two hospitals prove the catalog, wrap A2/A3 and C2 as packaging (product plan increment 9).

The offer is a product. Sequence is deployment grain (one hospital first) vs platform packaging (increment 9).

Tradeoffs: what this makes easy:

Tradeoffs: what this makes hard:

Later-increment fit: the required family under the current offer. C2 remains increment 9. A consulting one-off is out.

6.4 Tenancy family: comparison

C1 Single-hospital deployment C2 Multi-tenant platform C3 Repeatable product, packaging later
Matches 0-to-1 deployment Yes (one facility) No (platform on day one) Yes: one facility, reusable artifacts
Time to trusted numbers Shortest if you skip the catalog (then you cannot resell) Longest Short, with catalog overhead (required)
Entity model One facility Required on day one Added at increment 9
Peer benchmarks Out (unless client file) Tempting, still no legal source Only if later rights exist
Reuse on hospital 2 Fail unless catalog travels Native Catalog reuse is the point
Offer fit Only as a product deployment Packaging too early Matches the resale offer
Conditional on Resale + one facility first Q23/Q9 closed and catalog already proven Resale goal (current)

Suggestion (not a stack decision): do not implement C2 as 0-to-1. Implement C1 as C3: one facility, SAS-owned catalog, canonical extract, configuration not forks. The portable catalog is the 0-to-1 architecture constraint.


7. Cross-cutting layers (options inside any family)

These are not a fourth “stack pick.” They are layers every honest option still has to place somewhere. Placement is a technical direction choice; the product is not.

7.1 Semantic / metric catalog vs dashboard-only formulas

Placement What it is Tradeoff
Dashboard-only DNFB, DNFC, CMI, etc. exist as Power BI measures, LookML, or app code Fastest first tile; a formula change silently rewrites history; swapping BI tools rewrites the product; two pilots diverge
Versioned metric catalog outside the viz layer One page per metric becomes a versioned object: numerator, denominator, exclusions, grain, source field, owner, effective date Slower first tile; formula change is an explicit version; history can be frozen; A1→A2→A3 and C1→C9 become migrations instead of rewrites

Product plan §12 names a versioned metric catalog as a production destination (“one agreed calculation” with change history). Increment 5: metric-definition versioning so a formula change does not silently rewrite history. Several of those controls must start in increment 1 as soon as real data is used.

Suggestion (not a stack decision): keep definitions in SAS-owned signed one-pagers plus a machine-readable catalog (even a versioned YAML/SQL folder in git) rather than only in a BI measure. Under the resale goal this is required in increment 1, not a later hedge. Waiting until “we are a product” is how silos reappear inside SAS’s own tool and how hospital 2 becomes a rebuild (product plan suggestion 2).

Do not fill the catalog with invented formulas. The workshop fills the 0-to-1 plan’s metric questions for catalog v1. SAS owns the catalog; hospitals own configuration.

7.2 Warehouse vs BI import vs files-as-source

Placement Tradeoff for monthly 0-to-1
BI import from files (no warehouse) Least moving parts; poor audit of loads; increment 2/4 will outgrow it
Lightweight store SAS or client already has (Fabric lakehouse, Snowflake, even a locked DuckDB/Parquet landing zone) A place for raw + conformed + load logs; still not “a platform”
Client Caboodle as the warehouse Avoids a second source of truth; SAS may not be allowed to write; political access
Full SAS multi-tenant warehouse C2 in disguise; not 0-to-1

A warehouse is not the product. The join of Epic unbilled + 3M severity + remit denials at facility-month grain (0-to-1) or encounter grain (increment 2) is the product’s data problem.

7.3 Identity and access

0-to-1 pattern Tradeoff
Named users in a shared workspace (client IdP) Enough for two manager/executive views; no coder work-queue authz
SAS-issued local accounts + MFA Works for A2/A3; SSO may still be the hospital’s gate
Full SSO / SCIM / customer IdP federation Production destination; often a first-client gate, not a SAS preference
Role-based authz matching slide 9 (CFO, HIM, CDI, Quality, later coder) Executive vs manager can be two reports or two roles in increment 1; encounter-level least privilege waits on increment 2

Authz by role is a production destination (vision and roadmap). For 0-to-1, two named audiences and a shared extract are enough if the hospital sends aggregate-only KPIs. If it sends row-level encounter data, least privilege and access logging move from destination to day one.


8. One-way door vs incremental / reversible

Bezos’s metaphor, applied here: a one-way door is expensive or legally messy to undo (data copies, contracts, company type, trust). An incremental decision can be reversed or layered after the first trusted monthly view. Classification is about reversibility, not about importance. A reversible decision can still be urgent.

8.1 Company / offer shape

Classification: one-way to treat as a consulting one-off. The offer is a resellable product with no to minimal customization. Implementing a unique advisory workspace (forked measures, unique layout) is a one-way door against that offer. Implementing C2 (full multi-tenant platform) on day one is a different one-way door: it spends the window on packaging before hospital 1 trusts a number.

Incremental: C3: one-facility deployment with a SAS-owned catalog, canonical extract, and configuration-vs-customization boundary. Hospital 2 is adapter + config. Increment 9 packaging can wait.

Hosting (0-to-1 plan question 9) and BI vs custom app remain choosable. Forking hospital 1’s formulas is not. Going back to per-hospital consulting dashboards would be a commercial and technical reset.

8.2 Who hosts PHI, and whether a BAA is required

Classification: one-way door.

Why: the moment SAS receives or stores PHI or a limited data set without a BAA, that is a legal event, not a refactor. Copies persist (SFTP disks, BI caches, email, laptops, backup). Switching from SAS-hosted to client-tenant later means proving deletion; switching the other way restarts vendor-risk. Counsel, not engineering, closes this. This document classifies it; it cannot close it. There is no named pilot and no BAA in-repo.

Aggregate-only KPIs (if counsel agrees they are not PHI) shrink the door but do not remove it: facility-level extracts with dates of service can still be PHI or a limited data set. Whether the hospital sends aggregates or encounter rows is an open question; “monthly dashboard” is not an answer.

8.3 Identity / security minimum

Classification: mixed. Some incremental, some one-way for a given client.

Decision Class Why
MFA for named users Incremental to add; often one-way as a client gate (cannot go live without it) Cheap to enable on A1 (client already has it) and on A2/A3
SSO / corporate IdP Often a one-way client gate If the first client requires SSO, local passwords will not pass vendor-risk. If they do not, SSO can wait for increment 5 hardening
SOC 2 / HITRUST as SAS posture One-way investment (you do not un-buy it); not required to start A1 Required only if SAS hosts and the client’s questionnaire says so
Hosting region One-way once data resides there Moving PHI across regions/clouds is a project; picking a region with no data yet is reversible
SAS privacy/security owner One-way as an org assignment, incremental as tooling Without an owner, every other control is theater

8.4 Warehouse / metric catalog vs dashboard-only formulas

Classification: required in increment 1 (resale goal); one-way after the first hospital’s trusted numbers if the catalog was skipped.

Why: the first load can be a BI import. After the CFO has accepted a DNFB tile, that measure is the definition in practice. Changing it rewrites history unless versioned (increment 5 requirement, needed as soon as real data is used). Two diverging pilots make harvest into a catalog a rewrite.

Suggestion: take the incremental door now (external versioned catalog, even if the viz is Power BI). Waiting is how the door swings shut.

8.5 Extract contract vs API-first (Q8, Q11)

Classification: extract-first is incremental; API-first as 0-to-1 is a one-way delay.

Why: B1→B2→automated drop→optional B3 is a legal sequence (increments 1, 2, 4). Starting on FHIR/App Orchard spends the window and still needs the extract fields FHIR does not have (DNFB clocks, min/chart, audit samples).

The extract schema becomes sticky: once SAS and the client reconcile to a file layout, changing keys (account vs encounter vs CSN vs medical record) is a one-way-ish data-model door. Write the join keys down in the extract agreement. That is still not an API-first decision.

8.6 BI tool vs custom app (family A)

Classification: incremental if the catalog and conformed model sit outside the viz layer; one-way if the product is the BI file or the app codebase.

A1→A2 is a republish. A2→A3 is a new skin on the same catalog. A3 as the first artifact, with formulas in route handlers, is a one-way custom-app bet. Product plan suggestion 3: do not deliver 0-to-1 as a one-off client-tenant file; a branded app is packaging after the catalog is copyable, not a fake-data rebuild.

8.7 Later adapters (explicitly incremental)

These are sequenced in docs/planning/product-vision-and-roadmap.md. None should be treated as 0-to-1 architecture constraints. None require throwing away a working monthly Executive + Acute Care Coding pair if grain and catalog were honest.

Later adapter Class What it adds, not what it replaces
Encounter drill-through (increment 2) Incremental capability; step-change in PHI/authz Row grain behind the same tiles; read-only reconciling list, not a worklist product unless SAS intends to replace 3M/Epic queues
CDI manager surface (increment 3) Incremental Second manager dashboard, same Epic + 3M, same site
Daily mid-stay refresh (increment 4) Incremental pipeline; requires a stable automated extract Cadence change; slide 6 vs monthly mock-ups can both be true later; 0-to-1 cannot be both
Production hardening evidence (increment 5) Incremental evidence; some controls are day one if PHI exists Policies, pen-test, SSO, uptime (not the first BAA)
Profee (increment 6) Incremental product line, not a filter Different EMR mix, different buyer; reuse catalog/auth patterns
Second hospital EMR / Cerner (increment 7) Incremental adapter Only after Epic + 3M is boringly repeatable; do not start in parallel
Quality (increment 8) Incremental only if TBD is resolved Not a v1 must-ship; do not integrate three quality vendors
Multi-site / multi-tenant (increment 9) Packaging; one-way if started as 0-to-1 Entity model, self-onboarding, connector library, peer pool if legal

8.8 Classification summary

Decision One-way door Incremental / reversible
Company / offer shape One-way to implement a one-off against the resale offer C3 (one facility + portable catalog); C2 packaging later
Who hosts PHI / BAA required Yes Aggregate-only might shrink, does not erase
Identity/security minimum SSO/SOC2/region once required or once data lives there MFA tooling, adding SSO later if not a gate
Metric catalog vs dashboard-only formulas After trusted numbers exist without versions External catalog from cycle 1
Extract contract vs API-first API-first as 0-to-1; sticky join keys File drop → automate → optional APIs
BI tool vs custom app If the viz layer is the product If catalog/model are separate
Encounter drill-through PHI/authz step-change Surface on top of same tiles
CDI manager, daily refresh, second EMR, Profee, Quality No (Quality only if TBD resolved) Yes, sequenced
Multi-tenant platform as v1 Yes (wrong door) Increment 9 later

9. Questions that must be answered to fine-tune technical direction

These are distinct from beachhead decisions (Executive + Acute Care Coding; Epic + 3M) and from SAS staffing facts. Numbering follows the 0-to-1 plan. T-n items are extra technical questions, not metric formulas.

The product is a resellable product with no to minimal per-hospital customization. First deployment is one Epic + 3M facility (decision B). Multi-tenant self-serve packaging is increment 9. SAS owns the catalog (Product Owner owns delivery); hospitals own configuration. Technical Owner is SAS privacy/security owner. SAS waits until a hospital pilot is selected.

9.1 SAS: buyer, pricing, configuration policy

  1. Q1. Economic buyer: CFO, VP Revenue Cycle, HIM, or SAS’s own consulting delivery team? (Affects who must log in, therefore identity placement.)
  2. Q2. Once a pilot is named, what should be true in 6 months: a live product with a first hospital’s numbers and a credible hospital-2 path? (A branded-demo build is out.)
  3. Q4. Priced as what: pilot fee or software subscription? An unscoped engagement add-on that implies per-hospital build conflicts with resale.

T-1b. What is the written list of allowed configuration keys (targets, maps, facility ids, calendar) vs a product-change request vs a no-fit?

9.2 Hospital: hosting, data path, and security

The hospital must answer. SAS cannot decide these alone. They close option families A and B.

  1. Q6. Who is the first hospital, and do they run Epic + 3M 360 Encompass today?
  2. Q9. Will the hospital allow SAS to host, or must the same product stay in the hospital tenant?
  3. If hospital tenant: does SAS receive files (SAS sees PHI/LDS) or only send a deployable artifact?
  4. If SAS hosts: which cloud account and region will that hospital accept?
  5. Q10. Is a BAA in place or startable now? What is the vendor-security questionnaire timeline?
  6. Q8. What data-sharing path is available: SFTP of existing reports, Epic Clarity/Caboodle access, 3M report subscription, mmmDB, something else?
  7. Q11. What files do they already produce weekly/monthly for DNFB, coding productivity, 3M CMI/CC/MCC, audit, and denials?
  8. What join keys do they already use across Epic unbilled, 3M, and remit?
  9. Who operates SFTP/the share, and what refresh SLA will they commit to?
  10. Q12. Will mmmDB be allowed, or is that off the table? (Bonus, not a gate.)
  11. Q23. What is the minimum security bar the first hospital will require (MFA, SSO, SOC 2, HITRUST, hosting region)?
  12. Q24. Aggregate-only KPIs vs row-level encounter data: which will the hospital actually send?
  13. What is the actual file grain they will send: facility-month aggregates, encounter-level limited data set, or mixed?

T-7. After counsel reviews the actual file (not the mock-up), is the 0-to-1 payload de-identified, a limited data set, or PHI? Engineering cannot declare this from “monthly dashboard.”
T-8. Retention and exit: how long may SAS keep extracts, and what is the deletion procedure if the numbers cannot be reconciled in two cycles?

T-9. Is encryption in transit/at rest, access logging, and backup already on the questionnaire even for a file drop into a hospital-tenant workspace (SAS as guest) or only for SAS-hosted systems?
T-10. Are SAS laptops / email in scope if an analyst opens the extract to debug a DNFB mismatch? (They usually are. This is an endpoint and DLP question, not a BI-tool question.)

9.6 Questions that do not choose among option families


10. Other technical information the stack choice depends on

10.1 PHI, limited data set, aggregate-only

Known risk (0-to-1 plan): encounter detail, and even facility-level extracts with dates of service, can be PHI or a limited data set. Advisory firms hosting this without a BAA, minimum necessary, and access logging are in legal risk from the first real file. Monthly KPIs might be de-identified aggregates. That is a question for counsel (Q24, T-7), not an assumption.

Implications for every option family:

This evaluation is not a HIPAA policy. It records that stack choice is downstream of Q9/Q10/Q24/T-7.

10.2 Increment 1 vs later increments (grain, sources, surfaces)

Increment 1 (0-to-1) Later (not v1 must-ship)
Grain Monthly, trailing six months Daily-while-inpatient (inc. 4); encounter rows (inc. 2)
Sources Epic + 3M 360 Encompass + remit/denial extract Cerner adapter (inc. 7); Profee EMRs (inc. 6); quality vendors if TBD resolved (inc. 8); mmmDB if allowed
Surfaces Executive + Acute Care Coding manager Encounter reconciling list (inc. 2); CDI manager (inc. 3); Profee; Quality
Tenancy One facility Multi-site entity model (inc. 9)
Refresh Weekly or monthly; manual first two cycles Automated; monitored SLA
Authz Named executive/manager users Role + row-level; possible work-queue

Technical consequence: 0-to-1 is an OLAP / monthly fact problem, not an operational worklist problem and not a FHIR problem. Stacks optimized for intra-day encounter workflow (custom app + FHIR + row-level authz) optimize the wrong increment. Stacks that cannot later add a row grain (pure KPI files with no key) block increment 2. The hedge is: monthly facts and documented keys, without shipping the worklist.

10.3 Metric-definition versioning (so a formula change does not silently rewrite history)

Known destination (vision and roadmap, increment 5 and production-ready): a versioned metric catalog with change history; who approves a formula change is operational ownership.

Why it belongs in a stack evaluation:

Minimum technical pattern (suggestion, not a formula spec):

Do not code numerators here. The 0-to-1 plan’s workshop questions stay open.

10.4 Extract freshness and monitoring

Known: weekly or monthly refresh; manual acceptable for first two cycles; script when layout stops moving. Increment 5: monitoring of extract freshness. Operational ownership: who is paged when the extract is late; who approves a formula change.

0-to-1 bar (suggestion): even a manual SFTP drop needs a written check: file arrived, row count vs last month, schema (column names) unchanged, join key uniqueness, and “does DNFB match the client spreadsheet within agreed tolerance.” That can be a checklist before it is a pager. Once the tile is trusted, an undetected missed drop is worse than a late spreadsheet. Leaders will have acted.

Increment 4 bar: automated extract, freshness SLO, schema-drift alerts. Not day one.

10.5 Authorization by role

Slide 9 roles: CFO / VP Revenue Cycle; HIM / Coding Director; CDI Director; Quality / Compliance. 0-to-1 only must serve the first two for the two mocked views. CDI Director gets executive tiles (CMI, CC/MCC), not their own dashboard until increment 3. Quality is TBD.

0-to-1: two reports or two workspace roles is enough. Shared extracts underneath so the CFO’s DNFB/CMI/denials and the HIM director’s DNFC/productivity/quality are one story.

Increment 2: row-level access, break-glass, and “minimum necessary” on account identifiers. Suggestion from the product plan: read-only reconciling list, not a workflow app that assigns queues.

Destination: access control by role matching slide 9, with MFA and, for hosted PHI, a BAA and audit logs.

Do not design coder work-queue permissions in the 0-to-1 stack. That is how encounter worklist sneaks in as a “small add.”

10.6 What production-ready will eventually require (destination, not day-one scope)

When SAS is ready to call a deployment production-ready, the vision-and-roadmap destination is:

Increment 5 adds: HIPAA/BAA if not already in place the moment PHI moved; audit logs; encryption in transit/at rest; named-user access with MFA; backup/restore; environment separation; metric-definition versioning; extract freshness monitoring. These are not optional if real patient or even limited-data-set rows exist; several must start in increment 1 as soon as real data is used. What waits is hardening and evidence (policies, pen-test, SSO, uptime target), not the first BAA.

None of that is required to prove the thesis. The thesis is proved when one CFO and one HIM director stop waiting on a spreadsheet for the named mid-cycle metrics.

Adapter pattern (destination sketch, not a 0-to-1 build): one conformed facility-month (later encounter) model; per-source adapters that only map keys and fields into that model; metric catalog reads the conformed model, not Epic or 3M natively. That is how increment 7 (Cerner) does not fork the dashboards. Writing Cerner mappings now is out of scope.

10.7 Logical architecture (stack-agnostic)

Every option family still has these layers. Vendors are not assigned.

flowchart TD epic[Epic ADT / HB / unbilled] t3m[3M 360 Encompass] remit[Remit / denial file] epic --> extract[Extract: files / SFTP / later pull] t3m --> extract remit --> extract extract --> land[Landing: raw, immutable] land --> facts[Conformed facts: facility-month now] facts --> catalog[Versioned metric catalog] catalog --> ui[Presentation: Executive plus Acute Care Coding] ui --> id[Identity: named users] ui --> ops[Ops: freshness, schema drift, backup, access logs]

This diagram is a constraint, not a product pick. A1, A2, and A3 all implement it; they differ in who hosts which box.

10.8 What cannot be built yet (even though it is technical)

Until Q6 names a pilot and Q8/Q11 produce files:

Until Q9/Q23:

The product plan’s 30-day path if a pilot can be named: metric workshop, extract inventory, BAA/security started, file layouts in a folder, with no UI work beyond sketching the two mock-up views onto agreed metrics. If no pilot is selected: wait. Do not staff a UI. The deck stays sales collateral.


11. Conditional direction (suggestions only)

The offer is a resellable product. These are if/then hedges on the open questions, not “the stack.” A row that would rebuild a unique dashboard per hospital is out.

If these answers land… Then the least-regret 0-to-1 shape is… Still do not…
Q9 = must stay in client tenant A1 as a deployable SAS-owned model + B1 adapter into canonical extract + C3 Fork measures in the hospital’s workspace; skip the catalog; treat A1 as a consulting file
Q9 = SAS may host; Q10 BAA startable; Q23 does not demand HITRUST-before-pilot A2 + B1 + C3 Multi-tenant isolation, self-onboarding, Cerner, Quality-TBD; unique reports per hospital
Named Epic+3M pilot and Q23/Q9 closed Still one facility for increment 1; design A3/C2 as the wrap after two hospitals prove the catalog Ship increment 9 as v1; treat Profee/Quality/encounter worklist as must-ship
Q8/Q11 = existing 3M + Epic financial reports on SFTP B1 mapped into the canonical contract Block on mmmDB or App Orchard; let hospital 1’s file layout become the warehouse schema
Q8 = Caboodle already granted B2 for columns that beat the report; keep B1 as fallback Rewrite DNFB in SQL before the workshop; make Caboodle SQL the catalog
Q24 = aggregate-only and counsel agrees Shrink PHI controls to the file that actually exists Collect encounter identifiers “for later”
Q24 = encounter rows in 0-to-1 Treat increment 2 PHI/authz as in increment 1; revisit whether 0-to-1 is still monthly tiles Pretend it is still “just a dashboard”
Q6 = no pilot Wait until a hospital pilot is selected. No UI. Rebuild slides 10–11 in a custom UI with fake data; invent DNFB from mock-up tiles
Q23 = SSO + HITRUST + SAS-hosted, before any file Security/BAA is the project; dashboard is not Parallel custom-app build “to look like a product”; meanwhile fork a client-tenant file “just for now”
flowchart TD q6{Named Epic plus 3M hospital?} q6 -->|No| wait[Wait until a hospital pilot is selected. No UI.] q6 -->|Yes| q9{Q9: who hosts?} q9 -->|Hospital tenant| a1[A1: SAS-owned deployable model plus B1 adapter plus C3] q9 -->|SAS may host| a2[A2 plus B1 plus C3]

The table above is the full if/then set. The diagram is only the hosting fork and the no-pilot gate.

Power BI is cited as a common A1 skin, not as a signed-off tool. Tableau, Looker, or a later custom app are the same family if they sit on the SAS catalog. The resale goal does not pick among them; it forbids a unique, non-copyable workspace.


12. How this evaluation stays grounded

Source fact How this evaluation uses it
0-to-1 slice Bounding box for every option; anything outside is a later increment
0-to-1 out-of-scope list Quality-TBD, Profee, encounter worklist, other EMRs, mmmDB-as-gate, FHIR, multi-tenant SaaS hardening are not v1 stack requirements
0-to-1 delivery shape Repeatable product, first hospital; configuration vs customization; not a stack lock
Vision and roadmap increments Adapter sequence; increment 1 vs destination; increment 9 is packaging
One-off vs resale A1-as-consulting-file is out; hosting (Q9) is open
Offer Resellable product, no to minimal customization
Open hospital questions Q8, Q9, Q23, Q24 Data path, hosting, security bar, PHI grain: option families are conditional on them
Production-ready destination Destination, not day-one scope; catalog and Epic+3M adapter start in increment 1
No named pilot, no formulas, no locked stack Observed here as well

End of evaluation. Option families are analysis. Open questions in §9 stay open until SAS leadership and the first hospital answer them. No stack in this document is a decision.