Changelog
What we've shipped recently. MTT is built and maintained by a veteran, for veterans; this page is regenerated on every deploy from the commit history.
November 2026
- November 13, 2026 · 7858386
Make the analytics script survive the upstream errors that were silently costing us numbers
The GA4 Data API returns intermittent 502s and answers them with an HTML error page instead of JSON. The script called res.json() immediately, so an upstream outage surfaced as `SyntaxError: Unexpected token '<'` with a stack trace into undici, wh...
- November 13, 2026 · 3337457
Add a live-traffic mode to the analytics script, because the standard report cannot answer "how is today going"
The GA4 reporting API is trailing, so a question about the current day gets answered with a figure that is hours old and looks complete. `--realtime` switches to :runRealtimeReport, which covers the last 30 minutes, or a window set with `--minutes...
- November 12, 2026 · b69a186
Page the remaining audience-wide email queries
Routes the pay-date reminder, the weekly digest, the separation-deadline reminder and the earlier news blast through the paging helper. Each one asked for its whole audience in a single select, which PostgREST silently truncates at a thousand rows...
- November 12, 2026 · 3378777
Stop a subscriber query silently stopping at a thousand people
An announcement sent this morning reached 997 of 1,295 opted-in subscribers. 298 people were never in the result set. The route reported 999 sent and zero errors, which described what it did rather than what was asked of it.
- November 12, 2026 · e1b0f55
Update the explainer and the announcement: the House passed the Star Act
The House passed H.R. 2102, the Major Richard Star Act, at 10:59 a.m. on 12 November by 392 votes to 18, with 23 not voting. The page and the unsent announcement email both said the vote had not happened yet, so both are corrected.
- November 12, 2026 · 17c7694
Point email replies at the Military Transition Toolkit inbox
Replies to MTT email now go to jacob@militarytransitiontoolkit.com instead of the Formation Labs address, so a reader answering a newsletter reaches the brand they signed up with.
- November 12, 2026 · 7c0bf41
Put a physical mailing address on every outgoing email
Every email now carries the Formation Labs mailing address in its footer. None of them did before: the four hand-written HTML footers and the shared React layout all ended at the unsubscribe link.
- November 12, 2026 · 7b8b796
Correct and harden the announcement email before it goes out
Fixes four things found by rendering the email and checking its claims against the bill texts again rather than against the first draft.
- November 12, 2026 · 407bec9
Add the announcement email for the concurrent receipt explainer
Adds a one-off announcement email pointing subscribers at the explainer on this week's House votes. It is not sent by this commit. The route has a preview mode that delivers only to a single inbox, and the full send is a separate manual trigger.
- November 12, 2026 · ebf3fe5
Surface the concurrent receipt explainer and mark it a developing story
The explainer on this week's House action now says plainly that it is a developing story and is being updated, and it points readers at the official roll calls, which will always be ahead of any article. A news strip on the home page links to it, ...
- November 12, 2026 · 1eb4a86
Explain the House votes on concurrent receipt for medically retired veterans
Adds a plain-language explainer on this week's House action affecting veterans who were medically retired with a combat-related disability. It covers what each vote did, how the two bills carrying the same name would pay differently, and what has ...
- November 11, 2026 · 26e0ed8
Rewrite a published changelog summary that named internal search metrics
One commit from yesterday opened its message with an internal reporting metric, which the changelog page publishes. It now renders a plain summary instead.
- November 11, 2026 · 6e270a2
Add 2027 pay dates and make the pay-date calendars printable
The four pay-date pages now show 2027 alongside 2026, and each calendar has a print button that gives you the table on its own, in black on white, with the page navigation, ads and sign-up prompts left off. Printing any page on the site now comes ...
- November 11, 2026 · f2ec3d5
Correct the December payday and derive every pay date from the rule
The end-of-month December 2026 payday was listed as 1 January 2027. That is New Year's Day, a federal holiday, so pay cannot settle then: it lands on Thursday 31 December instead, and Navy Federal members should see it about a business day before ...
- November 11, 2026 · bfad3ea
Label blended page CTR in the report so it stops reading as a diagnosis
An internal reporting script was presenting one of its own numbers in a way that invited the wrong conclusion. It now names the checks that settle the question instead of implying an answer.
- November 11, 2026 · ab85158
Stop the page-query script silently reporting healthy pages as having no data
Two defects in scripts/gsc-page-queries.mjs, both of which make a page look quieter than it is.
- November 11, 2026 · b9f3d3e
Add a military time chart and two-way 24-hour clock converter
Adds /military-time: a converter that works in both directions, a chart covering every hour, and how each time is said out loud. The chart prints on one page. Free, no account, like everything else on the site.
- November 8, 2026 · cb5cb47
Regenerate the changelog
Picks up the state benefit figure corrections.
- November 8, 2026 · d3b1ab0
Correct four state benefit figures found by rechecking all 18 open findings
South Dakota gives a surviving spouse the same $200,000 property tax exemption the veteran gets, not $150,000. Maine has no veterans' preference points: it guarantees an interview and protects you in a layoff. North Carolina's lifetime licences fo...
- November 8, 2026 · 5f65cd6
Regenerate the changelog
Picks up the Tennessee citation fix.
- November 8, 2026 · 5f265db
Cite a source that supports Tennessee's surviving-spouse cap
Tennessee calculates property tax relief for a disabled veteran's surviving spouse on up to $175,000 of market value, the same cap the veteran receives. That page now cites a source stating both the cap and the eligibility rules, tells a reader th...
- November 8, 2026 · 627a945
Write the state tax notes for the veteran reading them, not the next maintainer
Every milNote and propNote is rendered verbatim on /military-retirement-tax and /state-benefits. Three of them were addressed to a developer.
- November 8, 2026 · 0e12154
Teach the source check about phase-ins, failed bills and numbers written as words
Three more classes of false alarm, each found by verifying all 21 findings from the first run against primary sources, and each now a test.
- November 8, 2026 · 0083fef
Correct the Maryland military retirement subtraction to the amount actually in law
Maryland's subtraction is up to $12,500 under age 55 and up to $20,000 at 55 or older. The site said $40,000 at any age, on the state page and in one blog post. A Maryland retiree who relied on it would have under-withheld.
- November 8, 2026 · 9d3fcfd
Regenerate the changelog for the source-claim check
Generated output from prebuild; committed so it does not drift from the commit history it is built from.
- November 8, 2026 · 3c78ee1
Check the figures in our data files against the pages we cite for them
Adds scripts/check-source-claims.mjs, which reads every dollar and percentage we assert in the free-text fields of stateTax2026.ts and stateBenefitsExtra.json and verifies it against that record's own propSource, milSource or applyUrl. Runs weekly...
- November 6, 2026 · ee118c2
Check the prose inside the data files, not just the numbers
Adds a build gate that reads the free-text fields in the state tax and state benefits data and flags prose that contradicts the numbers beside it, for example a note saying "no income tax" for a state recorded as taxing income, or a stated exempti...
- November 6, 2026 · e974c87
Make blog listings and search show the same titles as the pages themselves
Blog cards, search results and the weekly digest were showing older titles and descriptions than the pages they link to, on 500 posts. They now come from the same source as the page, so a result and the page it opens agree.
- November 6, 2026 · 23a052d
Record that the quarantined state posts have been rewritten
Points each of the ten quarantined files at its published replacement so the rewrite is not attempted twice, and notes that the replacements use new slugs because the originals never rendered.
- November 6, 2026 · ffe992b
Replace ten fabricated state benefit posts with cited rewrites
Publishes accurate guides to veteran benefits in Alaska, Delaware, Hawaii, Maine, New Hampshire, New Mexico, South Dakota, Vermont, West Virginia and Wyoming. Every program, dollar figure and statute is cited to the state's own code or agency, and...
- November 6, 2026 · 5371636
Correct which states fully exempt disabled veterans from property tax
The "States With a Full Property Tax Exemption for 100% Disabled Veterans" page listed 14 states. Five of them do not offer a full exemption, and 13 states that do were missing. The page now builds its list from the verified tax dataset, so it nam...
- November 5, 2026 · 69918aa
Add a cited guide to what happens if you stop going to the VA
Answers a question veterans ask constantly and get contradictory answers to: whether taking a break from VA health care costs you your disability rating or your enrollment. Every claim is cited to the regulation or statute it comes from.
- November 4, 2026 · aeb2308
Correct the access claim on the organizations page
The page told organizations that every tool it lists works without an account. That is wrong for the resume builder, whose full version needs a free one. The intro, the tool list and the paste-ready blurb now name that exception.
- November 4, 2026 · d322fbf
Point the Lockheed SkillBridge link at their current Heroes page
The interest form this guide sent people to has been taken down, so anyone following it hit a 404 instead of an application. It now points at Lockheed's Heroes Program page, which carries the current SkillBridge and fellowship options plus the pro...
- November 2, 2026 · 0854c63
Correct the note explaining why auth redirects use the apex origin
The comment in this file said the Supabase redirect allow list carried a wildcard on the apex domain. It did not. Read back through the Management API it held three exact urls and no wildcard, and the password reset path was on neither host in any...
- November 2, 2026 · 6d1af89
Tighten database permissions so internal helpers are server-only
Three helper functions behind the email worker and the rate limiter are now callable only by the server, and a fourth has a fixed search_path. No change to anything a visitor uses.
- November 2, 2026 · ad91342
Email the pay date, for the people who asked to be told
Adds opt-in pay-date reminders. Pick where you bank on any of the pay-date pages and we email you a few days before payday with the date your money actually lands, which moves month to month and differs by bank. Opt-in only, one choice, and you ca...
October 2026
- October 31, 2026 · fe0b082
Stop the search report from naming a cause it cannot see
Internal reporting tooling only. Nothing on the site itself changed.
- October 31, 2026 · 5b814cc
Switch the VA disability rate tables over on 1 December automatically
The new compensation, DIC and SMC amounts take effect on 1 December each year. The site now rebuilds itself that morning so the published figures change on the day they change in real life, and it refuses to publish last year's amounts once the ne...
- October 27, 2026 · 55153e6
Offer a reminder for the date your pay actually lands
Adds opt-in pay-date reminders. Pick where you bank on any of the pay-date pages and we email you a few days before each payday with the date your money actually arrives, since that date moves monthly and differs by bank.
Last 40 commits. See policy changes affecting veterans →