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 ↗

160
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.

AI Work

AI in RegTech — grounded, cited, and it refuses when it should.

I'm building this in public, one layer at a time. Citations come first; the model comes last and has to quote its sources.

1
Live now

Cite

Ask a question, get the official regulation and a link. No AI model, $0 per question, tested against a golden set.

2
Next

Search the handbooks

FSA Handbook, Dear Colleague letters, and guidance, searchable by meaning, not just keywords.

3
Later

Explain

A plain-English answer that must quote its citations, and refuses when the sources don't support one.

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.