Product Manager · Federal Student Aid · 14+ years

I turn regulation nobody wants to read into software people actually trust.

Fourteen years in product, most of them at the seam of federal student aid policy and the systems that run on it. Where I add the most value: the requirement is still regulation, the stakes are compliance, and someone has to decide what the software will actually claim.

Cite or don't claim. Ship the boring parts. Make it checkable. That's the whole method — applied to a law that changed loan limits for less-than-full-time students in 2026.

The input — OBBBA, condensed

"...for a student enrolled on a less-than-full-time basis, the Secretary shall apply a schedule of reductions to the applicable annual loan limit, prorated by the student's enrollment intensity for the period, calculated separately for subsidized and unsubsidized amounts, net of amounts already disbursed..."

The output — one query later
100%
SOR eligibility
$3,500
Annual Sub limit
$2,000
Annual Unsub limit

Same math, two surfaces: a full staff engine and a plain-English student estimate. Try it live ↗

89
Regression tests passing
V1 + V2
Public API contract
5
MCP tools for AI agents
2026-27
Policy year, sources dated
My Tools

Small tools, built for the offices and students living the reduction.

How the work gets made

From policy text to a shipped, agent-callable product.

The same five moves, every release. Nothing ships that skips a step.

1
Policy text
2
Interpretation & fixtures
3
Tested engine
4
API + MCP
5
Shipped & verifiable
Inside the engine

The ED 5-step Schedule of Reductions, the way it actually runs.

1
Initial max annual limit
2
SOR % (AY reduction)
3
Per-term share
4
Enrollment % × share
5
Verified disbursement

Every step is source-labelled and regression-tested against published fixtures. Methodology & sources ↗

For developers & AI agents

The engine isn't just a page. It's a contract.

Proof of work

Things I have shipped, and what they cost to get right.

How I think about product

Four rules that hold in a regulated domain — and everywhere else.

Cite or don't claim

Every number this site produces traces back to a labelled source, and where the regulation is unsettled the tool says so instead of guessing quietly.

Two audiences, one engine

Students and financial aid staff need opposite levels of detail from identical math. One tested engine, different surfaces, no forked logic.

Make it checkable

Public scenarios, an OpenAPI contract, a scenario-challenge process. If I am wrong, I want it to be cheap for someone to prove it.

Ship the boring parts

Versioning, disclaimers, release markers, and regression fixtures are the product when the domain is compliance.