Work · Case study
VA Chapter 31 worksheet
Turning certified credit hours into VA training time and pay, cited to 38 CFR, including the independent review that failed it.
The tool is not linked here on purpose. An independent review returned a failing verdict on an earlier build, and it has not been re-reviewed since, so that verdict still stands. Money is the failure mode. I’m not sending strangers to a calculator my own checks haven’t cleared.
Problem
A veteran on VA Chapter 31 can’t find out what they will be paid until after they are paid.
Payment depends on training time (full, three-quarter, half), which VA measures from certified credit hours under 38 CFR § 21.4270(c). That is the one number a student can’t look up. They can get their credit hours and term dates. They can’t get the school’s full-time figure, their measured training time, or their rate. No official VA tool computes it.
The person with the most at stake is the only one without the number.
Constraints
- Wrong is only acceptable in one direction. Overstating a payment invites a veteran to spend money they will owe back. Every unresolved case shows UNKNOWN with the reason, never an estimate.
- No rate is stored without its expiry. Chapter 31 rates change every 1 October. The page withholds money after the change date but keeps showing training time, because the measurement rule isn’t dated even though the money is.
- No housing figure is stored at all. It is ZIP-specific and resets every year, so the page asks for it and links the issuer.
- Not a filing tool. It computes and explains. Nothing leaves the browser.
Solution
- Sessions are dated objects. Classes that start and stop on different dates are modeled the way the regulation requires, which is what earlier versions got wrong.
- The output is a dated schedule, not one number. Training time steps down as short sessions end. In the worked example, a two-day gap between an 8-week and a 16-week session drops the veteran from full time to half time for those two days.
- Money is prorated per calendar month, because a monthly rate isn’t what lands in an account.
- Every rule shows its authority on the line, so a certifying official can check the reasoning instead of trusting the total.
What the review caught
An independent review returned FAIL, 0 of 7 on an earlier build. Three of its six defects are now closed.
The one that matters most: VA drops the fractional unit when rounding, and I had rounded to nearest. That turned 6.75 into 7, overstating training time and therefore pay. That is the exact harm the project exists to prevent, and I had called the rule “a judgment call.” It wasn’t.
Two more are still open and stated on the page: a step I labeled “no published rule found” turned out to have one, and the tool under-predicts for veterans on a reduced work tolerance, who are a large share of the people likely to open it.
Responsibilities
Sole engineer, designer and researcher. Sourced the regulations, wrote the arithmetic, built the interface, ran the reviews and kept the decision record.
Technology
A single self-contained HTML file in plain JavaScript, with no backend and no build step. It was verified by driving the running page in a headless browser, not by reading the source. Authorities implemented: 38 CFR §§ 21.260, 21.310, 21.312, 21.314, 21.4270 and 21.4272, 38 U.S.C. 3108, VA M28C, and the VA FY2026 Chapter 31 rate tables.
What I’d build next
A check that re-derives the question from the original need, not from the spec. The test suite passed 34 of 34 checks, twice, on a tool that answered the wrong question. A test only proves the tool matches its spec. It can’t tell you whether the spec is right.