changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "description": "NSO exercise sell-vs-hold result. All dollar amounts are USD.",
+ "properties": {
+ "bracketJump": {
+ "description": "Marginal federal bracket change caused by the new ordinary income; null when the income stays within one bracket.",
+ "properties": {
+ "fromRate": {
+ "description": "Marginal federal rate before the event, as a decimal (0.24 = 24%).",
+ "type": "number"
+ },
+ "thresholdAtJump": {
+ "description": "Taxable-income threshold in dollars where the bracket changes.",
+ "type": "number"
+ },
+ "toRate": {
+ "description": "Marginal federal rate after the event, as a decimal.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "fromRate",
+ "toRate",
+ "thresholdAtJump"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "exercise": {
+ "description": "Tax bill at exercise on the bargain element (taxed as ordinary W-2 income).",
+ "properties": {
+ "additionalMedicare": {
+ "description": "Additional Medicare (0.9%) tax in dollars.",
+ "type": "number"
+ },
+ "bargainElement": {
+ "description": "shares x (currentPrice - strike) in dollars, taxed as ordinary income at exercise.",
+ "type": "number"
+ },
+ "federal": {
+ "description": "Federal ordinary income tax on the bargain element in dollars.",
+ "type": "number"
+ },
+ "medicare": {
+ "description": "Medicare tax in dollars.",
+ "type": "number"
+ },
+ "netCashSellAll": {
+ "description": "bargainElement - total: net cash in dollars if every share is sold at exercise.",
+ "type": "number"
+ },
+ "socialSecurity": {
+ "description": "Social Security tax in dollars (0 when not employed or already past the wage base).",
+ "type": "number"
+ },
+ "state": {
+ "description": "State income tax on the bargain element in dollars.",
+ "type": "number"
+ },
+ "total": {
+ "description": "Total tax at exercise in dollars.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "bargainElement",
+ "federal",
+ "state",
+ "socialSecurity",
+ "medicare",
+ "additionalMedicare",
+ "total",
+ "netCashSellAll"
+ ],
+ "type": "object"
+ },
+ "hold": {
+ "description": "Exercise now and hold the shares holdYears for long-term capital gains treatment.",
+ "properties": {
+ "afterTaxProceedsAtSale": {
+ "description": "After-tax sale proceeds in dollars at end of holdYears.",
+ "type": "number"
+ },
+ "cashNeededAtExercise": {
+ "description": "Outside cash required at exercise in dollars (strike + tax under cash funding; 0 under sell-to-cover).",
+ "type": "number"
+ },
+ "costBasis": {
+ "description": "Cost basis per share in dollars (the FMV at exercise).",
+ "type": "number"
+ },
+ "effectiveSalePrice": {
+ "description": "Projected sale price per share in dollars at end of holdYears, after the volatility haircut.",
+ "type": "number"
+ },
+ "expectedGain": {
+ "description": "Expected capital gain in dollars on the retained shares at sale.",
+ "type": "number"
+ },
+ "funding": {
+ "description": "How strike cost and exercise tax are funded (echo of holdFunding).",
+ "enum": [
+ "sell-to-cover",
+ "cash"
+ ],
+ "type": "string"
+ },
+ "ltcgFederal": {
+ "description": "Federal long-term capital gains tax (including NIIT) on the gain in dollars.",
+ "type": "number"
+ },
+ "ltcgState": {
+ "description": "State capital gains tax on the gain in dollars.",
+ "type": "number"
+ },
+ "ltcgTotal": {
+ "description": "Total capital gains tax at sale in dollars.",
+ "type": "number"
+ },
+ "netAtYearN": {
+ "description": "Net after-tax value of the hold strategy in dollars at end of holdYears (after subtracting forgone market growth).",
+ "type": "number"
+ },
+ "sharesRetained": {
+ "description": "Shares still held after funding the exercise.",
+ "type": "number"
+ },
+ "sharesSoldToCover": {
+ "description": "Shares sold at exercise to cover strike + tax (sell-to-cover only; 0 in cash mode).",
+ "type": "number"
+ },
+ "strikeCost": {
+ "description": "Total strike cost in dollars: shares x strike.",
+ "type": "number"
+ },
+ "y0OutflowForgoneNet": {
+ "description": "After-tax market growth forgone in dollars by spending cash at exercise: y0OutflowGain - y0OutflowLtcgTotal.",
+ "type": "number"
+ },
+ "y0OutflowGain": {
+ "description": "Opportunity-cost gain in dollars the year-0 cash outflow would have earned at the market rate (cash funding only; 0 for sell-to-cover).",
+ "type": "number"
+ },
+ "y0OutflowLtcgFederal": {
+ "description": "Federal capital gains tax in dollars on the forgone market gain (cash funding only).",
+ "type": "number"
+ },
+ "y0OutflowLtcgState": {
+ "description": "State capital gains tax in dollars on the forgone market gain (cash funding only).",
+ "type": "number"
+ },
+ "y0OutflowLtcgTotal": {
+ "description": "Total capital gains tax in dollars on the forgone market gain (cash funding only).",
+ "type": "number"
+ }
+ },
+ "required": [
+ "funding",
+ "costBasis",
+ "strikeCost",
+ "cashNeededAtExercise",
+ "sharesSoldToCover",
+ "sharesRetained",
+ "effectiveSalePrice",
+ "expectedGain",
+ "ltcgFederal",
+ "ltcgState",
+ "ltcgTotal",
+ "afterTaxProceedsAtSale",
+ "y0OutflowGain",
+ "y0OutflowLtcgFederal",
+ "y0OutflowLtcgState",
+ "y0OutflowLtcgTotal",
+ "y0OutflowForgoneNet",
+ "netAtYearN"
+ ],
+ "type": "object"
+ },
+ "holdMinusCashless": {
+ "description": "hold.netAtYearN - sellNowInvest.netAtYearN in dollars. Positive favors holding the shares; negative favors selling at exercise and reinvesting.",
+ "type": "number"
+ },
+ "sellNowInvest": {
+ "description": "Counterfactual: sell every share at exercise and reinvest the net cash at expectedMarketReturn for holdYears.",
+ "properties": {
+ "ltcgFederal": {
+ "description": "Federal capital gains tax (including NIIT) in dollars on the market gain at the horizon.",
+ "type": "number"
+ },
+ "ltcgState": {
+ "description": "State capital gains tax in dollars on the market gain.",
+ "type": "number"
+ },
+ "ltcgTotal": {
+ "description": "Total capital gains tax in dollars on the market gain.",
+ "type": "number"
+ },
+ "marketGain": {
+ "description": "Market growth in dollars on the reinvested cash over holdYears.",
+ "type": "number"
+ },
+ "netAtYearN": {
+ "description": "Net after-tax value of sell-now-and-invest in dollars at end of holdYears.",
+ "type": "number"
+ },
+ "netCashAtY0": {
+ "description": "Net cash in dollars after exercise tax, available to reinvest.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "netCashAtY0",
+ "marketGain",
+ "ltcgFederal",
+ "ltcgState",
+ "ltcgTotal",
+ "netAtYearN"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "exercise",
+ "bracketJump",
+ "hold",
+ "sellNowInvest",
+ "holdMinusCashless"
+ ],
+ "type": "object"
+}