Home › Use Cases › Check a proposed no-show or cancellation fee against the rate plan's own written terms
Use caseUC0405
🧪 Use-case kit · runnable

Check a proposed no-show or cancellation fee against the rate plan's own written terms

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

A guest does not arrive, or cancels. The front desk raises a no-show or cancellation fee and somebody has to decide, before a card is touched, whether the rate plan's own terms actually support it. Three things make that hard and none of them is the arithmetic. The plan's cancellation window lives in PROSE the property publishes, and the worksheet's policy code column is the desk's own coding of it rather than the thing itself. A paragraph can carry a general arrangement and an exception — four nights or more, a Friday arrival — and which one reaches this booking decides the whole fee. And a waiver may be sitting in the notes: an approved one, a declined one, or one approved ONLY on a condition nobody recorded. Get any of those wrong and the property either charges a guest who owes nothing, or writes off money it was entitled to, and in both directions nobody finds out. Reading each plan's published cancellation terms, deciding which of a paragraph's two arrangements reaches this booking, converting a timestamp in the guest's or the channel's time zone into the property's clock, comparing it with a deadline nothing prints, checking the waivers panel for a note that names this reservation and actually takes effect, and then recomputing the fee on the basis the terms state rather than the one the desk used.

Audience

A revenue manager or front office manager, reading a month of proposed fees before anybody posts one. And a guest-relations desk that has to answer for a charge after the fact. Every number on these pages came from one real run of this code, not from a vendor page.

The inputThe actual no-show and cancellation fee worksheets

The corpus is 60 no-show and cancellation fee worksheets, 0.26 MB (json 4 · jsonl 1 · md 2 · txt 60). Because the shape of a fee failure is not the arithmetic, it is the TERMS, the EXCEPTION and the WAIVER. 234 of the 270 fees are simply supported, which is what a month of proposed fees looks like; 16 hide a window the desk coded differently from the plan's own written terms; 7 carry a conditional exception inside the paragraph that reaches that booking; 4 carry a waiver-shaped note that decides nothing; and exactly 19 of them carry an answer no column on the worksheet can reach. A corpus where half the rows were wrong would be a different job.

The corpus

  • The 60 no-show and cancellation fee worksheetsgenerated from a fixed seed, so no real record, person or institution appears in it.
  • Where each came fromNowhere — all 60 worksheets, data/properties.json and the whole answer key are generated in-process by the file that also derives the key, so there is no fetch, no licence to clear and no third-party right in any of it. data/SOURCES.md states what that costs the measurement, measured rather than asserted.

Swap this folder for your own material and the kit is pointed at your no-show and cancellation fee worksheets. That is the whole change — there is no database to migrate.

One no-show and cancellation fee worksheet, as the model receives itFEE-0001.txt · 1 of 60
FEE WORKSHEET - NO-SHOW AND CANCELLATION FEE PRE-CHECK

PROPERTY HEADER
  Worksheet            FEE-0001
  Property             The Corradine Harbourside (PR-01)
  Brand                Corradine Hotels
  City                 Charleston
  UTC offset           -05:00  (in force at this property on every date in this worksheet)
  Check-in             15:00  property local  (C-4 measures an hours window from this)
  Cancellation hour    18:00  property local  (C-4 closes a days window at this hour)
  Worksheet period     2026-01-01 to 2026-01-30
  Worksheet date       2026-02-03
  Prepared by          M. Hallberg, front office, for The Corradine Harbourside

RATE PLAN REGISTER (the rate plans this property sells)
   Plan      Name                               Channel            Sold since
   ADV14     Advance Purchase 14 Day            direct             2023-01-01
   ADV07     Advance Purchase 7 Day             direct, OTA        2024-02-01
   BAR       Best Available Rate                OTA only           2025-03-01
   FLEX      Fully Flexible                     direct, GDS        2023-04-01
   SAVER     Saver Rate                         direct, OTA, GDS   2024-05-01
   CORP      Corporate Negotiated               corporate          2025-06-01

RATE PLAN TERMS (each plan's cancellation terms, as the property publishes them)
   ADV14     Advance Purchase 14 Day. This rate is taken in full when the booking is made and nothing is refundable from that moment; a guest who gives the room up before arrival is treated exactly as one who never arrives. Where a charge falls due it is the first night at the rate booked, with the tax on it.

Abridged — the file continues.

The outcomeWhat a good result looks like

Every proposed fee carries a verdict, the term of the procedure it rests on, the amount at issue to the cent AND SIGNED, and one row copied verbatim out of the worksheet as evidence; the worksheet carries PASS or QUERY, the fees named, and the total at issue. A reviewer reads a queue instead of joining six fee lines to a plan register, six paragraphs of published terms, a waivers panel and three different UTC offsets by eye.

And when it cannot

⚠︎ THE WORKSHEET-LEVEL NUMBER IS 3 of 60 AND THAT IS NOT A TYPO. sheet_all_correct requires every one of the seven graded fields on every fee to be right, plus the recommendation, the queried set and the total. The verdict column reads 265 of 270 and the queried-fee set is exactly right on 55 of 60 worksheets. What sits between them is the CITATION: the call returned a quoted row on 133 of the 234 fees that are SUPPORTED, where the answer contract says null — because its OWN verdict on those fees was wrong, which makes the quote compliant for the arm and wrong against the key. The free column floor scores 28 of 60 worksheets. Both numbers are on every board and every run record, because a page printing either alone tells a different story.

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.

  • your rate plan terms are a structured field with a window token in it — the free column floor
    there is nothing to read; the deadline arithmetic is the whole job and it costs nothing
  • your terms are published prose and your policy codes are reliable — the free column floor, with a sample audited against the prose
    the call's win here is entirely on the rows where the code and the prose disagree
  • your terms are published prose and your policy codes drift — this kit
    that is exactly the population it beats the column floor on, 15 to 0 on the fees whose answer is in prose

And where nothing here is good enough:

  • you want the fee posted automatically — nothing here
    this kit never charges, waives or refunds, and the answer contract offers no field that could

At a glanceHow the whole thing runs

98%fee verdict rechecked pct
3,311 msp50, end to end
$1.51per 1,000 no-show and cancellation fee worksheets · GPT-5.6 Luna

Run once, for real, on 2026-09-11. 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?Point data/corpus/ at your own exported worksheets and data/properties.json at your own property records. The boundary is the ANSWER KEY, not the documents. Corpus lens →
When is this the wrong choice?Avoid: Paying for a call that adds nothing. That is the case against the best-fitting scenario (“your rate plan terms are a structured field with a window token in it”). 4 scenarios scored in all, each with its own. Eval lens →
Where does it stop working?A real time zone. This corpus PRINTS each property's UTC offset and stamps every event with its own, so the whole conversion is integer arithmetic with no dependency. 6 recorded failure modes, each from a run rather than a guess. Corpus lens →
What was never verified?Whether the three readings hold on a real property's published cancellation terms. Every figure here is against 60 generated worksheets whose prose is drawn from pools. 6 items this kit says it could not check. Eval lens →
Can I run this on a model I control?The shipped adapter is one provider, one key, configured in .env; the Prompt lens states what swapping it costs. The published figures come from 1 model on the fast tier, reasoning disabled (THE PUBLISHED RUN). Prompt lens →
And if it fits — what do I stand up?4 artifacts with a stated home and a stated egress, and 4 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-09-11 — r001-noshow-fee. 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 and run python3 -m evals.baseline with no key, no network and nothing installed: all four floors score all 60 worksheets in about a second. python3 -m evals.check_labels re-derives the key independently and reports 15 checks and 0 problems. python3 tools/build_corpus.py --check rebuilds every file in memory and compares bytes.

A living map of modern AI — kept current every morning