Skip to content

Integrating Medicare Fee Schedules into an EHR

For Electronic Health Record (EHR) systems and modern billing platforms, surfacing estimated patient responsibility and expected reimbursement before the claim is sent is a massive competitive advantage.

The Bedrock Billing Fee Schedule API handles all of this math for you in real-time.

Quick Start: One-Call PFS Rate Lookup

The /fee-schedules/pfs/calculate endpoint resolves geographically-adjusted Physician Fee Schedule rates from a single API call. Just provide the provider's NPI, a CPT/HCPCS code, and an optional service date.

curl -X GET "https://api.bedrockbilling.com/api/v1/fee-schedules/pfs/calculate?npi=1234567890&code=99213&date=20260315" \
  -H "Authorization: Bearer sk_live_your_key_here"

JSON Response:

{
  "npi": "1234567890",
  "code": "99213",
  "code_description": "Office o/p est low 20 min",
  "service_date": 20260315,
  "rates": {
    "facility_rate": 57.47,
    "non_facility_rate": 95.18,
    "components": {
      "rvu_work": 1.30,
      "rvu_mp": 0.09,
      "full_fac_pe": 0.33,
      "full_nfac_pe": 1.46,
      "conv_fact": 33.4009,
      "gpci_work": 1.035,
      "gpci_pe": 1.094,
      "gpci_mp": 0.723
    }
  },
  "locality_info": {
    "locality": "0110102",
    "loc_description": "Manhattan, NY",
    "mac": "05102",
    "mac_description": "National Government Services",
    "year": 2026,
    "zip_code": "10001"
  },
  "fee_schedule_id": 163503
}

Under the hood, the API automatically:

  1. Resolves the NPI → provider practice ZIP code (via NPPES)
  2. Maps the ZIP to the correct CMS carrier and pricing locality
  3. Fetches the GPCI values (work, practice expense, malpractice) for that locality
  4. Retrieves the RVU components and conversion factor for the code
  5. Computes both facility and non-facility rates using the standard CMS formula

Python Example

import requests

API_KEY = "sk_live_your_key_here"

def get_pfs_rate(npi: str, code: str, date: int | None = None):
    params = {"npi": npi, "code": code}
    if date:
        params["date"] = date

    resp = requests.get(
        "https://api.bedrockbilling.com/api/v1/fee-schedules/pfs/calculate",
        params=params,
        headers={"Authorization": f"X-API-Key {API_KEY}"}
    ).json()

    rates = resp["rates"]
    print(f"Code {resp['code']}: {resp['code_description']}")
    print(f"  Facility Rate:     ${rates['facility_rate']:,.2f}")
    print(f"  Non-Facility Rate: ${rates['non_facility_rate']:,.2f}")
    print(f"  Locality: {resp['locality_info']['loc_description']}")

get_pfs_rate("1234567890", "99213", 20260315)

Advanced: Manual Rate Calculation

If you need more control — for example, applying custom GPCI overrides or working with historical mid-year rate changes — you can query the raw RVU and locality data separately.

Step 1: Fetch Raw RVUs

curl -X GET "https://api.bedrockbilling.com/api/v1/fee-schedules/search?code=99213" \
  -H "Authorization: Bearer sk_live_your_key_here"

The response returns the raw, unadjusted national RVUs from the data.physician object, including rvu_work, full_fac_pe, full_nfac_pe, rvu_mp, and conv_fact.

Step 2: Fetch GPCI Values

curl -X GET "https://api.bedrockbilling.com/api/v1/pfs-localities/search?zip_code=10001&year=2026" \
  -H "Authorization: Bearer sk_live_your_key_here"

Step 3: Apply the PFS Formula

Facility Rate: TOTAL = ((rvu_work × gpci_work) + (full_fac_pe × gpci_pe) + (rvu_mp × gpci_mp)) × conv_fact

Non-Facility Rate: TOTAL = ((rvu_work × gpci_work) + (full_nfac_pe × gpci_pe) + (rvu_mp × gpci_mp)) × conv_fact

EHR Integration Scenarios

By integrating this endpoint, EHRs can offer powerful new features to their users:

  1. Patient Estimators: Before an appointment, query the API using the scheduled CPT codes to generate a highly accurate "Expected Medicare Payment" document to share with the provider and patient.
  2. Contract Variance Tracking: Compare the EOB/ERA remittance amounts returned by the clearinghouse against the exact Medicare allowable amount fetched from Bedrock Billing to automatically flag underpayments.
  3. Fee Schedule Automation: When CMS updates the PFS, OPPS, or Clinical Lab fee schedules quarterly, your EHR automatically inherits the new rates instantly without requiring a mandatory software patch to your client base.

Supported Fee Schedules

The API provides comprehensive access beyond just the PFS. You can programmatically query: - Clinical Laboratory Fee Schedule (CLFS) - Ambulance Fee Schedule - Durable Medical Equipment (DME) POS - Average Sales Price (ASP) Drug Pricing