Skip to content

Rebuild the APPAM talk around one family's question - #101

Merged
MaxGhenis merged 22 commits into
mainfrom
appam-rebuild
Nov 5, 2026
Merged

MaxGhenis merged 22 commits into
mainfrom
appam-rebuild

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Draft until Max's call, due by 14:45Z on November 5. Main stays untouched until then, and this PR merges only with his OK and an independent APPROVE at the head that merges. If he keeps today's deck, we close this PR as draft work.

This PR carries #99 (4:3 and short-window fit) and #100 (posted child care limits for Idaho and Ohio's voucher), so merging it lands both. It also applies the posted limits Sol's review of #100 asked for: Missouri and Alabama at $3,331 a month, and Indiana at $3,331 before its April limit.

What changes

The talk opens on one Massachusetts family and one question, and widens from there. Fifteen slides in about 12 minutes:

  1. Cover
  2. One family, one question: how much SNAP in a year?
  3. We surveyed AI models, with a build that reveals PolicyEngine's answer
  4. The family's other lines, and PolicyBench's rates across 100 households
  5. The waterfall from earnings to net resources
  6. Across states
  7. Across earnings
  8. The Massachusetts child and family credit at $880 for this family
  9. The same change for the state
  10. One model, several ways in
  11. CliffWatch and Build recording
  12. Coverage: policies, and how we build the data
  13. What we're working on
  14. Axiom
  15. Thank you and QR code

It drops the comparison table and "What we leave out", and it folds the old slides 2 and 4 into spoken lines. Questions keeps the answers those slides carried.

Slide 3's data. Slide 3 reads the registered second round: five calls to each of ten models, tools off, default effort, on analysis/model_ask/prompt-v2.txt. All 50 answered on the first attempt. The slide shows the seven newest versions (Max's rule). Of their 35 answers, 8 came within 10% of $3,663 and none within $1, and the notes give 15 of all 50 and the older versions' 7 of 15. model_answers.py refuses a comparison file whose status isn't final, and no count sits in slide text: each comes from the file.

Massachusetts. Slide 2 asks the room to assume approval for all twelve months, and slide 3's reveal prints SNAP with the subsidy ($3,663) and without it ($8,739). The notes state the assumption at both, and say Massachusetts keeps a waiting list and scheduled new vouchers from October, so a new applicant may not get a full year. The department's counts sit only in Questions.

Slide 6. At $40,000, the family ends up with $26,562 in Indiana, $27,711 in Missouri, $28,166 in Idaho and $32,224 in Alabama. Three of those rows turn on $2 a month, and Questions gives the rows at the limits the model reads: $31,487, $41,931 and $40,722. Slide 7's largest drops become Idaho −$17,808, Maryland −$15,343 and Missouri −$15,124.

Invariants, stated and tested

  • Waterfall identity: earnings, taxes, credits, benefits and the child care bill chain to net resources within two cents (content.test.ts, test_waterfall_adds_up_for_this_family, test_waterfall_splits_the_net_tax_lines).
  • Doubling the credit moves only the state refundable credit line and net resources (test_doubling_the_credit_moves_only_the_state_credit_line, content.test.ts).
  • Monthly SNAP sums to the annual amount with and without the subsidy, and the slide prints that arithmetic (9 × $297 + 3 × $330 = $3,663; 9 × $720 + 3 × $753 = $8,739).
  • Monthly program amounts, capped at the family's annual care bill, reconcile with the deck's subsidy line in all 51 jurisdictions.
  • Posted limits: each lowers its row against the unmodified model (test_each_posted_limit_lowers_this_familys_subsidy_and_net_resources), and a family under the limit keeps its subsidy (test_a_family_under_the_posted_limit_keeps_its_subsidy).
  • Enrolled families: the subsidy never falls when a family already sits in the program, at every grid point in eight states, except Ohio's labelled voucher band from $39,000 to $53,000, where the test asserts the opposite order. A Python comparison covers Ohio's total subsidy on both sides of the band.
  • Slide 3's counts come from the calls: content.test.ts recounts the headline and every row of slide 4's table from comparison-v2.json's 50 calls.
  • Slide 3's chart draws every answer the seven gave, and the test compares the sorted lists.
  • Attempts: the file records no retries, no malformed answers, no unanswered calls and no tool use.
  • Slide 7's chart gives each highlighted state a defined stroke of its own.
  • Coverage: the local-area file's households and targets add from their parts, and the slide names which file each figure describes.
  • Links: finish_pdf.py's table lists each anchor on each slide, measured on this PR's deployment.

Calls made

  • Slide 4 drops the score line. The bars read the 2026-10-27 snapshot and the scores read the October 23 copy, so the scores moved to Questions.
  • Slide 13 keeps five items, each an open PR, and leaves out microcosm #1248, which reads as a list of gaps.
  • Indiana takes $3,331 before April. We found no chart Indiana posted before April 5. Our model pairs 150% with the 2026 guideline, 150% of the 2025 guideline gives $3,331, and the PN3 Roadmap prints 140% for 2025. Chalkbeat reports a 15-month freeze to May. Questions gives the row at the model's limit.
  • Alabama's five months count a new applicant in every month. Questions says a family Alabama approves in May keeps the subsidy in June.
  • Georgia keeps its CAPS subsidy, and Questions says Georgia denies new applicants outside its priority groups and gives the row without it.
  • Fit the APPAM deck to 4:3 screens and to short and wide windows #99's short-window rule stays as it is. Its review asked to restore (max-height: 500px). On production main, 1024x576 clips slides 1, 6, 7, 8, 9, 10 and 12 (least spare −64px) and 1000x520 clips nine slides (−110px), and viewers can't reach that content. With Fit the APPAM deck to 4:3 screens and to short and wide windows #99, they can scroll to it. Neither size is a standard projector mode.

Evidence

See the review folder, ~/reviews/appam-2026/rebuild/deck-review/, for saved test output, the snapshot and the diff at each reviewed head. CI doesn't run the Python suite, so the folder also records its runs on the machine.

🤖 Generated with Claude Code

MaxGhenis and others added 14 commits November 5, 2026 00:35
The deck sizes type by the screen's height. On a 4:3 projector that leaves too little width: at 1024x768, text runs under the footer on slides 5, 7, 8 and 10, and code clips on slides 6, 7 and 8. A media block caps type by width on screens up to 1.53:1, which leaves 16:9, 16:10, the MacBook full-screen shapes and the PDF export out of it. In a window, code that still outgrows its block now scrolls instead of clipping.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Under a browser's toolbars, the deck's fixed margins take a growing share of the height, so text runs under the footer at 1366x650 and 1280x600, and the cover's title meets its logo. Slide 9's screenshots grow with the width, so its captions run under the footer at 1536x730 and 1920x950. Two media blocks scale the margins in short windows and hold the screenshots to their 16:9 width in wide ones. Neither reaches the PDF's page or a 16:9 or 16:10 screen at 720 px or taller.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The sweep of #99's first two commits found text running up to 24 px under
the footer at 1280x600, and up to 76 px at 1000x520. Close the gap under the
title in the short-window block, which recovers 24 px, and send windows 580 px
tall or shorter to the one-column layout, which keeps every word.

The PDF's page, and any screen 720 px or taller, still match none of these rules.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The sweep after the last commit left slide 8's caption 12 px under the footer at
1280x600 and 1200x600, and 4 px at 1100x620, 1152x620 and 1366x600. Its code block's
padding recovers 16 px, and these windows have no room to spare it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A new applicant and a family already enrolled face different income limits, and
the deck's family applies as a new applicant. Slide 5 described that family's
cliffs as a raise, which only an enrolled family gets. Slide 3 and its notes left
out Indiana, which has turned this family down since April, and neither slide said
we leave out waiting lists.

Slide 3 now names Indiana's four months and states what we model. Slide 5 labels
its chart as a new applicant's, gives the enrolled limits, and notes Maryland's
waiting list. The notes answer the three questions a child care expert may ask.

analysis/subsidy_months.py and analysis/enrolled_cliffs.py produce the new figures
at the deck's pinned model. Their new-applicant runs reproduce data/family.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Windows at 600 and 640 px tall still ran slide 8 under the footer and clipped code on
slides 6 and 7 at 1024 px wide. Windows under 1100 px wide now take the width caps, and
the short-window block gives back more of the top margin and the code headers' padding.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A new applicant has no subsidy to lose, so slide 5's title now says net resources fall.
"Already enrolled" and "approved applicants" become "already in the program" and
"applicants who qualify", and the notes and ledger say we count Indiana's four months.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Safari on a tablet held sideways leaves 1180x746 and 1194x760, where code on slides 6 and
7 ran out of its block. The width caps now reach any window under 1200 px, and code takes
the smaller of the width's cap and the height's size, so the cap can't raise it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A minus sign lets the browser break a figure in two where a column narrows,
which split Maryland's value on slide 5 at 1024x768.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every run of slides 3 to 5 now takes the $2,888 a month Idaho's department
posts and adds Ohio's Child Care Choice Voucher, which the model lacks. Idaho
replaces Ohio at the bottom of slide 3, at $28,166, and Idaho's step replaces
Maryland's as the largest cliff, at $17,808.

The notes and ledger report what we keep and what it would change: Georgia's
priority groups, Alabama's and Missouri's limits $2 below this family's income,
and Maryland's sources. analysis/limit_checks.py computes those figures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds the family's line-by-line run, the opening question, the waterfall and
the interfaces slide. WIP toward the 15-slide order Max asked for.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
policyengine-slides Ready Ready Preview Nov 5, 2026 2:36pm UTC

Request Review

Adds the models' answers, PolicyBench's rates, coverage and work in progress
as slides, each read from a data file an analysis script writes. Drops the
overview, line rugs, tools table and "what we leave out" slides. Notes, ledger
and tests follow in the next commits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Slide 2 now states the subsidy assumption the models received, and slide 5
gives the family's net without the subsidy. The PDF link table still holds the
old order; the next commit measures it against this layout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Slide 3 now draws every answer from the registered second round, five calls to
each of the seven newest versions, and reads its count from the final file. It
labels PolicyEngine's amount as PolicyEngine's answer, prints the monthly SNAP
path, and states the twelve-month subsidy assumption on slides 2 and 3.

Slide 4 counts calls and drops the October 23 scores, which come from a
different snapshot than its bars. Slide 12 keeps the national and local-area
files apart. Slide 13 counts eight LIHEAP states. The notes and ledger carry
the review's corrected wording and Massachusetts's waiting list figures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ng list counts to Questions

Slide 3's notes now land slide 2's promise with the assumption and the $8,739, and
Questions keeps both Massachusetts counts. The notes also take a voice pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… Massachusetts wording

Missouri's chart and Alabama's June 1 fact sheet post $3,331 a month for new
applicants of three, and this family earns $3,333. Indiana takes the same limit
before its April chart, since no dated source supports more. Indiana now sits
lowest at $26,562, and slide 6's title follows. Questions gives the swing at the
limits the model reads, and says Alabama's five months test a new applicant in
every month.

Slide 2 and slide 3 keep the receipt period unknown: Massachusetts keeps a
waiting list and scheduled new vouchers to start in October.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis and others added 2 commits November 5, 2026 09:16
Neither state pays this family a subsidy, so taxes set the $1,603 gap: Indiana
collects $522 in state income tax and $626 in Marion County income tax, and Idaho
pays a net $455. No slide changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Slide 7's cliffs now hold Idaho, Maryland and Missouri, and the chart's colors still
named Iowa, so Missouri's highlighted line drew with no stroke.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The deployed build at 05812f0 printed "$2,888a month" although the source holds a space there, and vitest's render keeps it. An explicit space child sets it in both. The new test catches a run-on amount written into one text node; the deployed text scan covers the production compile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review November 5, 2026 14:46
@MaxGhenis
MaxGhenis merged commit af853d2 into main Nov 5, 2026
7 of 8 checks passed
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Audit: the coordinating session merged this on Max's go at 7c3e6f8. Reviews: review-r1-opus.md (Opus 5.5, APPROVE at 05812f0), review-head-roadmap-opus.md (APPROVE) and review-r1-opus-deck.md (Opus 5.5, REQUEST CHANGES at 05812f0, which arrived after the merge decision). #102 fixes that review's findings. The Sol review 20261105-091841-rebuild-r1 didn't run, because the Codex lanes were closed. A Python subset stopped after 33 passes, so the full suite still needs a run after the talk.

This branch was successfully deployed

1 active deployment
Preview – policyengine-slides — 7c3e6f80 Deployed Nov 5, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant