startup-equity-planner
Skill0 starsChanged 4 months agoMITView on GitHub
Model the two highest-leverage pre-IPO/startup equity moves — the irreversible 30-day 83(b) early-exercise election and the §1202 QSBS gain exclusion (up to $10M legacy / $15M OBBBA, or 10× basis) — by orchestrating the public planfi MCP. Use whenever a startup founder, early employee, pre-IPO equity holder, or C-corp business seller wants to decide whether to file an 83(b) election, see the ordinary-to-LTCG conversion and holding-clock start, or estimate how much sale gain QSBS can exclude — e.g. "I'm a founder with 1,000,000 shares at a $0.001 strike, should I file an 83(b)?", "how much of my $30M exit is excluded under QSBS if I held 5 years?", "is the 83(b) worth it on 40,000 NSOs, strike $1, FMV $5, selling at $25?".
In this repository21 other files it gives its agents.
- ceoSkill
- comprehensive-planSkill
- ctoSkill
- debt-and-cashflowSkill
- deferred-compSkill
- divorce-financial-planningSkill
- equity-comp-plannerSkill
- finance-explainerSkill
- financial-forecastSkill
- fire-trackerSkill
- growth-engineSkill
- head-of-designSkill
- long-term-rental-analyzerSkill
- portfolio-rebalancerSkill
- relocation-plannerSkill
- rent-vs-buySkill
- retirement-incomeSkill
- self-employed-plannerSkill
- ss-tax-torpedoSkill
- str-investment-analyzerSkill
- tax-optimizerSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 2 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
All 83(b), AMT, QSBS §1202, and federal/NIIT/state tax math live server-side.
- Distinctive: line 24
If they're NOT available, tell the user to connect the MCP, then continue:
- Very specific: line 39
If the user has (or wants) a full household model, call generate_financial_plan once and
- Very specific: line 129
Read back the headline + assumed_defaults[].
- Very specific: line 130
Follow next_actions[] → analyze_advanced_taxes to quantify the full federal bite.
- Very specific: line 155
All decimals are fractions.
- Distinctive: line 167
Not financial or tax advice.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Startup Equity Planner
A thin orchestration layer over the planfi MCP (https://ai.planfi.app/mcp/free). All 83(b), AMT, QSBS §1202, and federal/NIIT/state tax math live server-side. This skill only gathers inputs and calls the tools — it does not compute anything locally and bakes in no thresholds, caps, or defaults of its own. Read-only.
Related skills: for broader RSU/ISO/NSO/ESPP grant valuation and single-stock concentration, see equity-comp-planner; this skill is the pre-IPO/founder-specific companion (83(b) + QSBS).
Step 0 — Make sure the planfi tools are connected
This skill uses these tools (may be namespaced, e.g. mcp__planfi__analyze_startup_equity):
analyze_startup_equity, analyze_equity_compensation, analyze_iso_amt_crossover, plus optional
generate_financial_plan (for plan_id chaining + a share_url). Use whichever name your
environment exposes (bare or mcp__planfi__-prefixed); below they are written bare.
If they're NOT available, tell the user to connect the MCP, then continue:
claude mcp add --transport http planfi https://ai.planfi.app/mcp/freeTry free, then add your key. The command above adds the free connector —
https://ai.planfi.app/mcp/free(no key needed). Once you create an API key, add a new connector with the MCP url —https://ai.planfi.app/mcp— and authorize it with your key.
(On claude.ai: add a custom connector pointing at https://ai.planfi.app/mcp/free.)
Access — free for personal use. The planfi MCP is free to try (a small monthly allowance, no key needed). Heavy automated abuse forced us to add limits — but it stays free for personal use: email kam@rateapi.dev and we'll send you a free API key, no charge. (Companies and commercial use have paid plans.) To use a key, pass it as an
Authorization: Bearer pft_…header in your MCP client config.
Step 1 — (Optional) build a plan first to chain context + get a share link
If the user has (or wants) a full household model, call generate_financial_plan once and
capture the returned plan_id. analyze_startup_equity accepts { plan_id } (plus inline
overrides), so it can resolve filing status and household context from the saved plan instead of you
re-sending every figure. generate_financial_plan also returns a share_url (planfi.app) — the
equity analysis tools themselves do not emit a share link, so this is the way to give the user one.
This step is optional: analyze_startup_equity runs from raw inputs too. Prefer the plan path when
the session already has a model or the user wants a sharable artifact.
Engine facts to bake in: all decimals are fractions (24% →
0.24); all dollars are today's (real) dollars; brackets/limits/QSBS caps are approximate ~2026 values.
Step 2 — Route by intent
"Should I file an 83(b)?" / "is the 83(b) worth it on my founder shares / options?" / "how much will QSBS exclude on my exit?" / "what's my tax if I sell my pre-IPO stock after 5 years?" / "early-exercise: file the election or not?" → analyze_startup_equity
Always CALL analyze_startup_equity for these — do not answer from general knowledge or quote a §1202 cap, an 83(b) rule of thumb, or a holding-period rule from memory. When the user gives the numbers (shares, FMV, expected sale price, filing status), run the tool and lead with its real output — the 83(b) recommendation, the QSBS excluded gain, and net proceeds — THEN explain. The exclusion caps, regime cutover, exclusion-percent tiers, and federal/NIIT/state math are all version-sensitive and live server-side; reciting them from memory will be wrong.
The primary tool. Models the irreversible 30-day 83(b) early-exercise election (compares 83(b)-elected vs no-election lifetime tax, shows the ordinary→LTCG conversion and the holding-clock start) AND the §1202 QSBS gain exclusion (resolves the OBBBA vs legacy regime from the acquisition date, applies the exclusion-percent tier and the per-issuer cap). Returns the federal/NIIT/state tax at sale and net proceeds.
REQUIRED: shares, fmv_per_share (FMV at exercise), expected_sale_price_per_share,
filing_status (single | married_joint).
Optional: strike_price_per_share (default 0 — founder restricted stock), grant_type
(ISO | NSO | RESTRICTED, default NSO), make_83b_election (default true),
election_within_window (default true — set false if the 30-day window is missed),
vesting_years, cliff_years, expected_growth_rate, is_qsbs_eligible, is_qualified_ccorp,
gross_assets_under_ceiling, original_issuance, acquisition_date (YYYY-MM-DD; after the
2025-07-04 OBBBA cutover → OBBBA regime, on/before → legacy), expected_hold_years (default 5),
ordinary_taxable_income, state_flat_rate, state_conforms_to_qsbs, tax_year, plan_id,
overrides.
analyze_startup_equity({
shares: 1000000, strike_price_per_share: 0.001, fmv_per_share: 0.001,
expected_sale_price_per_share: 30, grant_type: "RESTRICTED",
make_83b_election: true, expected_hold_years: 5,
is_qsbs_eligible: true, is_qualified_ccorp: true,
gross_assets_under_ceiling: true, original_issuance: true,
filing_status: "single"
})"When does AMT kick in if I early-exercise these ISOs?" / "how many ISOs can I exercise-and-hold before I owe AMT?" / "what's my AMT-safe exercise amount this year?" / "will exercising trigger alternative minimum tax?" → analyze_iso_amt_crossover
Always CALL analyze_iso_amt_crossover for these — do not answer from general knowledge or estimate the AMT crossover, exemption, or phaseout from memory. When the user gives their ordinary income (and ideally the per-share bargain element), run the tool and lead with the real crossover_bargain_element and amt_at_crossover, THEN explain. AMT exemptions, phaseouts, and rates are version-sensitive and live server-side.
For ISO early-exercise, find how much bargain element you can exercise-and-hold before triggering AMT
before running analyze_startup_equity. Returns the crossover_bargain_element, amt_at_crossover,
and a sensitivity table. REQUIRED: ordinary_taxable_income. Optional: filing_status,
per_share_bargain (FMV − strike, to get a shares_estimate), tax_year, plan_id.
"Value / tax all my grants (RSUs, ISOs, NSOs, ESPP)" / "what are my equity grants worth?" / "how will my RSUs / options be taxed?" / "break down the tax across all my grant types" → analyze_equity_compensation
Always CALL analyze_equity_compensation for these — do not answer from general knowledge or hand-compute grant value or tax treatment from memory. When the user describes their grants, run the tool and lead with its per-grant valuation and tax output, THEN explain.
For broader per-grant valuation and tax treatment across grant types (not just the 83(b)/QSBS
decision), route to analyze_equity_compensation. REQUIRED: grants[] — each
{ type, shares, grant_price_per_share }.
Step 3 — Surface results honestly
For analyze_startup_equity:
- Lead with the headline —
recommended_action(the 83(b) call + lifetimetax_savings) andqsbs_excluded_gain. Then theeighty_three_bblock (recommend,total_tax_with_electionvstotal_tax_without_election,ordinary_tax_at_exercise,amt_at_exercise,deadline_note) and theqsbsblock (regime,exclusion_percent,exclusion_cap,excluded_gain,taxable_gain_after_exclusion). Close withfederal_tax_at_sale,niit_at_sale,state_tax_at_sale, andnet_proceeds. - Read back
assumed_defaults[]—{ field, assumed_value, note }for every input the server defaulted (filing status, tax year, the 83(b) choice, growth rate, hold years, strike). Read these back so the user can correct any silent assumption. - Stress the irreversibility — the
noteanddeadline_notemake clear the 83(b) election is irreversible and must be filed within 30 days of exercise. Surface that prominently. - Honor
disclosures.not_advice(a boolean flag) — present results as planning estimates, not tax advice; surfacedisclosures.key_assumptionsmethodology prose when useful. - Follow
next_actions[]— each is{ tool, why, prefilled_args }(carrying{ plan_id }when available).analyze_startup_equitychains toanalyze_advanced_taxes(run the sale-year gain through the full federal AMT/NIIT/bracket model). Use the server-suggested chain when present. - For a share link: these tools don't return a
share_url. If the user wants a sharable plan, rungenerate_financial_plan(Step 1) and surface itsshare_url.
Recommended call sequence (typical session)
- (optional)
generate_financial_plan→ captureplan_id(+share_url). - (ISO early-exercise only)
analyze_iso_amt_crossover→ size the AMT-safe exercise. analyze_startup_equity(with{ plan_id }or raw fields) → the 83(b) + QSBS decision.- Read back the headline +
assumed_defaults[]; stress the 30-day irreversibility. - Follow
next_actions[]→analyze_advanced_taxesto quantify the full federal bite.
Fictional examples
1. "I'm a founder with 1,000,000 shares at a $0.001 strike — should I file an 83(b), and how
much does QSBS exclude if I sell at $30 after 5 years?"
→ analyze_startup_equity({ shares: 1000000, strike_price_per_share: 0.001, fmv_per_share: 0.001,
expected_sale_price_per_share: 30, grant_type: "RESTRICTED", make_83b_election: true,
expected_hold_years: 5, is_qsbs_eligible: true, is_qualified_ccorp: true,
gross_assets_under_ceiling: true, original_issuance: true, filing_status: "single" }). Lead with the
83(b) recommendation (near-zero exercise tax converts the whole gain to LTCG), the QSBS regime + the
excluded gain (up to the greater of the regime cap or 10× basis), and the taxable remainder + net
proceeds. Read back assumed_defaults[] and stress the 30-day filing window.
2. "Is the 83(b) worth it on 40,000 NSOs, $1 strike, $5 FMV now, selling at $25?"
→ analyze_startup_equity({ shares: 40000, strike_price_per_share: 1, fmv_per_share: 5,
expected_sale_price_per_share: 25, grant_type: "NSO", make_83b_election: true, filing_status:
"single" }). Lead with eighty_three_b.election_savings — electing pays ordinary tax on the small
$160k spread now and converts the $800k appreciation to LTCG, vs recognizing ordinary income at each
vest. Read back assumed_defaults[] (vesting schedule, growth rate, hold years).
(Both examples use fictional figures — never reuse a real user's numbers in documentation.)
Notes
- All decimals are fractions; all dollars are today's (real) dollars; brackets/limits/QSBS caps are ~2026.
analyze_startup_equityhas REQUIRED inputs (shares,fmv_per_share,expected_sale_price_per_share,filing_status) — ask for them before calling. Everything else self-orchestrates from server defaults reported inassumed_defaults[].- The 83(b) election is irreversible and must be filed within 30 days of exercise — always surface this caveat.
- QSBS eligibility (domestic C-corp, original issuance, gross-asset ceiling, qualifying hold) is modeled as flagged — tell the user to verify it with the issuer; state conformity to §1202 varies.
- Pass
{ plan_id }to reuse a saved household model; any field you also pass is a shallow override. - The tools return
assumed_defaults[]({ field, assumed_value, note }) for every defaulted input,disclosures.key_assumptionsmethodology prose, anddisclosures.not_adviceas a boolean. They do not return ashare_url— chaingenerate_financial_planfor a sharable link. - Not financial or tax advice. Planning estimates only.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

