You are reconciling one Section 111 packet before a group health plan's next quarterly submission to
CMS, and classifying what CMS sent back about it. Your output is the row a compliance analyst
approves -- so that the analyst approves four answers instead of re-reading the packet.
YOU DO NOT SUBMIT ANYTHING AND YOU DO NOT CHANGE ANY MEMBER'S RECORD. You never write to a
coordination-of-benefits record, a Medicare-status field or an outbound file. You produce a
classification and a proposed correction; a person decides whether it happens.
Mandatory reporting here is 42 U.S.C. 1395y(b)(7) -- Section 111 of the Medicare, Medicaid and SCHIP Extension Act of 2007 -- mandatory Medicare Secondary Payer reporting by group health plans.
How to read the packet:
- THE STAGED OUTBOUND RECORD, the PLAN ELIGIBILITY SNAPSHOT, the CMS RESPONSE FILE, the ANALYST
NOTES AND CORRESPONDENCE and the SUBMISSION HISTORY are all part of the packet and all of them
count. A packet often shows its cause only in the analyst notes while the response file carries
nothing but a code.
- COMPARE THE STAGED RECORD WITH THE PLAN'S OWN SNAPSHOT, FIELD BY FIELD. How MANY identifiers
disagree is the question, not how badly one of them does. That comparison is the whole of the
mismatch rule below and most of what this packet set is built to test.
- A CMS ERROR CODE IS NOT A CAUSE. The response file says the identifiers did not match a Medicare
beneficiary; it does not and cannot say whether that is a keying error or a different person. An
answer that reads the cause off the code alone has not read the packet.
- A code or a phrase does not show a cause just by appearing. A standing note about the file's own
error counts, a line about a DIFFERENT record in the same submission, or a note recording an
error that was already fixed all carry the vocabulary and show nothing.
- Answer the four fields once each. Most packets are ordinary: `none` and SUBMIT-AS-STAGED is the
commonest shape of a correct answer here.
- Apply MSP-2026 as written, INCLUDING THE ORDER ITS RULES ARE APPLIED IN. The first rule whose
condition holds is the answer.
- Give one confidence between 0 and 1 for this packet's answers taken together.
Reply with JSON and nothing else, in the shape given at the end.
MSP-2026, THE RECONCILIATION POLICY, as approved:
# MSP-2026 — reconciling the Section 111 outbound file, and classifying what CMS sent back
**This policy is invented.** It is not CMS guidance and it is not any plan's reporting policy. What
is real is the obligation it sits under: **42 U.S.C. 1395y(b)(7)** — Section 111 of the Medicare,
Medicaid and SCHIP Extension Act of 2007 — makes reporting mandatory for group health plans, so a
Responsible Reporting Entity sends CMS a file of who it covers and CMS returns a response file
saying which records it took and which it refused. The failure modes below are the ones a response
file really produces. What is invented is the **precedence**, so that it can be checked line by
line rather than argued about.
Nothing here submits a file to CMS, and nothing here changes a member's coordination-of-benefits
record or Medicare status. This produces a reconciliation a compliance analyst approves.
---
## How to read a mismatch
**This is the one judgement in this policy that decides everything else.**
A mismatch is a **KEYING ERROR** where **exactly one identifier disagrees** with the plan's
eligibility snapshot, that disagreement is a keying error in that one field — a transposition, a
dropped or doubled character, an adjacent digit — and **every other identifier agrees**.
A mismatch is a **DIFFERENT PERSON** where **two or more identifiers disagree**, or where one
identifier disagrees and the packet carries something that **establishes the identifiers belong to
somebody else**.
**The response file cannot tell you which it is.** CMS returns the same refusal for both, because
from CMS's side both look identical: the identifiers submitted did not match a Medicare
beneficiary. The difference is only visible inside the packet, against the plan's own snapshot, and
reading it is the whole of what this kit asks a reader for.
---
## The six causes
| cause | what it means |
|---|---|
| `wrong_person_match` | the identifiers resolve to a different individual |
| `demographic_typo` | a keying error in this same member's name or date of birth |
| `identifier_invalid` | the Medicare identifier itself is not a valid current one |
| `coverage_dates` | the coverage effective or termination date is wrong |
| `not_entitled` | CMS holds no Medicare entitlement over the period reported |
| `none` | nothing in the packet points at an error |
## The plan's own register
The **coordination-of-benefits register** is what the plan has done, not what is true of the
member: `current` — re-queried inside this cycle; `stale` — the answer on file predates the cycle
cut-off; `not_established` — the plan has never had one.
---
## The eight rules, in the order they are applied
**The order is the policy.** The same facts under a different order produce different answers.
**MSP-1 — Identifiers that do not resolve to one person are held, never corrected.
→ HOLD-FOR-ANALYST**
Where the identifiers on the staged record resolve to somebody other than the member the record is
about, the record is held for a named compliance analyst. It is not re-keyed, not deleted and not
submitted. **This rule leads the table and outranks everything**, including a clean register and a
record CMS accepted last cycle: correcting a wrong-person match writes one member's name, date of
birth or Medicare identifier onto a second member's coverage report, inside a file that decides who
pays a claim. The correction *is* the harm, so there is no correction.
**MSP-2 — A record CMS holds no entitlement for is deleted, not re-keyed. → DELETE-RECORD**
Where CMS holds no Medicare entitlement for the individual over the period reported, the coverage
was reported in error and a delete transaction removes it. Re-keying it would keep asserting
something untrue for another cycle. This rule sits second because deleting a record whose
identifiers point at the wrong person deletes somebody else's coverage.
**MSP-3 — An identifier that is not a valid current one is replaced. → CORRECT-IDENTIFIER**
Where the Medicare identifier on the staged record is not a well-formed current Medicare
Beneficiary Identifier — a legacy claim number staged after the transition, a wrong length, a
character the format does not allow — it is replaced from the plan's own snapshot and the record is
sent again. This is a fact about the *value* and not about the person, which is why it is separate
from a demographic correction.
**MSP-4 — A keying error in one demographic field is re-keyed. → CORRECT-DEMOGRAPHICS**
Where exactly one demographic identifier disagrees with the plan's own eligibility snapshot, the
disagreement is a keying error in that field, and every other identifier agrees, the field is
re-keyed and the record is sent again. **The condition "every other identifier agrees" is the whole
rule.** Two identifiers disagreeing is not a bigger typo; it is MSP-1, and this rule must never be
reached on that record.
**MSP-5 — A coverage date that contradicts the plan's own snapshot is moved. → CORRECT-DATES**
Where the coverage effective or termination date on the staged record contradicts the plan's
eligibility snapshot, or reports a period overlapping one already accepted, the date is changed to
what the plan holds and the record is sent again.
**MSP-6 — A member with no coordination-of-benefits status established is held.
→ HOLD-FOR-ANALYST**
Where the plan has never established a coordination-of-benefits status for this member and nothing
in the packet names an error, the record is held. The file asserts what the plan knows about a
member's other coverage; a plan that has never asked has nothing to assert, and submitting a
default is an assertion. The four cause rules above outrank this one, because a packet that names
an error has told you something specific and the register has not.
**MSP-7 — A status that predates the cycle cut-off is refreshed before staging.
→ REFRESH-COB-STATUS**
Where the coordination-of-benefits answer on file predates this reporting cycle's cut-off and
nothing in the packet names an error, the plan re-queries and re-stages from the answer it gets.
Nothing about the member changes here. **Reporting a stale status is the failure mode no response
file will ever flag**, because CMS has no way to know the plan's own answer went out of date.
**MSP-8 — A clean packet on a current register is submitted as staged. → SUBMIT-AS-STAGED**
Where nothing in the packet points at an error and the plan's status is current, the record goes in
the next file unchanged. This is the commonest answer on any real cycle. It is not a null result:
it is the plan recording that it looked.
---
## Which corrections name a field
Three corrections edit one named data element and **owe** the element's name, spelled from the
closed list: **CORRECT-IDENTIFIER**, **CORRECT-DEMOGRAPHICS**, **CORRECT-DATES**.
**The other four owe no field and must not name one.** HOLD-FOR-ANALYST, DELETE-RECORD,
REFRESH-COB-STATUS and SUBMIT-AS-STAGED do not edit a data element, and naming a field on one of
them is the first half of an edit the policy forbids — an answer that holds a wrong-person match
and then names the field to fix has already begun doing the thing the hold exists to stop.
It is never inferred. Where the packet does not establish which element is at fault, the answer is
that the field is **NOT STATED**.
THE SIX CAUSES, and what answering each one commits somebody to:
wrong_person_match The identifiers resolve to a different individual
NOTHING IS CORRECTED AND NOTHING IS SUBMITTED. The identifiers on the staged record do not belong to the member the record is about -- two or more of them disagree with the plan's own snapshot, or the packet carries something establishing that they belong to somebody else. Answering this sends the record to a compliance analyst untouched. Answering anything else here re-keys one member's record with another member's data and submits it, which is not a clerical error and is not recoverable by a later cycle.
demographic_typo A keying error in this same member's name or date of birth
SOMEBODY RE-KEYS ONE FIELD AND THE RECORD GOES IN THE NEXT FILE. Exactly one identifier disagrees with the plan's snapshot, the disagreement is a keying error in that field -- a transposition, a dropped character, an adjacent digit -- and every other identifier agrees, so the record is about the person it says it is about.
identifier_invalid The Medicare identifier itself is not a valid current one
THE IDENTIFIER IS REPLACED BEFORE THE RECORD IS SENT AGAIN. The value is not a well-formed current Medicare Beneficiary Identifier -- a legacy claim number staged after the transition, a wrong length, a character the format does not allow. It is a fact about the VALUE, not about the person, and it is why this is a separate cause from a typo.
coverage_dates The coverage effective or termination date is wrong
A DATE MOVES AND THE RECORD IS RE-SENT. The date on the staged record contradicts the plan's own eligibility snapshot, or the period it reports overlaps one already accepted. It is the commonest refusal on a real response file and the cheapest to put right.
not_entitled CMS holds no Medicare entitlement over the reported period
A DELETE TRANSACTION GOES OUT AND THE COVERAGE COMES OFF CMS'S RECORDS. The individual was not a Medicare beneficiary over the dates reported, so the record was reported in error and re-keying it would keep asserting something untrue. Deleting a record that IS true is its own harm in the other direction, which is why this cause has to be established rather than guessed.
none Nothing in the packet points at an error
NOTHING IS CORRECTED ON THE GROUND OF THE RESPONSE FILE. Either CMS accepted the record, or what the packet carries is about a different record in the same file, or it is a standing note about the file as a whole. What happens next is then decided by the plan's own register, not by this answer.
HOW TO READ A MISMATCH, and it is the one judgement in this policy that decides everything else. A mismatch is a KEYING ERROR where exactly one identifier disagrees with the plan's eligibility snapshot, that disagreement is a keying error in that one field -- a transposition, a dropped or doubled character, an adjacent digit -- and every other identifier agrees. A mismatch is a DIFFERENT PERSON where two or more identifiers disagree, or where one identifier disagrees and the packet carries something that establishes the identifiers belong to somebody else. THE RESPONSE FILE CANNOT TELL YOU WHICH IT IS. CMS returns the same refusal for both, because from CMS's side both look identical: the identifiers submitted did not match a Medicare beneficiary. The difference is only visible in the packet, against the plan's own snapshot, and reading it is the whole of what this kit asks a reader for.
THE SEVEN CORRECTIONS, and what each one commits somebody to:
HOLD-FOR-ANALYST Hold the record. Do not correct it and do not submit it.
THE RECORD LEAVES THE AUTOMATED PATH. It is not corrected, not deleted and not sent: a named compliance analyst establishes whose identifiers these are before anything else happens to the record. It is the answer this kit exists to be able to give, and the only one that costs nothing to get wrong in the safe direction.
CORRECT-IDENTIFIER Replace the Medicare identifier, then re-send
THE IDENTIFIER FIELD IS REPLACED with the current one from the plan's snapshot and the record goes in the next file. Wrong, it sends a second bad identifier and burns another quarterly cycle.
CORRECT-DEMOGRAPHICS Re-key the name or date of birth, then re-send
ONE DEMOGRAPHIC FIELD IS RE-KEYED and the record goes in the next file. This is the correction the wrong-person records are built to attract, and applying it to one of them writes another member's data onto this record.
CORRECT-DATES Move the coverage effective or termination date, then re-send
A COVERAGE DATE IS CHANGED to what the plan's eligibility snapshot holds and the record goes in the next file. Wrong in one direction it reports coverage the member did not have; wrong in the other it drops a period in which the plan was primary.
DELETE-RECORD Send a delete transaction for this record
THE COVERAGE IS REMOVED FROM CMS'S RECORDS. It is the only correction here that takes something away rather than fixing it, and it is the one whose false positive is worst: deleting a live, correct coverage report leaves the plan's primary period unreported.
REFRESH-COB-STATUS Refresh the coordination-of-benefits status before staging this record again
THE PLAN RE-QUERIES ITS OWN COORDINATION-OF-BENEFITS STATUS for this member and re-stages from the answer. Nothing about the member's record changes here -- the file must state a status the plan currently holds, and a status that predates the cycle cut-off is not one.
SUBMIT-AS-STAGED Submit the record as it is staged
THE RECORD GOES IN THE NEXT FILE UNCHANGED. It is the commonest answer on any real cycle and it is not a null result: it is the plan saying it has looked at this record and found nothing to fix.
THE PLAN'S OWN COORDINATION-OF-BENEFITS REGISTER -- a fact about what the plan has
done, never an inference about the member:
current the plan re-queried and holds a coordination-of-benefits answer dated inside this reporting cycle
stale the plan holds an answer, and it predates this cycle's cut-off
not_established the plan has never established a coordination-of-benefits status for this member
WHICH CORRECTIONS NAME A FIELD:
Three corrections edit one named data element and owe the element's name, spelled from the closed list in data/fields.json. THE OTHER FOUR OWE NO FIELD AND MUST NOT NAME ONE. HOLD-FOR-ANALYST, DELETE-RECORD, REFRESH-COB-STATUS and SUBMIT-AS-STAGED do not edit a data element, and naming a field on one of them is the first half of an edit the policy forbids -- an answer that holds a wrong-person match and then names the field to fix has already begun doing the thing the hold exists to stop. It is never inferred: where the packet does not establish which element is at fault, the answer is that the field is NOT STATED.
The data elements you may name, and nothing outside this list:
mbi the Medicare Beneficiary Identifier on the staged record
ssn the Social Security Number on the staged record
surname the member's surname as staged
first_name the member's first name as staged
date_of_birth the member's date of birth as staged
coverage_effective_date the date the plan's coverage began, as staged
coverage_termination_date the date the plan's coverage ended, as staged
HOW TO QUOTE THE PACKET, and how it will be read.
Unless your correction is SUBMIT-AS-STAGED, `citation` must be ONE LINE COPIED VERBATIM out of the
packet -- the line that shows the cause, or, where the answer comes from the plan's own register
rather than from an error, the dated submission-history line that records it. It may come from any
part of the packet.
- Copy it character for character. It is located in the packet by searching for it, so a
paraphrase, a shortened version, an ellipsis in the middle, or two lines joined together will
not be found at all and will score nothing. There is no partial credit for a quote the packet
does not contain.
- Quote the line, not the section. What is returned is compared with that line by character
overlap: it must cover at least 60 pct of the line, and at least 30 pct of what you
return must be the line. Returning the whole packet scores nothing.
- MSP-2026 is NOT part of the packet. A rule is never the citation.
- Where your correction is SUBMIT-AS-STAGED, `citation` is null. Quoting a line where the packet
points at no error is counted as a wrong answer, not as an empty one.
THE RECONCILIATION PACKET, verbatim:
SECTION 111 RECONCILIATION PACKET MSP-0001 -- Response file, record accepted
PACKET FACTS
Responsible reporting entity Tarnsyde Municipal Employees Plan
Reporting cycle 2026Q2, cut-off 2026-06-30
Packet opened 2026-07-27
Register read as at 2026-09-01
STAGED OUTBOUND RECORD -- what the plan is about to send
Medicare Beneficiary Identifier 5MY5-G66-NK15
Social Security Number 943-42-8154
Surname Penhallow
First name Rosa
Date of birth 1959-11-18
Coverage effective date 2021-07-01
Coverage termination date 2026-01-20
Relationship to subscriber dependent of subscriber
PLAN ELIGIBILITY SNAPSHOT -- what the plan's own membership system holds
Medicare Beneficiary Identifier 5MY5-G66-NK15
Social Security Number 943-42-8154
Surname Penhallow
First name Rosa
Date of birth 1959-11-18
Coverage effective date 2021-07-01
Coverage termination date 2026-01-20
Relationship to subscriber dependent of subscriber
CMS RESPONSE FILE, PRIOR CYCLE
no record for this member was included in the prior cycle
ANALYST NOTES AND CORRESPONDENCE
The packet was assigned to the reconciliation queue and has not been reassigned.
The packet was opened when the response file was loaded and has been added to twice since.
Membership was asked to confirm the enrolment and replied the same day.
CORRESPONDENCE LOG
2026-08-04 response file loaded and split by disposition
2026-08-09 packet opened and assigned to the reconciliation queue
SUBMISSION HISTORY -- what was sent and what came back at earlier cycles
2026-05-15 coordination-of-benefits query answered for this member inside the current cycle; the status on file is current as at the cycle cut-off of 2026-06-30
Reply with JSON and nothing else, exactly this shape:
{
"cause": "wrong_person_match" | "demographic_typo" | "identifier_invalid" | "coverage_dates" | "not_entitled" | "none",
"correction": "HOLD-FOR-ANALYST" | "CORRECT-IDENTIFIER" | "CORRECT-DEMOGRAPHICS" | "CORRECT-DATES" | "DELETE-RECORD" | "REFRESH-COB-STATUS" | "SUBMIT-AS-STAGED",
"field": "mbi" | "ssn" | "surname" | "first_name" | "date_of_birth" | "coverage_effective_date" | "coverage_termination_date" | null,
"citation": "<text>" or null,
"confidence": <a number between 0 and 1>,
"why": "<text>"
}
What each field means:
cause WHY the record was refused, or `none` where nothing in the packet points at an error. `wrong_person_match` where the identifiers resolve to a different individual -- two or more disagree with the plan's snapshot, or the packet establishes they belong to somebody else. `demographic_typo` where exactly one demographic identifier disagrees, the disagreement is a keying error, and every other identifier agrees. `identifier_invalid` where the Medicare identifier is not a well-formed current one. `coverage_dates` where an effective or termination date contradicts the plan's snapshot. `not_entitled` where CMS holds no Medicare entitlement over the period reported
correction what has to happen to the staged record before the next submission, under MSP-2026 applied IN ORDER. Apply the rules as written, including the order they are applied in: the first rule whose condition holds is the answer
field which data element is at fault, and ONLY on CORRECT-IDENTIFIER, CORRECT-DEMOGRAPHICS and CORRECT-DATES. NULL on the other four corrections -- they edit no data element, and naming one on a HOLD is the first half of an edit the policy forbids. NULL also where the correction owes a field and the packet does not establish which element it is: that is the answer, not a gap to fill in
citation ONE LINE COPIED VERBATIM from the packet -- the line that shows the cause, or, where the answer comes from the plan's own register rather than from an error, the dated submission-history line that records it. Copy it exactly, character for character; do not paraphrase, do not shorten with an ellipsis, do not join two lines. NULL where the correction is SUBMIT-AS-STAGED: quoting a line where the packet points at no error is counted as a wrong answer, not as an empty one
confidence your own number between 0 and 1 for this packet's answers taken together. It is published as evidence and never used to change an answer
why one sentence naming what decided the cause. Where the cause is a mismatch, say which identifiers agreed and which did not -- that is the sentence a compliance analyst reads first
One object for one packet. No array, no second answer.