Home › Use Cases › Decide which election period an enrolment request qualifies under
Use caseUC0170
🧪 Use-case kit · runnable

Decide which election period an enrolment request qualifies under

A small, forkable project that does one job end to end. Run once for real, and every figure on these pages captured from that run.

The business caseThe problem this solves

An enrolment request arrives with a reason attached -- "I lost my other coverage", "we moved", "I'm newly eligible" -- and somebody has to decide which election period it actually qualifies under, whether it arrived in time, and what date the cover starts. THE REASON ON THE FORM IS EVIDENCE ABOUT WHAT THE APPLICANT BELIEVES AND NOTHING MORE. A loss of coverage the member asked for is not an involuntary loss. A move to an address the plan still serves is not a qualifying move. An initial-eligibility window that closed eight months ago is not open because the form says it is. And a period the applicant never mentioned can outrank the one they did. The determination is signed, it is appealable, and the effective date on the end of it is the month somebody's cover begins -- so a wrong one is either an uncovered month or a premium nobody owed. An enrolment officer reading each request against the programme's rules: finding the applicant's eligibility date, the coverage-end date and its reason, the move date and whether the new address is in the service area, checking each against the window its election period defines, working out which of several open periods takes precedence, counting the months to the effective date -- and then reading the case correspondence to find out which of those facts the file has already corrected.

Audience

Enrolment operations staff who decide election periods and effective dates on inbound requests, the supervisors who sign the denials, and anyone who has to hold a determination up on appeal. Also anyone building this: the kit's own answer is that most of it is a decision table, and it publishes exactly how much. Every number on these pages came from one real run of this code, not from a vendor page.

The inputThe actual enrolment determination packs

The corpus is 48 enrolment determination packs, 0.66 MB (txt 48). ⚠︎ THIS CORPUS IS INVENTED AND SO IS ITS RULEBOOK -- generated from a fixed seed, not collected. Three reasons, and only the third is about difficulty. First, ASSERTING A REAL PROGRAMME'S ELECTION-PERIOD RULES AS FACT WOULD BE THE WRONG CLAIM: it would put a confidently-stated rule about somebody's health cover on a public page, it would need re-verifying every time a regulator republished anything, and it would confuse two things -- whether the model applied the rules, and whether the rules were right. Second, enrolment requests are protected records; there is no public corpus of them and there must not be one. Third, THE THING BEING MEASURED HAS TO BE PLANTED TO BE MEASURED: the question is whether a determination follows the FACTS rather than the CLAIM, and to count that you have to know, per request, which claims were wrong and where the evidence that says so lives. A real archive does not come labelled with its own channels.

The corpus

  • The 48 enrolment determination packsgenerated from a fixed seed, so no real record, person or institution appears in it.
  • Where each came fromwritten for this kit rather than collected — the corpus is generated in the kit's own repository, so there is no third-party data in it.

Swap this folder for your own material and the kit is pointed at your enrolment determination packs. That is the whole change — there is no database to migrate.

One enrolment determination pack, as the model receives itEPD-0001.txt · 1 of 48
Election Period Determination
----------------------------------------------------------------
  Pack                    EPD-0001
  Programme               Meridian Health Advantage
  Plan                    Northgate Complete (MH-4417-002)
  Service area            Northgate, Calder and Stonebridge counties
  Submitting broker       Sable Point Brokers
  Batch received          2026-06-18
  Prepared by             Enrolment Operations
  Requests in this batch  6

Election Period Rules
----------------------------------------------------------------
Election period definitions

  PD-1  EP-IEP        Initial Eligibility Period. Opens on the first day of the third calendar
                      month before the applicant's programme eligibility date, and closes on the
                      last day of the third calendar month after it.
  PD-2  EP-AEW        Annual Election Window. Opens 15 October and closes 7 December each year.
                      Open to any applicant; no other fact is required. It is a WINDOW rather
                      than an event, so it qualifies a request only where the receipt date falls
                      inside it, and a request received outside it is not late for it.
  PD-3  EP-OEW        Open Enrolment Window. Opens 1 January and closes 31 March each year, and
                      is open ONLY to an applicant already enrolled in a Meridian plan on the
                      1 January that opens it. Like EP-AEW it is a window rather than an event,
                      so it qualifies a request only where the receipt date falls inside it.
  PD-4  EP-MOVE       Move Election Period. Requires a permanent move to a new address OUTSIDE
                      this plan's service area. Opens on the first day of the month the programme

Abridged — the file continues.

The outcomeWhat a good result looks like

A drafted determination: one entry per request, in the pack's order, each carrying the election period the FACTS qualify it under, TIMELY or UNTIMELY, the coverage effective date the rules produce, the rule identifier that decided it and the records that prove it -- or NO_ELECTION_PERIOD, or INSUFFICIENT_EVIDENCE naming the date that is missing. Plus one case action for the batch. Nothing is enrolled, dated, denied or sent.

And when it cannot

THE PAID ARM WINS THE HEADLINE -- 90.62 pct against 87.50 pct over the same 288 requests (r001-election-period against b002-election-period-records). ⚑ AND THE HEADLINE IS THE LEAST INTERESTING NUMBER HERE, because the two arms fail in opposite directions and along a line the corpus draws deliberately. THE FREE FLOOR CANNOT READ. On the 36 requests whose only disqualifying evidence is one sentence of case correspondence it scores 0.00 pct -- it is not close, it is ZERO by construction -- and the paid arm scores 88.89 pct on the same 36. That is the entire value proposition of a model on this job, measured. THE PAID ARM CANNOT COUNT. On the 78 requests where the printed fact block itself contradicts the claim, pure code is at 100.00 pct and the model is at 89.74 pct; on the 12 whose defining date is simply not on file the split is 100.00 pct against 100.00 pct. ⚠︎ AND THE WORST NUMBER ON THIS PAGE IS NEITHER: THE COVERAGE EFFECTIVE DATE -- the month somebody's cover actually begins -- is exact on 91.67 pct of the 216 requests the key gives one for, against 89.81 pct for free code doing the same month arithmetic. ⚠︎ THE EXPENSIVE DIRECTION IS SEPARATED AND PUBLISHED: 14 of the 136 requests whose stated reason was RIGHT were overturned by the paid arm (10.29 pct), against 0 (0.00 pct) by the floor. Every one of those is a denial that gets reversed on appeal.

Where it fitsWhat did work

Every line below is a measured result from this kit's own runs, with the figure that supports it. The headline above is not softened by any of them.

  • Every fact that decides your election periods is already a FIELD -- eligibility date, coverage-end date and its reason, move date, service-area status -- your rules are written down, and your case file rarely contradicts the record. — the free floor -- records, $0.00
    It scores 87.50 pct on the discriminator for nothing, in a tenth of a second across all 48 packs, and it never once overturned a claim that was already right (0 of 136). On this corpus that is a ceiling rather than a forecast, but the shape of the answer is real: if the evidence is structured, the answer is a decision table.
  • Your requests arrive with a stated reason that is often wrong, and the thing that corrects it is a letter, an email or a note from a carrier -- prose nobody has turned into a field. — the paid arm, at $0.096013 a batch
    That is the only column a model wins here and it wins it outright: 88.89 pct against 0.00 pct on the 36 requests decided only by a sentence of case correspondence. Every free floor in this repository scores zero on them by construction.
  • You want the cheapest thing that is better than nothing. — the claimed floor, $0.00
    Trusting the stated reason and doing its arithmetic correctly reaches 51.39 pct -- 29.17 points above the best single constant (always EP-AEW, 22.22 pct). It is also the arm with the most dangerous failure shape on this page: it catches 7.89 pct of the 152 wrong claims, which is the entire job.

And where nothing here is good enough:

  • You need the EFFECTIVE DATE to be right, not just the period -- because it is the month somebody's cover begins and a wrong one is an uncovered month or a premium nobody owed. — neither, unread
    The date is exact on 91.67 pct for the paid arm and 89.81 pct for the floor over 216 requests, and the whole determination is exact on 90.62 pct and 87.50 pct. Whichever arm you pick, somebody reads it before it is signed.

At a glanceHow the whole thing runs

91%election period accuracy pct
266,595 msp50, end to end
$96.01per 1,000 enrolment determination packs · Google Gemini 3 Flash

Run once, for real, on 2026-08-26. Every figure on these pages was captured from that run — nothing is written from intent.

14 steps, grouped by the question that sends you to them rather than by build order. Each tile carries the one figure that step is about, and opens the page behind it.

Should you use this?What you bring, where it stops, and when not to use it

Before you commit an afternoon to this, these are the answers that decide it. Each one is rendered from the record it lives in — and links the page that holds it in full.

What do I have to bring?⚑ REPRODUCIBILITY FIRST, VERIFIED RATHER THAN ASSERTED: tools/build_corpus.py was re-run into an empty tree and the 48 packs, the answer key and the statistics file came back BYTE-IDENTICAL to the shipped ones -- one sha over corpus/*.txt + gold.jsonl + corpus-stats.json, equal either side. ⚠︎ src/select.py WITHHOLDS A NAMED SECTION AND IS NOT A REDACTION SYSTEM. Corpus lens →
When is this the wrong choice?Avoid: Do not use it where any decisive fact is a sentence. It reaches 0.00 pct of the 36 requests decided only by case correspondence -- zero, by construction, and the answer-key gate proves it rather than asserting it. On this corpus the paid arm reaches 88.89 pct of them. If your carriers send letters, this floor is blind in exactly the place it matters. That is the case against the best-fitting scenario (“Every fact that decides your election periods is already a FIELD -- eligibility date, coverage-end date and its reason, move date, service-area status -- your rules are written down, and your case file rarely contradicts the record.”). 4 scenarios scored in all, each with its own. Eval lens →
Where does it stop working?A pack layout that is not this one. src/pack.py is a fixed label table and one key/value regular expression written for these headings and these blocks; against a real enrolment export it parses nothing and returns empty tables rather than guessing. 7 recorded failure modes, each from a run rather than a guess. Corpus lens →
What was never verified?Repeatability. Every arm was run ONCE. 8 items this kit says it could not check. Eval lens →
Can I run this on a model I control?Yes — any OpenAI-compatible endpoint, including one on your own hardware. The shipped adapter takes its host from BASE_URL and its model from MODEL, so nothing in src/ changes. The published figures come from 1 model on the fast tier, one provider, one key. Prompt lens →
And if it fits — what do I stand up?4 artifacts with a stated home and a stated egress, and 3 decisions each with what you provision past its ceiling — plus what was not measured. That is the next page, not this one. step 14 — Run it in your environment →

Not asked of this kit — 2 questions: clone (a fresh clone of this kit runs with nothing fetched); judge (nothing here is graded by a model).

Last verified 2026-08-26 — r001-election-period. Every figure on these pages was captured from that run.

Run itHow this reaches your data

Every result on this page was produced by pure code over checked-in files, with no API key — which is why you can read the numbers before anyone spends anything.

Run this on your own data

  • The pipeline, its eval harness and the runs behind every numberdeployed inside your environment, on your own model endpoints, against your own documents.
  • The corpus above is the shape, not the limitit is a folder swap, and there is no database to migrate.

Talk to us →

Checked before this shipped — Clone, python3 -m src.app, open the port. No key, no install, no index build: the corpus, the rule set, the answer key, all three free floors and every committed result file are already there, and the page renders and stays browsable offline. requirements.txt names nothing.

A living map of modern AI — kept current every morning