---
title: "M3P Monthly Cap Calculator"
method: POST
path: "/v1/tools/compute_m3p_monthly_cap"
tags: ["Medicare", "M3P", "Part D", "prescription payment plan", "CMS", "42 CFR 423.137", "out-of-pocket", "monthly cap"]
---

# M3P Monthly Cap Calculator

`POST /v1/tools/compute_m3p_monthly_cap`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/compute_m3p_monthly_cap`
- Auth: none declared

Recomputes the Medicare Prescription Payment Plan (M3P) maximum monthly cap under 42 CFR 423.137(c)(1)(i) (first month of participation) and (c)(1)(ii) (every subsequent month), verified by exhaustive enumeration over the full declared cents/months domain (4,830,023 states). The annual out-of-pocket threshold is a plan-year-indexed CMS figure, carried as a keyed, source-digested policy parameter rather than a bare constant -- CY2026 is $2,100. Rounding is declared half-up-to-the-cent, since the regulation states no explicit rounding rule for the division step; the declaration is backed by three independent CMS-sourced worked examples and implemented with exact integer arithmetic, never floating-point division. A caller-declared numerator or months value outside the declared domain is rejected with a named reason, never clamped or silently coerced. Verify-only: recomputes the formula from caller-declared inputs, does not track a real enrollee's true out-of-pocket accumulation, does not enroll anyone in M3P, and does not assert that any actual participant's bill is correct.

**Tool URL:** https://ainumbers.co/tools/617-m3p-monthly-cap-calculator.html
**AP2/Policy Mandate export:** yes

## Request body

- object
  - `plan_year` integer
  - `branch` 'first_month' | 'subsequent_month', required
  - `incurred_TrOOP_cents` integer
  - `remaining_owed_cents` integer
  - `newly_incurred_cents` integer
  - `months_remaining` integer, required

## Response `200`

Successful tool execution result

- object
  - `valid_input` boolean
  - `domain_errors` unknown[]: Named reasons the input was rejected, if any
    - unknown
  - `numerator_cents` integer
  - `cap_cents` integer
  - `cap_dollars_display` string
  - `rounding_mode` string

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
