Centers for Medicare & Medicaid Services
Methodology v1.6Last reviewed 2026-07-18Changelog ↓Download PDF →
Integrated, with-data, fresh-observation, and source-specific completeness are different grains. The platform publishes no aggregate complete-source count. State Medicaid jurisdiction coverage is separate. Source pages state their own expected scope and available release context.
Principle 1
Named public sources, with scope stated.
Fonteum's registry spans US federal and state public records, sanctions and watchlists, enforcement data, and global public company registers. Source pages identify the named authority, acquisition method, license posture, coverage, and limitations where those fields are available. The publisher cards below are representative examples, not a complete authority inventory.
CMS publishes source files for facility quality, provider identity, staffing, and financial performance. HHS-OIG publishes the federal exclusion list. HRSA covers shortage areas and FQHC sites; BLS and BEA supply labor-market context; the Census Bureau supplies population denominators. State and global registers have different jurisdictions and coverage rules.
Fonteum also publishes derived joins and aggregates. Those transformations are identified as analysis rather than represented as raw source fields.
- Named datasets covering facility quality, provider identity, staffing, cost reports, and payment programs — NPPES, PECOS, Provider of Services, the Care Compare family, PBJ staffing, HCRIS, Open Payments, and QPP MIPS.
HHS Office of Inspector General
HHS-OIG
Federal exclusion and enforcement records: the List of Excluded Individuals and Entities (LEIE), Corporate Integrity Agreements, and Civil Money Penalties — the federal record of exclusion from and enforcement within federal health-care programs.Health Resources & Services Administration
HRSA
Shortage-area and safety-net coverage: HPSA designations and the Uniform Data System (UDS) for federally qualified health centers.Labor, economic, and population context
BLS · BEA · Census
Bureau of Labor Statistics (OEWS / QCEW wages and employment), Bureau of Economic Analysis (regional economics), and the Census Bureau population estimates that power per-capita denominators. Plus a handful of state licensing and Medicaid-exclusion feeds.
Principle 2
A fourteen-field provenance contract.
Fonteum defines a fourteen-field provenance envelope. Availability is source- and surface-specific: a response can contain null or absent fields, and no deterministic claim-to-signature linkage exists for the provenance facts today.
The FHIR R4 API surfaces this as a structured meta.tag array where implemented. JSON and audit-pack exports document their own included provenance columns; consumers should inspect the returned schema rather than assume all fourteen fields are present.
| Field | Tag | Description |
|---|---|---|
| Source name | _source | Issuing authority when supplied by the response. |
| Source URL | _source_url | Nullable source link; access and reuse terms vary. |
| Dataset ID | _dataset_id | Publisher identifier when supplied. |
| Snapshot date | _snapshot | Nullable source or observation date for the identified row. |
| Methodology version | _methodology | Transformation contract. Monotonic. |
| Last checked | _last_checked | Nullable UTC observation time supplied by the surface. |
| Confidence | _confidence | Nullable source-specific method value; not universally populated. |
| Availability | _data_availability | Present, missing, restricted, deprecated. |
| Pipeline version | _pipeline_version | Nullable build identifier when the surface publishes one. |
| DOI | _doi | Reserved nullable field. Fonteum has not published a DOI for this methodology. |
| License | _license | SPDX identifier for redistribution rights. |
| Coverage start | _coverage_period_start | Nullable ISO-8601 coverage start when known. |
| Coverage end | _coverage_period_end | Nullable ISO-8601 coverage end when known. |
| SLSA provenance URL | _slsa_provenance_url | Reserved nullable field. No universal SLSA artifact is published. |
Principle 3
Source-specific cadence and dated observations.
Platform row counts can be observed on a given day without the underlying source having refreshed that day. Each record should distinguish the source release date, Fonteum ingestion timestamp, and count-observation date where those fields exist.
Diff and history coverage varies by source. Retained prior rows can show changes only from the date Fonteum began banking that source; they do not reconstruct an unlimited past.
Integrity hash boundary
Row-level commitments begin 2026-08-01T00:00:00Z.
Before this boundary, attestations labelled count-observation-v1 hashed a source id, observation date, and row count. Those hashes commit to the recorded count, not to the values inside the rows. Their historical content_size_bytes value is a row count, not a byte measurement.
The old attestations, signatures, and chain links remain unchanged. They are not replaced or silently upgraded. This preserves the record of what the earlier system actually signed and makes the limitation visible to anyone reviewing the chain.
At and after the boundary, an attestation may use fonteum-row-merkle-jcs-v1 only after the complete normalized rowset has been stored immutably. It commits to every row value, records row count separately, and measures the exact bytes in the canonical NDJSON export. The canonicalization and Merkle specification includes an independent reference command and mutation vector.
Technical methodology
How each layer works.
Source-pack ingestion
How a public dataset becomes a wired source.
Five-stage pipeline: (1) versioned manifest — authority, license, field list, restricted-source check; (2) bounded dry-run pilot and match-rate validation; (3) confidence calibration and low-confidence exclusion; (4) registry write to the sources registry; (5) public surfacing via SourceChip and provenance card.
Entity matching
Connecting profiles to source records.
Deterministic match on a stable identifier (NPI, CMS Certification Number) with probabilistic fallback on name, address, and taxonomy code. A confidence tier is assigned at match time. Low-confidence matches stay internal and are never displayed publicly.
Provenance architecture
The fourteen-field contract.
Fonteum's provenance schema defines fourteen possible fields — source, source URL, dataset ID, snapshot date, methodology version, last-checked timestamp, confidence, availability, pipeline version, DOI, license, coverage start, coverage end, and SLSA provenance URL. Fields can be null or unavailable for a particular source. The shape draws on W3C PROV-DM and FAIR vocabulary; it is not a claim that every returned value has all fourteen fields. Wire shape at /data-provenance; UI shape on the SourceChip.
Confidence scoring
Tiering today and on the roadmap.
Tier high requires a stable-identifier match plus address agreement. Tier medium requires multi-field agreement without a stable identifier. Tier low covers residual ambiguity and is not displayed publicly. The threshold is deterministic and manually reviewed; a learned-model approach is planned once labeled gold sets are in place.
Historical change detection
Versioned at the field level.
Retained row history is source-specific, not universal. As of July 12, production banks some closed row versions for UK sanctions, procurement awards, provenance claims, OFAC SDN, and UN sanctions; EU sanctions had no closed versions. Published cadences also differ: HHS-OIG LEIE monthly, CMS PECOS monthly, and CMS Care Compare, Provider of Services, and PBJ on their published periodic releases.
Reproducibility
How to re-run any published figure.
Source pages link to the named authority, public file, and method where available. CMS publishes many files at data.cms.gov; HHS-OIG publishes the exclusion list at oig.hhs.gov/exclusions. Reproduction depends on the source's retained release and the limitations stated on the page; not every historical release remains available upstream.
Citation guidance
How to cite Fonteum data.
Recommended form: Fonteum, "[Dataset Name]," [Month YYYY]. https://fonteum.com/data/[slug]. Source: CMS [dataset] via data.cms.gov. For research reports: Fonteum Research, "[Report Title]," [Month YYYY]. https://fonteum.com/research/[slug]. AP-style short and BibTeX variants are available on each report page.
What Fonteum does NOT claim
Explicit disclaimer.
Fonteum does not independently attest to provider credentials. Fonteum does not claim a provider is qualified, currently active, or in good standing. Coverage spans named US federal, state, sanctions, and global public-register sources. Some pages derive joins and aggregates from those records; the method and limitation belong beside the result. Any count on this site describes the Fonteum dataset, not a representative sample of a broader market.
The per-NPI composite methodology is versioned and pinned separately — see the composite methodology specification for how the API's composite records are assembled.
Open data. Open methods.
Public fields identify their named source when the provenance record supplies it.
CMS publishes many of its files at data.cms.gov. HHS-OIG publishes the exclusion list at oig.hhs.gov/exclusions. Source pages link to the public authority and available file; reproducibility depends on the authority retaining the cited release and on the page's stated transformations and limitations.
For procurement teams that need the full audit package — methodology document, per-field provenance map, reproducibility statement, SOC 2 status, and BAA template — everything is in the audit pack.
References
Methodology changelog
What changed, by release.
2026-07-18
Doctrine
Source authority now follows the issuer named on the record.
The sitewide agency inventory was removed because it did not describe sanctions, procurement, global-register, recall, carrier, and other non-healthcare pages. Shared copy now treats authority as record-specific, and representative source-family lists state that they are not complete inventories or proof of loaded coverage.
2026-07-18
Schema
Source lifecycle and state jurisdiction are separate query-reproducible measures.
Platform coverage v3 separates active source-registry rows, distinct snapshot IDs with positive record counts, and distinct snapshot IDs whose latest positive-data observation falls within 45 days. Distinct state values in the state Medicaid exclusions table are a separate jurisdiction measure. No platform-wide complete-source count is published; completeness is assessed against each named source's expected scope.
2026-07-15
Doctrine
Public freshness now requires a proved canonical content transition.
Public dataset content freshness now binds to the exact serving-table namespace. A parent dataset, sibling table, job run, ledger observation, publisher release, artifact snapshot, or coverage date cannot advance that serving dataset without an attested derived link; when exact-serving evidence is absent or conflicted, freshness remains unknown. This content-transition standard is separate from the platform sources_fresh observation count.
2026-07-14
Research rule
Indexed study figures now require cap-safe SQL and fail closed when a derivation is unsupported.
The audit covered 118 indexed URLs and 197 quantitative claim vectors: 129 reproduced, 54 drifted, and 14 were unsupported. Surviving figures now carry current values, real observation dates, and committed server-side SQL. No default-limited PostgREST read is accepted as evidence. The six studies with unsupported vectors are held as pending withdrawals for an operator decision. Debarment scorecard methodology v2 defines active-at-cutoff as status Active with no termination date or a termination date after 2026-07-14, and limits the activation-year chart to 1989–2026 while disclosing dated outliers.
2026-07-12
Doctrine
Public counts, freshness, history, and cryptographic claims tied to production evidence.
Public surfaces moved registry and state-jurisdiction counts to a dated production observation and labeled the generated catalog as a documented subset. Source-file hash coverage and claim-to-signature linkage were disclosed as separate dated observations. Source recency was separated from publisher cadence, state Medicaid coverage was scoped to represented jurisdictions, replay was limited to named tables with retained history, and OpenTimestamps records were not described as mainnet-validated.
2026-07-12
Schema
Snapshot commitments move from count-grain hashes to sealed row-level Merkle roots.
The dated cutover is 2026-08-01T00:00:00Z. Before it, count-observation-v1 attestations committed only to source id, observation date, and row count, and their content_size_bytes value was the row count. At and after the boundary, fonteum-row-merkle-jcs-v1 commits every stored normalized row value, keeps row_count separate, and records canonical bytes. Historical hashes, signatures, and chain links remain unchanged.
2026-07-12
Schema
Exclusion screening becomes tri-state and fails closed on stale coverage.
Exclusion attestations now use exclusion-attestation/v2. Negative fields are nullable, and exclusion responses carry a match / no_match / indeterminate determination plus serving and attested dates and the comparable snapshot ID. A no-match determination is emitted only when serving coverage is current and reconciled; stale or unreconciled coverage is indeterminate and is not a clearance. The NPI composite methodology is now v2 because active_and_clean follows the same tri-state contract.
2026-05-03
UX / surface
Data Graph Visual v2 — moat as a one-second picture.
Homepage and /data-provenance now render a unified `DataGraphV2` schematic — three columns (Sources → Pipeline → Surfaces) at desktop, stacked vertically on mobile. Source nodes are real `<Link>` elements pointing at `/sources/[slug]`, color-coded by status (live / research-only / pending). Counters are derived live from `getNetworkStats()` + `getAllStudies()` + `SOURCES.length` — no hardcoded literals.
2026-05-03
Doctrine
Sources Library v2 — status field + restricted-sources doctrine.
Source-registry types extended with a `status` enum (live / research-only / pending-records-request / deferred) and two new tier values (`pending-manual`, `first-party-research`). Each source page now renders a status chip + ToS-and-usage-notes section + a worked sample-provenance line. /sources adds a 'Sources we do not use' rail with the four restricted/no-go datasets (NMLS, state bars, ABMS / CertiFacts, Google Places / GBP backfill) and the honest reason per item.
2026-05-03
UX / surface
/press rebuilt as a journalist + data-user landing page.
Press kit now carries a 'What we do not claim' doctrine block, a featured-datasets list (6 studies with source / snapshot / row count / Limitations deep-link), a copy-paste citation template, 5 story angles tied to specific studies, and a /data-platform cross-link tile. Counters derive live from `getNetworkStats()` — never hardcoded on the page. Doctrine: no fake press-mention logo strip, no fake customer / partner claims, no headshot placeholder.
2026-05-03
UX / surface
/data-platform — B2B / data-product surface.
New /data-platform page surfaces every dataset in a live catalog (sourced from the research registry) plus four explicitly-labeled 'concept' B2B export scopes. Includes a 'What we do not provide' guardrail block (no pre-screened provider lists, no restricted-source resale, no patient/customer data, no Google Places backfill, no paid API). Replaces the legacy /data press kit; /datasets aliases redirect here.
2026-05-03
UX / surface
Brand chart palette + StatTable typography polish.
All eight Sprint-1 + CMS Care Compare research-chart SVGs were regenerated with a unified brand palette — bars in `#B45309` (brand teal), bottom-rated emphasis in `#b91c1c` (warn). StatTable headers carry an explicit `ui-monospace` font-family + tightened weight, and Highest/Lowest emphasis pills now use brand teal + paper tones. No data changed; only chart color tokens + table typography.
2026-05-03
UX / surface
/directories Coverage Atlas — explicit 4-status taxonomy per cell.
Coverage Atlas grid now resolves every (vertical × source-family) cell into one of four statuses (`live`, `research-snapshot`, `pending-pack`, `not-applicable`) instead of a binary check/no-check. Status legend visible above the grid; each cell carries a status badge + tooltip + (where applicable) a vertical/source link.
2026-05-03
UX / surface
Research study template reskinned to brand tokens.
Study pages (`/research/[slug]`) now render in the brand-token palette (Fraunces hero, paper/cream cards, mist borders, brand-teal accents on charts and CTAs). Citation aside, methodology accordion, FAQs, related-studies block, and chart figures all share a unified visual register. StatTable wrapper gained a horizontal-scroll affordance for narrow viewports.
2026-05-03
UX / surface
/directories repositioned as Coverage / Network Map.
The /directories page is no longer a flat list of Fonteum-operated directories. Verticals are now grouped by source family (Healthcare graph, Trades graph, Care/Research graph, Indexed coverage). Each card carries a status chip — `live` when source-pack writes are active, `pending` when only the manifest is registered. The grouping is derived live from the sources registry.
2026-05-03
Schema
Single canonical data-snapshot date across the brand hub.
BrandNav, /press factsheet, /data-provenance, footer, and research aggregates now all read from a single `DATA_SNAPSHOT_DATE_ISO` constant. Previously the date drifted across four different literals (April 24, April 25, May 1, May 3), which made the brand hub feel un-versioned. Refresh procedure: bump the constant.
2026-05-03
Research rule
Research pages carry an explicit AI-citation summary + Limitations panel.
Every research study page now renders a `What this dataset covers / does NOT cover` block above the methodology section, plus a Limitations section before the methodology. Dataset JSON-LD only emits when downloadable data exists, with `temporalCoverage` and `spatialCoverage` populated. Doctrine fallback applies when an individual study hasn't authored explicit limitations yet.
2026-05-03
Doctrine
Public source library at /sources.
The source library added stable detail pages for registered public-record sources at /sources/[slug]. Source pages document tier, declared publisher cadence, fields used, write-locked fields, and doctrine where those values apply. The launch gate requires explicit limitations and a doctrine line for registered entries.
2026-05-03
Display rule
Profile provenance reveal cards on listing detail pages.
Supported source-backed fields on individual provider profiles began rendering through a shared `ProvenanceCard` component with SourceChip and limitation panels. The non-endorsement sentence renders alongside supported cited values rather than only in a footer; source and date fields remain nullable.
2026-05-03
UX / surface
/data-provenance upgraded to the public Data Graph page.
/data-provenance now documents the 7-stage pipeline (Sources → Source pack → Ingestion → Entity match → Field provenance → Display → Research / Verticals), the 4 source-family clusters, and per-field display rules. Carries the source-counters that match the homepage so the numbers can't drift.
2026-05-03
UX / surface
Homepage repositioned as the source-provenanced provider graph.
The Fonteum homepage began leading with `Local provider data, traceable to its source.` instead of a flat directory pitch. Production-backed counters replaced estimated network metrics, and supported facts added source, last-checked-date, and limitation treatments where metadata was available. The July 12 audit later made the nullable, source-specific coverage explicit.
2026-05-03
Data snapshot
CMS Care Compare research bundle (home health + hospice).
Two more Tier-1 research snapshots published from the CMS Care Compare cluster: home-health quality by state and hospice provider availability by state. Supported cited fields displayed available source, date, and limitation metadata; Fonteum did not independently rate, inspect, endorse, or guarantee any agency or hospice.
2026-05-03
Data snapshot
Dialysis facility research snapshot published.
First state-level snapshot of CMS Care Compare dialysis facility quality data. Tier-1 research-only — no facility profile writes; data appears in /research aggregates only.
2026-05-03
Data snapshot
Nursing-home research snapshot published.
First state-level snapshot of CMS Care Compare Nursing Home Provider Information master dataset. Special Focus Facility status reported at state-aggregate level only — never on individual facility profiles. CMS ratings appear as CMS ratings.
2026-05-03
Research rule
CMS Care Compare display rules — research vs profile separation.
Care Compare ratings are cited as CMS-published ratings, with the source URL + last-checked date + limitations sentence. State-level aggregates (mean rating, share-of-stars) NEVER attach to individual facility profiles — they render on /research only. Special Focus Facility status, fines, and abuse-icon flags are write-locked: captured to provenance, never surfaced.
2026-05-03
Display rule
Florida state-board contractor-license display rules (superseded).
Florida state-board state-license fields rendered with classification + status + expiration, alongside a `confirm with the state board` qualifier. Bond, workers-compensation, insurance, and disciplinary-history fields were captured to provenance but write-locked pending operator copy review. This display rule is no longer active — the contractor-licensing source family is registered but no longer ingested or rendered under the current healthcare-only scope.
2026-05-03
Display rule
CMS PECOS Medicare-enrollment indicator display rules.
PECOS-derived `Medicare-billing-active` indicator renders only on medical-archetype profiles. Display copy frames absence-from-PECOS as a non-negative — providers can be high-quality and not enrolled in Medicare. PAC ID and Enrollment ID are captured to provenance for audit but never rendered.
2026-05-03
Display rule
NPPES NPI display rules + non-endorsement doctrine.
Source-backed NPI, taxonomy code, and taxonomy description rendered on dermatology + chiropractic profiles only when match confidence was ≥ 0.75. Displayed values used a `Source: CMS NPPES · Last checked YYYY-MM-DD` chip when that metadata was available. Provider credential strings from NPPES were captured to provenance but write-locked. The non-endorsement sentence rendered alongside supported cited values.
2026-05-03
Schema
Source-provenance schema codified.
Per-(business, source, field) provenance rows are written to the warehouse with `display_allowed`, `last_checked`, `confidence`, and `source URL`. The display layer reads only through a `provider_field_displayable` view that filters confidence ≥ 0.75, freshness ≤ 180 days, `display_allowed = true`, and source `is_active = true`. Anything failing any of those four filters is captured but not rendered.
MEDICAL REVIEW