Reprice a chargemaster
Run a Strategic Pricing study from your assistant - a hospital's chargemaster against its metro market, every pricing lever, the tactical review checklist, and the client PDF and audit workbook.
A Strategic Pricing study reprices a hospital's chargemaster (CDM): every line's current charge next to what the hospitals in its metro publish, the volumes and payers behind it, Medicare and OPPS, and a proposed price per line under settings you control. In the app it is the Strategic Pricing service. Through the MCP server your assistant runs the same study from a conversation; it is the same study the app shows, so a colleague can open it there at any point.
Say something like:
Reprice Riverside Medical Center's chargemaster to stay within 10% of the market median. Use last year's volumes from the Data Sources tab and run the lesser-of review.
The server knows the steps. Your assistant calls strategic_pricing_next_step() and every result it gets back carries next_step with the tool to call, why, and the checks that step makes. Optional steps (a cost dataset, payer sensitivity, line filters) never block the walk.
Setting up
- Owner.
find_or_create_ownernames the hospital (or health system) whose CDM is repriced and makes sure it has a metro area: the study's market is its MSA, so a hospital without one is given one fromfind_metro. - Study and goal.
create_strategic_pricing_study, thenset_strategic_pricing_goal: most revenue within the market (raise what sits below the market anchor, hold what sits above it, within a cap over the anchor) or revenue-neutral optics (lower visible prices and recover the difference elsewhere). - The chargemaster.
set_study_cdmpins the owner's effective CDM: its own latest, else its health system's. A new CDM goes up throughcreate_upload,inspect_uploadandsave_cdm_table(it shows under Data Sources → CDM in the app); pass the version it returns ascdm_version_id; the tool reports how many lines, how many have no charge or no code, and which departments repeat a code (lines are keyedcdmCode|dept). - Volumes.
set_study_datasetpins a volume dataset: one already in Data Sources, or a file uploaded withcreate_uploadand a column mapping (one row per charge line, one per code, or a payer × code pivot). The file is normalized on the server and the raw upload deleted. The result says what share of the CDM's codes have volume, and warns under 60%. A cost dataset (kind: cost) adds net-margin figures. - Market and payers.
configure_strategic_pricing_studyconfirms the metro (and how many priced hospitals it holds), sets which payers pay a percent of charges and which pay fixed rates, and the line filters for the benchmark. The market demographics it shows are a stub and say so. - Analyze.
analyze_strategic_pricing_studybuilds the snapshot on the server: every line's market statistics over the metro's hospitals, Medicare and OPPS references, flags (lesser-of, below Medicare, declining and overpriced, outliers, utilization gaps), unit normalization for time and room lines, and the APC bundles. It takes minutes on a big CDM;get_strategic_pricing_studyreports the status and the headline counts.
Reading the study
get_strategic_pricing_view serves the app's tabs: the overview (KPIs and provenance), the market, volume and payer mix, payer trends, and the benchmarks with every flag section. get_strategic_pricing_model is the Pricing Model: the proposed price for every line under the current settings, filtered (charge-sensitive, lesser-of, below benchmark, over cap, changed, normalized units, text) and paged, with the MDC and APC group totals and each APC bundle's market ceiling and lesser-of dollars on the table.
Every lever is one call to update_strategic_pricing_settings, a patch merged onto the saved settings: the goal, the market cap, the cap and display anchors, the market and Medicare floors, per-MDC caps and locks, bulk revenue-code adjustments ("all 278 implants +5%"), a single line's price or lock, the frozen benchmark column, a reset. scale_group_prices moves a whole MDC or APC group by a percent. Each save answers with the new summary and the change against the previous one, so the assistant can tell you what a lever did. The exports (export_strategic_pricing: the client PDF, the audit workbook, the proposal and benchmark CSVs) reflect the saved settings.
The tactical review
strategic_pricing_analysis runs the Tactical Review Checklist, pass by pass, over the lines that move the money: the 80/20 set ranked by annual charges times charge sensitivity (sp_candidates), or the codes you name. Each endpoint is one pass:
| Endpoint | Pass | Answers |
|---|---|---|
sp_controllable_prices | A | Is this a price we can change, and does the change reach the bill |
sp_opportunity_queues | B | Which queue each candidate belongs to, and its one primary mechanism |
sp_payment_sensitivity | C | Per candidate and payer, what changes in the payer's calculation over a price grid |
sp_lesser_of | D | Charges too low to collect the negotiated rate: the gap and the minimum sufficient price |
sp_charge_based | E | Percent-of-charge payers: eligible charges, carve-outs, exposure |
sp_stop_loss | F | Thresholds that switch the payment method |
sp_caps_neutralization | G | The proposal's weighted increase per payer against its cap |
sp_fixed_payment | H | Lines where price is not the lever |
sp_government | I | Medicare, Medicaid and CAH effects the commercial model misses |
sp_charge_relationships | J | Families, duplicates, inversions, ladders, room hierarchies |
sp_market_validation | K | Is the market gap real: like for like, sample support, the range |
sp_local_market | L | Service-specific payer mix and patient protections |
sp_shoppable | M | Scheduled shoppable services |
sp_emergency | N | The ED level ladder |
sp_imaging | O | Modality families, contrast pairs, professional components |
sp_portfolio | all | The whole proposal at once: caps, thresholds, family coherence, net effect |
Every item of the checklist has a basis, stated honestly in the result: computed from the study's data (the snapshot, the hospital's own published per-payer rates and terms, the cost dataset), partial when it rests on published terms rather than the hospital's claims, or a gap when it needs the contract language, the 835 remits, or a human decision. Gaps say what is needed and who decides, and show the published evidence we do hold. Figures keep four quantities apart and label each: gross charges, modeled allowed, net revenue, cash. Every candidate comes back with a proposed disposition (increase, decrease, hold, repair, contract, investigate) and the evidence behind it; the assistant never decides alone.
strategic_pricing_review records what the reviewer decides, with an owner, and the per-study inputs the passes read: each payer's charge-increase cap, the escalator, the planning horizon, a collection rate for cash figures, notice lead times. Everything lands on the study, where the app shows it too.
Every component, one tool
Each card, chart and table of the app, each section of the PDF and each sheet of the audit workbook is its own tool. sp_sections(study_id) lists them in reading order. Each result's next_step names the next one. The tools slice the study at its saved settings, so they match what the app shows.
On a free account a component returns the first 5 rows with every dollar figure hidden (PDF sections show their block outline, workbook sheets their first column), marked locked, with a link to the Strategic Pricing service; the service returns everything. Exports need it. The export link is short (https://mcp.cognitolabs.ai/d/...) and lasts an hour.
Overview
| Where | Tool | What it returns |
|---|---|---|
| Overview: KPI row | sp_overview_kpis | current annual charges, modeled payment delta, codes repriced (raised / lowered), benchmark coverage |
| Overview: Pricing goal card | sp_overview_goal | the saved goal, its market cap %, per-MDC override count, revenue-neutral knobs |
| Overview: Inputs & provenance card (and the Report tab's Sources) | sp_overview_provenance | the pinned CDM version, volume and cost datasets with period, MSA, MDC crosswalk version |
| Overview: Deterministic flags chips | sp_overview_flags | per-code flag counts in server order, plus the missing-CDM-codes count |
Market
| Where | Tool | What it returns |
|---|---|---|
| Market: Population forecast chart | sp_market_population | the market's [year, population] forecast (a STUB, disclosed) |
| Market: Age mix chart | sp_market_age_mix | share of population per age band (a STUB, disclosed) |
| Market: Payer environment pie | sp_market_payer_environment | market share per payer class (a STUB, disclosed) |
| Market: Market notes card | sp_market_notes | the notes and the source the demographics come from |
Volume & Mix
| Where | Tool | What it returns |
|---|---|---|
| Volume & Mix: Payer mix (units) pie | sp_mix_units_by_payer | units per payer, top 8 |
| Volume & Mix: Payer mix (payments) pie | sp_mix_payments_by_payer | payments per payer, top 8 |
| Volume & Mix: Top revenue centers bar chart | sp_mix_revenue_centers | annual gross charges per department, top 12 |
| Volume & Mix: Revenue by category bar chart | sp_mix_revenue_by_mdc | annual gross charges, code count and charge share per MDC |
| Volume & Mix: an MDC's top codes drill-down | sp_mix_top_codes | the 12 codes with the most charges (one MDC or all), aggregated by CPT across departments |
| Volume & Mix: trend KPI strip | sp_mix_trend_counts | codes trending up, down, flat, insufficient history |
| Volume & Mix: Volume trends table | sp_mix_volume_trends | every CDM line's trend class, annualized trend %, r2, units, charges (filters + sort) |
Payer Trends
| Where | Tool | What it returns |
|---|---|---|
| Payer Trends: pareto chart | sp_payer_pareto | one payer's top 20 codes by charges with the cumulative % |
| Payer Trends: Positive-trending codes with POC yield | sp_payer_rising | a payer's rising codes it pays a percent of charges on, by POC yield (top 15) |
| Payer Trends: Negative-trending codes with payment at risk | sp_payer_declining | a payer's declining codes by payment at risk (top 15) |
| Payer Trends: all codes table | sp_payer_codes | a payer's codes: units, charges, payments, POC %, trend |
Benchmarks
| Where | Tool | What it returns |
|---|---|---|
| Benchmarks: the benchmark table + its scope / anchor controls | sp_bench_table | each benchmarked line vs the market at a scope and anchor: bench, p25, p75, delta, impact, flags |
| Benchmarks: Lesser-of money on the table | sp_bench_lesser_of | lines priced under a payer's contracted rate, the annual loss and its total |
| Benchmarks: Priced below Medicare | sp_bench_below_medicare | lines priced under Medicare's rate, the annual exposure and its total |
| Benchmarks: Declining + priced above market | sp_bench_declining | repricing / divestment candidates |
| Benchmarks: Charge outliers | sp_bench_outliers | lines far from the market |
| Benchmarks: Medicare utilization gaps | sp_bench_utilization_gaps | investment / acquisition candidates |
| Benchmarks: Time & structure (OR / anesthesia / PACU / endoscopy / L&D) | sp_bench_time_structure | time families normalized to a 90-minute case, billing conventions with exact hospital counts |
| Benchmarks: Missing CDM codes | sp_bench_missing_codes | Medicare services the market bills that this CDM lacks, with the estimated opportunity |
Pricing Model
| Where | Tool | What it returns |
|---|---|---|
| Pricing Model: Model settings rail | sp_model_settings | the saved goal, market cap, cap / display anchors, scope, Medicare floor, constraints, revenue-neutral knobs, bundles, locked benchmark |
| Pricing Model: Per-MDC adjustments (the constraint sliders) | sp_model_mdc_adjustments | every MDC by charge share with its override (cap %, band, lock) and its proposal totals |
| Pricing Model: Rev-code adjustments | sp_model_rev_code_adjustments | rev codes by charge share with line counts and any bulk adjustment / lock |
| Pricing Model: Impact drawer KPIs | sp_impact_summary | gross charge delta, payment delta, raised / lowered / unchanged, lesser-of and below-Medicare left, feasibility, neutral gap |
| Pricing Model: Impact drawer net margin | sp_impact_net_margin | net margin now and proposed, its change, cost coverage (needs a cost dataset) |
| Pricing Model: Impact drawer payment delta by payer chart | sp_impact_by_payer | payment delta per payer |
| Pricing Model: Impact drawer by-MDC list | sp_impact_by_mdc | charge and payment delta per MDC |
| Pricing Model: table MDC rows | sp_model_mdc_groups | each MDC's current, proposed, revenue, charge and payment delta, overrides, benchmark |
| Pricing Model: table APC rows + bundle chips | sp_model_apc_groups | each APC group's totals and bundle facts: target ceiling, over target, lesser-of dollars, below payment, duplicate CPTs |
| Pricing Model: table line rows + filter bar | sp_model_lines | each CDM line's current and proposed charge, delta, cap, units, revenue, deltas, flags (filters + sort) |
| Pricing Model: one line's popovers (lesser-of, units, methodology) | sp_model_line | one line in full: the lesser-of gap, the unit normalization tallies, the payment methodology per payer |
| Pricing Model: Units column chips | sp_model_units_normalization | the lines whose unit was normalized (rooms, OR time) with each billing convention's hospital count |
PDF report
| Where | Tool | What it returns |
|---|---|---|
| Executive Summary | sp_pdf_executive_summary | the headline KPIs and paragraphs, as printed |
| Market Demographics | sp_pdf_demographics | the market charts and the stub disclosure, as printed |
| Payer Mix and Reimbursement Yield | sp_pdf_payer_mix | the payer mix charts and table, as printed |
| Top Revenue Centers | sp_pdf_revenue_centers | departments by charges, as printed |
| Volume Trends | sp_pdf_volume_trends | rising and declining codes, as printed |
| Market Position vs Benchmarks | sp_pdf_market_position | the CDM vs the market, time structures, as printed |
| Lesser-Of Exposure | sp_pdf_lesser_of_exposure | the lesser-of lines and total, as printed |
| Pricing Proposal | sp_pdf_pricing_proposal | the proposal KPIs, by-payer and by-MDC tables, top moves, bundles, as printed |
| Strategic Flags | sp_pdf_strategic_flags | below Medicare, missing codes, declining, utilization gaps, outliers, as printed |
| Methodology and Audit Trail | sp_pdf_methodology | the sources, rules and settings, as printed |
Audit workbook
| Where | Tool | What it returns |
|---|---|---|
| How to Audit sheet | sp_xlsx_how_to_audit | each formula in plain language |
| Summary sheet | sp_xlsx_summary | the study, its settings, the proposal totals and overrides |
| CDM Proposal sheet | sp_xlsx_cdm_proposal | every line's current and proposed charge |
| Impact sheet | sp_xlsx_impact | every line's charge and payment delta per payer |
| Volume Trends sheet | sp_xlsx_volume_trends | every line's trend fit |
| Payer POC sheet | sp_xlsx_payer_poc | units, charges, payments and POC per line and payer |
| Market Benchmarks sheet | sp_xlsx_market_benchmarks | every line's market statistics |
| Flags sheet | sp_xlsx_flags | every flag with its detail and amount |
| Bundles (OPPS APC) sheet | sp_xlsx_bundles | the APC bundle groups and their lines |
| Missing Codes sheet | sp_xlsx_missing_codes | the market's codes this CDM lacks |
| OR Time sheet | sp_xlsx_or_time | the time families and each market hospital's structure |
| MDC Crosswalk sheet | sp_xlsx_mdc_crosswalk | the code to MDC-group table |
| Sources sheet | sp_xlsx_sources | every pinned input |
What a free account gets
Setting the study up is free. Analyzing it, reading the model and the views, moving a lever and running the review return the first 5 rows with every dollar figure hidden on a free account, and the exports are held back; results carry a subscribe link to the Strategic Pricing service. Every call counts toward the daily limit.
Tools
The reference of each tool and its parameters is on the Strategic Pricing tool page.
Benchmark a fee schedule
Hand your assistant a client's fee schedule and get back a rate benchmarking study against similar nearby hospitals, with the workbook and PDF you would have built by hand.
Run a Black Box study
Compare a provider group's proposed rates with a network's current rates, code by code and payer by payer, from your assistant - upload links, the build, every table and graph of the results as data, and the client PDF.