Room left in the current federal ordinary-income bracket, for sizing a Roth conversion
One command in the Planning pack, available in the CLI, as an MCP tool and as a JavaScript import: planning tax-headroom.
What it needs, and why
Every input is checked before anything is calculated. agi and filingStatus are required; the rest refine the answer.
| Input | Required | The question it asks | Why it matters |
|---|---|---|---|
agi | yes | What is the household's adjusted gross income for the year? | Bracket headroom is measured from taxable income, which starts at AGI. |
filingStatus | yes | Are they married filing jointly or single? | Bracket thresholds and the standard deduction differ by filing status. |
Requests it answers
- “how much can they convert to a Roth this year”
- “are they near the top of their tax bracket”
- “roth conversion headroom”
An agent with this pack loaded picks the command from phrasing like that, asks for whatever input is missing, and reports the figures with the method that produced them.
Run it
node bin/wealth-skills.js planning tax-headroom --agi 210000 --status MFJ
Limits it inherits from wealth-planning
- Bracket headroom uses only the standard deduction and ordinary-income brackets. It ignores itemized deductions, credits, capital-gain and qualified-dividend stacking, NIIT, IRMAA thresholds and state tax.
- RMDs use the prior December 31 balance. Use the Joint and Last Survivor Table instead when the sole beneficiary is a spouse more than 10 years younger.
- Monte Carlo assumes normally distributed annual returns and ignores taxes and fees.
The full pack, its other 4 commands and what it deliberately leaves alone are on the Planning page.