Skip to main content
Glama

Get PBP Benefit

get_pbp_benefit
Read-onlyIdempotent

Returns Plan Benefit Package (PBP) benefit detail for an MA plan for a specific category (dental, inpatient_hospital, ER, etc.).

Polymorphic — pass category to route to the right semantic view. All categories share the standard envelope: cost_share_string, copay_amount, coinsurance_pct, limit_text, auth_required, referral_required, network_type, max_oop_applies + category-specific extension fields (e.g., dental_sub_benefit).

Required: contract_id, plan_id, payment_year, category. The category must be one of the 35 live categories (listed below).

The response value is the full benefit-detail object: rows (every matched benefit row, with cost sharing, limits, and category extension fields), row_count, the resolved category/human_label/view_fqn, the audit_chain (CMS source URL + sha256 per row), and a summary sub-field carrying the single-row headline cost_share_string (or the row count when multiple sub-benefit rows match) for a quick read. Plus any methodology-shift caveats (e.g., 'B16 dental restructured CY2025' when querying dental for 2025+). Cross-year queries get cross-shift caveats.

When the full answer would not fit in one response, rows come back compact (row_format: "compact"): fields identical on every row sit once in row_common, and a field absent from a row is null.

Live categories are discovered from the contract registry at load time, so this list cannot drift from what the tool serves; an unknown category is refused (INVALID_INPUT) with this same list, never a failure. The 35 live categories are: ambulance, b19_combined_package, cardiac_pulmonary_rehab, clinical_diagnostic_therapeutic, combined_supplemental, dental, dme, dsnp_cost_share, emergency_urgent, health_professionals, hearing, home_health, inpatient_hospital, inpatient_psychiatric, meals, moop, optional_package, otc, outpatient_hospital, partb_rx_drugs, partd_drugs, partd_tier, partial_hospitalization, plan_deductible, plan_premium, preventive, prior_auth_referral, renal_dialysis, section_c_pos_oon, snf, ssbci, supplemental_other, supplemental_services, transportation, vision. The premium is plan_premium (not 'premium'), the deductible is plan_deductible, the out-of-pocket maximum is moop.

summary.value is the one number a reader asks for: for plan_premium the monthly premium in USD; for plan_deductible the in-network annual deductible in USD (or null with the filed reason); for moop the in-network annual MOOP in USD, which on a D-SNP is the plan design before Medicaid and Extra Help, never what a dual pays. summary.label says which. Limits read in words ("6 visits every year"; 999 is CMS's unlimited sentinel and reads "unlimited"); the filed code is kept in limit_text_raw.

A contract/plan/year/category combination with NO rows is REFUSED with code NO_DATA, not answered with an empty complete: the refusal states what was searched and routes to get_landscape (the plan ids that really exist for that contract and year) and names the valid categories. One view is read, so a nonexistent plan and a plan with nothing in this category cannot be told apart here; the refusal says so.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
plan_idYes
categoryYes
segment_idNo
contract_idYes
payment_yearYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
unitNo
as_ofNo
valueYes
sourceYes
statusNocomplete
caveatsNo
failureNo
qualityNo
refusalNo
vintageNoas_restated
audit_idYesUUID; ties to medicare_silver.audit_log row.
signatureNo
tenant_idNoCalling tenant slug, resolved by the binding and stamped via the per-call tenant context. Defaults to the bootstrap 'internal' tenant for local/in-process callers.
timestampYes
confidenceNo
data_as_ofNo
request_idYes
methodologyNo
snapshot_setYes{table_fqn → iceberg_snapshot_id (int64)}. Per M-2 §2.2.
tool_versionYes
response_hashYesSHA-256 of canonicalized form per M-2 §2.4.
result_statusYes
vintage_basisNodefault_unmeasured
as_of_assertedNo
as_of_observedNo
parse_revisionNo
as_of_effectiveNo
freshness_stateNounknown
methodology_eraNo
confidence_basisNo
semantic_versionYes
invariants_appliedNo
finality_confidenceNo
cms_vintage_sequenceYes
parser_artifact_hashYes
methodology_blend_factorsNo
parser_artifact_hash_basisNonot_evaluated

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources