US federal and state tax document analyzer and return estimator. Reads tax documents (W-2, 1099-INT, 1099-DIV, 1099-B, 1099-MISC, 1099-SA, Form 3922/ESPP, Form 1098, childcare statements, rental property docs), extracts key figures, calculates AGI, estimates federal tax liability, and produces a professional Excel summary. - MANDATORY TRIGGERS: tax, taxes, tax return, W-2, 1099, tax documents, tax filing, tax owed, refund, AGI, capital gains, ESPP, RSU, rental income, Schedule E, Schedule D - Filing status: Married Filing Jointly (MFJ) - Output: Excel spreadsheet and/or chat summary
Analyze US tax documents, extract figures, calculate estimated federal/state tax liability, produce a professional Excel summary. Filing status: Married Filing Jointly.
Scan folder recursively. Categorize by keywords:
| Pattern | Category |
|---|---|
w2, W-2 | Wage statements |
1099 | Interest, dividends, broker, misc, HSA |
3922 | ESPP transfers |
1098 | Mortgage interest |
childcare, dependent | Childcare statements |
rental, property, invoice, insurance, platform | Rental expenses |
File types: .pdf, .png, .jpg, .xlsx. Note unrecognizable files.
Read references/document-parsing.md for detailed per-document extraction instructions.
Key principles:
Read tool first; if corrupt, try pdftotext via Bash; if image-based, user must provide screenshotRead tool (multimodal)Critical extraction points:
| Document | Must Extract | Watch For |
|---|---|---|
| W-2 | Box 1, 2, 16, 17, Box 14 codes | ESPPDD/RESTK already in Box 1 |
| 1099-INT | Box 1, Box 4 | Multiple accounts — sum all |
| 1099-DIV | Box 1a, 1b, Box 4 | Qualified vs ordinary |
| 1099-B | Proceeds, basis, gain/loss, ST vs LT | Covered vs noncovered |
| Form 3922 | All 8 boxes per lot | Match lots to sales via FIFO |
| 1098 | Box 1, Box 10 | Rental vs primary residence |
| 1099-MISC | Box 1 | Rental platform income |
| 1099-SA | Box 1, Box 3 code | Code 1 = normal distribution |
Read references/tax-rules.md for brackets, rates, and formulas.
AGI:
W-2 Box 1 (all) + Interest + Dividends + Net Capital Gains + Net Rental Income + Other - Above-the-line deductions = AGI
Tax liability:
AGI - Standard Deduction = Taxable Income
Split into: ordinary income vs qualified dividends/LTCG
Apply marginal brackets to ordinary → ordinary tax
Apply preferential rates to qualified div/LTCG → preferential tax
Total tax - Credits - Withholding = Amount owed/(refund)
If tax year ≠ 2025: web search for that year's standard deduction, brackets, and thresholds.
Use scripts/generate_tax_summary.py. Construct the data dict per its docstring, then:
import sys; sys.path.insert(0, '<skill-path>/scripts')
from generate_tax_summary import generate_tax_summary
generate_tax_summary(data, output_path, tax_year=YEAR)
Then recalculate formulas using the xlsx skill's scripts/recalc.py.
Total AGI: $X
Federal Tax: $X
Credits: -$X
Withholding: -$X
────────────────────────
Estimated Owed: $X
Always include: "I am not a tax professional. This is an estimate to help you plan. Please use tax software or consult a CPA for your actual filing."
Flag items NOT automatically calculated: depreciation, SALT deduction, charitable contributions, HSA/401(k) contributions, student loan interest.