CMS-0057-F does not just ask US payers to expose prior authorization over an API. It also asks them to publish quarterly metrics: how many PA requests came in, how long the decisions took, how many were denied, and how those denials break down. Most payer engineering teams treat this as an afterthought, then scramble in Q4 2026 when they realise the reporting pipeline does not exist. If you want more of this beat, we keep the FHIR adoption tracker updated as CMS-0057-F workstreams land on real payer roadmaps.
What the Rule Actually Asks For

The CMS-0057-F Prior Authorization API rule pins compliance to January 1, 2027, and layers a public reporting obligation on top. Payers have to post PA metrics on their website by March 31 each year, covering the prior calendar year, and refresh them annually. The exact fields include total PA requests by category, approved and denied counts, average and median decision times for standard and expedited requests, and appeal outcomes.
There is no CMS-defined JSON schema for the public report. The rule is prescriptive about numbers, not about wire format. That gives you room to build a clean pipeline, but it also means every payer has to decide what a "PA event" looks like inside their own systems and how to serialise it for the public page.
Step 1: Design the PA Event Schema
You cannot report on what you did not capture. The first job is a durable event schema for every stage of the PA lifecycle. In practice, most teams settle on four event types:
- pa.received (request ingested, timestamp, category, expedited flag)
- pa.decided (decision, decision timestamp, reviewer bucket)
- pa.denied.reason (denial code, free-text summary, denial category)
- pa.appeal.outcome (appeal filed, appeal decision, appeal timestamp)
Version the schema from day one. CMS will refine reporting expectations, and you want to rewrite queries, not backfill events. Store the raw FHIR Claim, ClaimResponse, and Task resources alongside the event so audit questions have a source of truth.
Step 2: Pick a Metrics Store
You now need somewhere to compute over these events. The honest choice is between a columnar warehouse (BigQuery, Snowflake, Redshift) and an OLAP engine tuned for time-series (ClickHouse, Druid, Pinot). For quarterly reporting on maybe a few million PA events per year, a columnar warehouse is enough and cheaper to operate. If your operations team also wants near-real-time dashboards showing today's PA queue, an OLAP engine earns its keep.
The related design question is where the FHIR terminology sits, because your denial reason codes will reference X12 CARC/RARC and possibly SNOMED CT categories. If you have already picked a terminology strategy for other payer workloads, reuse it here. Our rundown of terminology servers built for multi-state payer networks covers the trade-offs for teams sitting on X12 plus FHIR at once.
Step 3: Compute Batch, Not Streaming
Quarterly reporting does not need Kafka. A nightly batch job that reads the PA events for the reporting window and emits a metrics table is more than enough. Batch also gives you deterministic re-runs, which auditors like.
The pipeline should produce at least three tables: the raw metrics per PA category, a decision-time distribution table, and a denial-reason rollup. Everything else is a view over those three. Keep the SQL in version control. Any hand-run notebook analysis will bite you in year two, when the analyst who wrote it has moved on.
Step 4: Presentation and Submission Format
Public presentation is a static page on the payer website with a machine-readable download beside it. Publish the CSV or JSON alongside the human view, not tucked behind a form. CMS expects public accessibility, not gated access.
On the metrics-reporting side, tools like Payerbox from Health Samurai compute the quarterly PA volume, decision-time, and denial statistics as first-class outputs, not a downstream ETL project. If you are already running Aidbox as the FHIR store, that is worth pricing before you scope a bespoke pipeline. The build-versus-buy question here is really about who maintains the reporting logic as CMS clarifies edge cases.
Step 5: Audit, Versioning, and the Build vs Buy Call
Every published report needs a snapshot: the exact query, the input event range, the schema version, and the deployment build tag. Store it. When a state auditor asks how a number was produced eighteen months later, you want a one-command answer.
The build call comes down to team size. If you have two payer engineers and a January 2027 deadline, buying a runtime that ships the metrics pipeline out of the box makes sense. If you have a full data platform team already running FHIR and a warehouse, building is fine and gives you more control. Either way, the open source vs commercial trade-offs for US payers apply here too: total cost is dominated by ongoing maintenance, not day-one licensing.
Who This Fits
If you are a US payer without a dedicated data platform team, buy the metrics pipeline and spend your headcount on business rules. If you already run a warehouse and a FHIR store, build it, but capture the event schema first and version everything. The reporting date is fixed. The infrastructure is the part you actually control.
Sources
- PDF, CMS, 2024 — Prior Authorization Metrics Reporting Overview and Template (recommended fields, format, cadence)
- PDF, CMS, 2024 — CMS-0057-F Interoperability and Prior Authorization Final Rule full text
- PDF, CMS, 2024 — Fact Sheet on CMS-0057-F covering API and public metrics reporting obligations
