changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "description": "Equity-funding plan comparison: four named plans plus the full risk/wealth frontier. All dollar amounts are USD.",
+ "properties": {
+ "appliedRiskTolerance": {
+ "description": "Shortfall-probability tolerance actually applied (default 0.10 when not supplied).",
+ "type": "number"
+ },
+ "balanced": {
+ "description": "Bracket-aware spread across all candidate years: minimum tax.",
+ "properties": {
+ "lockInFraction": {
+ "description": "Fraction (0..1) of the target locked in by an immediate sale, for hybrid candidates. Omitted on pure named plans.",
+ "type": "number"
+ },
+ "plan": {
+ "description": "The full sale schedule for this plan. Nested year/sale entries follow the shapes described here and may carry additional fields.",
+ "properties": {
+ "comparison": {
+ "description": "This schedule vs the naive sell-everything-in-the-target-year alternative.",
+ "properties": {
+ "optimizedSavingsPct": {
+ "description": "Tax saved as a fraction of the naive plan tax.",
+ "type": "number"
+ },
+ "optimizedSavingsVsTargetYearSale": {
+ "description": "Tax saved in dollars by this schedule vs the naive plan.",
+ "type": "number"
+ },
+ "sellAllInTargetYearAfterTax": {
+ "description": "After-tax cash in dollars under that naive plan.",
+ "type": "number"
+ },
+ "sellAllInTargetYearTotalTax": {
+ "description": "Tax in dollars if all needed shares were sold in the target year.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "sellAllInTargetYearTotalTax",
+ "sellAllInTargetYearAfterTax",
+ "optimizedSavingsVsTargetYearSale",
+ "optimizedSavingsPct"
+ ],
+ "type": "object"
+ },
+ "feasible": {
+ "description": "True when the schedule reaches the after-tax target by the target date.",
+ "type": "boolean"
+ },
+ "remainingNetByStack": {
+ "description": "Per-stack after-tax retained value in dollars, parallel to the input stacks array.",
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ },
+ "remainingPositionAfterTax": {
+ "description": "After-tax value in dollars of liquidating all retained shares at the target date (the cash backstop if scheduled sales come in light).",
+ "type": "number"
+ },
+ "remainingPositionValue": {
+ "description": "Market value in dollars of retained shares at the projected target-date price.",
+ "type": "number"
+ },
+ "remainingShares": {
+ "description": "Shares retained after all scheduled sales.",
+ "type": "number"
+ },
+ "schedule": {
+ "description": "Per-year sale schedule. Each entry: year, saleDateISO, sales (array of per-lot entries: stackIndex, ticker, lotIndex, shares, grossProceeds, gainAmount, isLongTerm, federalTax, stateTax, niit, netCash), yearGrossProceeds, yearTotalTax, yearNetCash, runningCumulativeNet.",
+ "items": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "shortfall": {
+ "description": "Present only when the target is not reachable from the available inventory.",
+ "properties": {
+ "gap": {
+ "description": "Dollars short of the target.",
+ "type": "number"
+ },
+ "maxAchievableAfterTax": {
+ "description": "Maximum after-tax cash in dollars achievable by the target date.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "maxAchievableAfterTax",
+ "gap"
+ ],
+ "type": "object"
+ },
+ "targetAfterTax": {
+ "description": "Echo of the requested net cash target in dollars.",
+ "type": "number"
+ },
+ "targetDateISO": {
+ "description": "Echo of the target date as an ISO date string.",
+ "type": "string"
+ },
+ "totalAfterTaxAchieved": {
+ "description": "Net after-tax cash in dollars the schedule produces by the target date (including after-tax cash interest when cashInterestRate is set).",
+ "type": "number"
+ },
+ "totalGrossProceeds": {
+ "description": "Total gross sale proceeds in dollars.",
+ "type": "number"
+ },
+ "totalSharesSold": {
+ "description": "Total shares sold across the schedule.",
+ "type": "number"
+ },
+ "totalTaxes": {
+ "description": "Tax totals across all scheduled sales, in dollars.",
+ "properties": {
+ "federal": {
+ "description": "Federal capital gains / ordinary tax in dollars.",
+ "type": "number"
+ },
+ "niit": {
+ "description": "Net Investment Income Tax (3.8%) in dollars.",
+ "type": "number"
+ },
+ "state": {
+ "description": "State tax in dollars.",
+ "type": "number"
+ },
+ "total": {
+ "description": "Total tax in dollars.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "federal",
+ "state",
+ "niit",
+ "total"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "feasible",
+ "targetAfterTax",
+ "targetDateISO",
+ "totalAfterTaxAchieved",
+ "totalSharesSold",
+ "totalGrossProceeds",
+ "totalTaxes",
+ "schedule",
+ "comparison",
+ "remainingShares",
+ "remainingPositionValue",
+ "remainingPositionAfterTax",
+ "remainingNetByStack"
+ ],
+ "type": "object"
+ },
+ "planKey": {
+ "description": "Plan identifier. \"candidate\" entries appear only inside frontier.",
+ "enum": [
+ "recommended",
+ "lock_in_now",
+ "balanced",
+ "hold_for_growth",
+ "candidate"
+ ],
+ "type": "string"
+ },
+ "planLabel": {
+ "description": "Human-readable plan name.",
+ "type": "string"
+ },
+ "shortfallProbability": {
+ "description": "Lognormal probability (0..1) that realized cash lands below the target. 0 means a deterministic hit (sell everything today).",
+ "type": "number"
+ },
+ "totalTax": {
+ "description": "Total tax paid across the plan in dollars.",
+ "type": "number"
+ },
+ "wealthAtTarget": {
+ "description": "Total wealth in dollars at the target date: net cash plus retained shares at the projected price. The metric the recommendation maximizes.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "planKey",
+ "planLabel",
+ "plan",
+ "wealthAtTarget",
+ "totalTax",
+ "shortfallProbability"
+ ],
+ "type": "object"
+ },
+ "frontier": {
+ "description": "All candidate plans from the hybrid lock-in sweep plus the named plans, sorted by shortfall probability.",
+ "items": {
+ "description": "One sale plan on the risk/wealth frontier.",
+ "properties": {
+ "lockInFraction": {
+ "description": "Fraction (0..1) of the target locked in by an immediate sale, for hybrid candidates. Omitted on pure named plans.",
+ "type": "number"
+ },
+ "plan": {
+ "description": "The full sale schedule for this plan. Nested year/sale entries follow the shapes described here and may carry additional fields.",
+ "properties": {
+ "comparison": {
+ "description": "This schedule vs the naive sell-everything-in-the-target-year alternative.",
+ "properties": {
+ "optimizedSavingsPct": {
+ "description": "Tax saved as a fraction of the naive plan tax.",
+ "type": "number"
+ },
+ "optimizedSavingsVsTargetYearSale": {
+ "description": "Tax saved in dollars by this schedule vs the naive plan.",
+ "type": "number"
+ },
+ "sellAllInTargetYearAfterTax": {
+ "description": "After-tax cash in dollars under that naive plan.",
+ "type": "number"
+ },
+ "sellAllInTargetYearTotalTax": {
+ "description": "Tax in dollars if all needed shares were sold in the target year.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "sellAllInTargetYearTotalTax",
+ "sellAllInTargetYearAfterTax",
+ "optimizedSavingsVsTargetYearSale",
+ "optimizedSavingsPct"
+ ],
+ "type": "object"
+ },
+ "feasible": {
+ "description": "True when the schedule reaches the after-tax target by the target date.",
+ "type": "boolean"
+ },
+ "remainingNetByStack": {
+ "description": "Per-stack after-tax retained value in dollars, parallel to the input stacks array.",
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ },
+ "remainingPositionAfterTax": {
+ "description": "After-tax value in dollars of liquidating all retained shares at the target date (the cash backstop if scheduled sales come in light).",
+ "type": "number"
+ },
+ "remainingPositionValue": {
+ "description": "Market value in dollars of retained shares at the projected target-date price.",
+ "type": "number"
+ },
+ "remainingShares": {
+ "description": "Shares retained after all scheduled sales.",
+ "type": "number"
+ },
+ "schedule": {
+ "description": "Per-year sale schedule. Each entry: year, saleDateISO, sales (array of per-lot entries: stackIndex, ticker, lotIndex, shares, grossProceeds, gainAmount, isLongTerm, federalTax, stateTax, niit, netCash), yearGrossProceeds, yearTotalTax, yearNetCash, runningCumulativeNet.",
+ "items": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "shortfall": {
+ "description": "Present only when the target is not reachable from the available inventory.",
+ "properties": {
+ "gap": {
+ "description": "Dollars short of the target.",
+ "type": "number"
+ },
+ "maxAchievableAfterTax": {
+ "description": "Maximum after-tax cash in dollars achievable by the target date.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "maxAchievableAfterTax",
+ "gap"
+ ],
+ "type": "object"
+ },
+ "targetAfterTax": {
+ "description": "Echo of the requested net cash target in dollars.",
+ "type": "number"
+ },
+ "targetDateISO": {
+ "description": "Echo of the target date as an ISO date string.",
+ "type": "string"
+ },
+ "totalAfterTaxAchieved": {
+ "description": "Net after-tax cash in dollars the schedule produces by the target date (including after-tax cash interest when cashInterestRate is set).",
+ "type": "number"
+ },
+ "totalGrossProceeds": {
+ "description": "Total gross sale proceeds in dollars.",
+ "type": "number"
+ },
+ "totalSharesSold": {
+ "description": "Total shares sold across the schedule.",
+ "type": "number"
+ },
+ "totalTaxes": {
+ "description": "Tax totals across all scheduled sales, in dollars.",
+ "properties": {
+ "federal": {
+ "description": "Federal capital gains / ordinary tax in dollars.",
+ "type": "number"
+ },
+ "niit": {
+ "description": "Net Investment Income Tax (3.8%) in dollars.",
+ "type": "number"
+ },
+ "state": {
+ "description": "State tax in dollars.",
+ "type": "number"
+ },
+ "total": {
+ "description": "Total tax in dollars.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "federal",
+ "state",
+ "niit",
+ "total"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "feasible",
+ "targetAfterTax",
+ "targetDateISO",
+ "totalAfterTaxAchieved",
+ "totalSharesSold",
+ "totalGrossProceeds",
+ "totalTaxes",
+ "schedule",
+ "comparison",
+ "remainingShares",
+ "remainingPositionValue",
+ "remainingPositionAfterTax",
+ "remainingNetByStack"
+ ],
+ "type": "object"
+ },
+ "planKey": {
+ "description": "Plan identifier. \"candidate\" entries appear only inside frontier.",
+ "enum": [
+ "recommended",
+ "lock_in_now",
+ "balanced",
+ "hold_for_growth",
+ "candidate"
+ ],
+ "type": "string"
+ },
+ "planLabel": {
+ "description": "Human-readable plan name.",
+ "type": "string"
+ },
+ "shortfallProbability": {
+ "description": "Lognormal probability (0..1) that realized cash lands below the target. 0 means a deterministic hit (sell everything today).",
+ "type": "number"
+ },
+ "totalTax": {
+ "description": "Total tax paid across the plan in dollars.",
+ "type": "number"
+ },
+ "wealthAtTarget": {
+ "description": "Total wealth in dollars at the target date: net cash plus retained shares at the projected price. The metric the recommendation maximizes.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "planKey",
+ "planLabel",
+ "plan",
+ "wealthAtTarget",
+ "totalTax",
+ "shortfallProbability"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "holdForGrowth": {
+ "description": "Sell only in the target year: maximum expected wealth, maximum price risk.",
+ "properties": {
+ "lockInFraction": {
+ "description": "Fraction (0..1) of the target locked in by an immediate sale, for hybrid candidates. Omitted on pure named plans.",
+ "type": "number"
+ },
+ "plan": {
+ "description": "The full sale schedule for this plan. Nested year/sale entries follow the shapes described here and may carry additional fields.",
+ "properties": {
+ "comparison": {
+ "description": "This schedule vs the naive sell-everything-in-the-target-year alternative.",
+ "properties": {
+ "optimizedSavingsPct": {
+ "description": "Tax saved as a fraction of the naive plan tax.",
+ "type": "number"
+ },
+ "optimizedSavingsVsTargetYearSale": {
+ "description": "Tax saved in dollars by this schedule vs the naive plan.",
+ "type": "number"
+ },
+ "sellAllInTargetYearAfterTax": {
+ "description": "After-tax cash in dollars under that naive plan.",
+ "type": "number"
+ },
+ "sellAllInTargetYearTotalTax": {
+ "description": "Tax in dollars if all needed shares were sold in the target year.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "sellAllInTargetYearTotalTax",
+ "sellAllInTargetYearAfterTax",
+ "optimizedSavingsVsTargetYearSale",
+ "optimizedSavingsPct"
+ ],
+ "type": "object"
+ },
+ "feasible": {
+ "description": "True when the schedule reaches the after-tax target by the target date.",
+ "type": "boolean"
+ },
+ "remainingNetByStack": {
+ "description": "Per-stack after-tax retained value in dollars, parallel to the input stacks array.",
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ },
+ "remainingPositionAfterTax": {
+ "description": "After-tax value in dollars of liquidating all retained shares at the target date (the cash backstop if scheduled sales come in light).",
+ "type": "number"
+ },
+ "remainingPositionValue": {
+ "description": "Market value in dollars of retained shares at the projected target-date price.",
+ "type": "number"
+ },
+ "remainingShares": {
+ "description": "Shares retained after all scheduled sales.",
+ "type": "number"
+ },
+ "schedule": {
+ "description": "Per-year sale schedule. Each entry: year, saleDateISO, sales (array of per-lot entries: stackIndex, ticker, lotIndex, shares, grossProceeds, gainAmount, isLongTerm, federalTax, stateTax, niit, netCash), yearGrossProceeds, yearTotalTax, yearNetCash, runningCumulativeNet.",
+ "items": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "shortfall": {
+ "description": "Present only when the target is not reachable from the available inventory.",
+ "properties": {
+ "gap": {
+ "description": "Dollars short of the target.",
+ "type": "number"
+ },
+ "maxAchievableAfterTax": {
+ "description": "Maximum after-tax cash in dollars achievable by the target date.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "maxAchievableAfterTax",
+ "gap"
+ ],
+ "type": "object"
+ },
+ "targetAfterTax": {
+ "description": "Echo of the requested net cash target in dollars.",
+ "type": "number"
+ },
+ "targetDateISO": {
+ "description": "Echo of the target date as an ISO date string.",
+ "type": "string"
+ },
+ "totalAfterTaxAchieved": {
+ "description": "Net after-tax cash in dollars the schedule produces by the target date (including after-tax cash interest when cashInterestRate is set).",
+ "type": "number"
+ },
+ "totalGrossProceeds": {
+ "description": "Total gross sale proceeds in dollars.",
+ "type": "number"
+ },
+ "totalSharesSold": {
+ "description": "Total shares sold across the schedule.",
+ "type": "number"
+ },
+ "totalTaxes": {
+ "description": "Tax totals across all scheduled sales, in dollars.",
+ "properties": {
+ "federal": {
+ "description": "Federal capital gains / ordinary tax in dollars.",
+ "type": "number"
+ },
+ "niit": {
+ "description": "Net Investment Income Tax (3.8%) in dollars.",
+ "type": "number"
+ },
+ "state": {
+ "description": "State tax in dollars.",
+ "type": "number"
+ },
+ "total": {
+ "description": "Total tax in dollars.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "federal",
+ "state",
+ "niit",
+ "total"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "feasible",
+ "targetAfterTax",
+ "targetDateISO",
+ "totalAfterTaxAchieved",
+ "totalSharesSold",
+ "totalGrossProceeds",
+ "totalTaxes",
+ "schedule",
+ "comparison",
+ "remainingShares",
+ "remainingPositionValue",
+ "remainingPositionAfterTax",
+ "remainingNetByStack"
+ ],
+ "type": "object"
+ },
+ "planKey": {
+ "description": "Plan identifier. \"candidate\" entries appear only inside frontier.",
+ "enum": [
+ "recommended",
+ "lock_in_now",
+ "balanced",
+ "hold_for_growth",
+ "candidate"
+ ],
+ "type": "string"
+ },
+ "planLabel": {
+ "description": "Human-readable plan name.",
+ "type": "string"
+ },
+ "shortfallProbability": {
+ "description": "Lognormal probability (0..1) that realized cash lands below the target. 0 means a deterministic hit (sell everything today).",
+ "type": "number"
+ },
+ "totalTax": {
+ "description": "Total tax paid across the plan in dollars.",
+ "type": "number"
+ },
+ "wealthAtTarget": {
+ "description": "Total wealth in dollars at the target date: net cash plus retained shares at the projected price. The metric the recommendation maximizes.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "planKey",
+ "planLabel",
+ "plan",
+ "wealthAtTarget",
+ "totalTax",
+ "shortfallProbability"
+ ],
+ "type": "object"
+ },
+ "lockInNow": {
+ "description": "Sell everything needed in the current calendar year: minimum price risk, usually highest tax.",
+ "properties": {
+ "lockInFraction": {
+ "description": "Fraction (0..1) of the target locked in by an immediate sale, for hybrid candidates. Omitted on pure named plans.",
+ "type": "number"
+ },
+ "plan": {
+ "description": "The full sale schedule for this plan. Nested year/sale entries follow the shapes described here and may carry additional fields.",
+ "properties": {
+ "comparison": {
+ "description": "This schedule vs the naive sell-everything-in-the-target-year alternative.",
+ "properties": {
+ "optimizedSavingsPct": {
+ "description": "Tax saved as a fraction of the naive plan tax.",
+ "type": "number"
+ },
+ "optimizedSavingsVsTargetYearSale": {
+ "description": "Tax saved in dollars by this schedule vs the naive plan.",
+ "type": "number"
+ },
+ "sellAllInTargetYearAfterTax": {
+ "description": "After-tax cash in dollars under that naive plan.",
+ "type": "number"
+ },
+ "sellAllInTargetYearTotalTax": {
+ "description": "Tax in dollars if all needed shares were sold in the target year.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "sellAllInTargetYearTotalTax",
+ "sellAllInTargetYearAfterTax",
+ "optimizedSavingsVsTargetYearSale",
+ "optimizedSavingsPct"
+ ],
+ "type": "object"
+ },
+ "feasible": {
+ "description": "True when the schedule reaches the after-tax target by the target date.",
+ "type": "boolean"
+ },
+ "remainingNetByStack": {
+ "description": "Per-stack after-tax retained value in dollars, parallel to the input stacks array.",
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ },
+ "remainingPositionAfterTax": {
+ "description": "After-tax value in dollars of liquidating all retained shares at the target date (the cash backstop if scheduled sales come in light).",
+ "type": "number"
+ },
+ "remainingPositionValue": {
+ "description": "Market value in dollars of retained shares at the projected target-date price.",
+ "type": "number"
+ },
+ "remainingShares": {
+ "description": "Shares retained after all scheduled sales.",
+ "type": "number"
+ },
+ "schedule": {
+ "description": "Per-year sale schedule. Each entry: year, saleDateISO, sales (array of per-lot entries: stackIndex, ticker, lotIndex, shares, grossProceeds, gainAmount, isLongTerm, federalTax, stateTax, niit, netCash), yearGrossProceeds, yearTotalTax, yearNetCash, runningCumulativeNet.",
+ "items": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "shortfall": {
+ "description": "Present only when the target is not reachable from the available inventory.",
+ "properties": {
+ "gap": {
+ "description": "Dollars short of the target.",
+ "type": "number"
+ },
+ "maxAchievableAfterTax": {
+ "description": "Maximum after-tax cash in dollars achievable by the target date.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "maxAchievableAfterTax",
+ "gap"
+ ],
+ "type": "object"
+ },
+ "targetAfterTax": {
+ "description": "Echo of the requested net cash target in dollars.",
+ "type": "number"
+ },
+ "targetDateISO": {
+ "description": "Echo of the target date as an ISO date string.",
+ "type": "string"
+ },
+ "totalAfterTaxAchieved": {
+ "description": "Net after-tax cash in dollars the schedule produces by the target date (including after-tax cash interest when cashInterestRate is set).",
+ "type": "number"
+ },
+ "totalGrossProceeds": {
+ "description": "Total gross sale proceeds in dollars.",
+ "type": "number"
+ },
+ "totalSharesSold": {
+ "description": "Total shares sold across the schedule.",
+ "type": "number"
+ },
+ "totalTaxes": {
+ "description": "Tax totals across all scheduled sales, in dollars.",
+ "properties": {
+ "federal": {
+ "description": "Federal capital gains / ordinary tax in dollars.",
+ "type": "number"
+ },
+ "niit": {
+ "description": "Net Investment Income Tax (3.8%) in dollars.",
+ "type": "number"
+ },
+ "state": {
+ "description": "State tax in dollars.",
+ "type": "number"
+ },
+ "total": {
+ "description": "Total tax in dollars.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "federal",
+ "state",
+ "niit",
+ "total"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "feasible",
+ "targetAfterTax",
+ "targetDateISO",
+ "totalAfterTaxAchieved",
+ "totalSharesSold",
+ "totalGrossProceeds",
+ "totalTaxes",
+ "schedule",
+ "comparison",
+ "remainingShares",
+ "remainingPositionValue",
+ "remainingPositionAfterTax",
+ "remainingNetByStack"
+ ],
+ "type": "object"
+ },
+ "planKey": {
+ "description": "Plan identifier. \"candidate\" entries appear only inside frontier.",
+ "enum": [
+ "recommended",
+ "lock_in_now",
+ "balanced",
+ "hold_for_growth",
+ "candidate"
+ ],
+ "type": "string"
+ },
+ "planLabel": {
+ "description": "Human-readable plan name.",
+ "type": "string"
+ },
+ "shortfallProbability": {
+ "description": "Lognormal probability (0..1) that realized cash lands below the target. 0 means a deterministic hit (sell everything today).",
+ "type": "number"
+ },
+ "totalTax": {
+ "description": "Total tax paid across the plan in dollars.",
+ "type": "number"
+ },
+ "wealthAtTarget": {
+ "description": "Total wealth in dollars at the target date: net cash plus retained shares at the projected price. The metric the recommendation maximizes.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "planKey",
+ "planLabel",
+ "plan",
+ "wealthAtTarget",
+ "totalTax",
+ "shortfallProbability"
+ ],
+ "type": "object"
+ },
+ "recommended": {
+ "description": "The wealth-maximal plan whose shortfall probability is at or below the applied risk tolerance. Present this plan first.",
+ "properties": {
+ "lockInFraction": {
+ "description": "Fraction (0..1) of the target locked in by an immediate sale, for hybrid candidates. Omitted on pure named plans.",
+ "type": "number"
+ },
+ "plan": {
+ "description": "The full sale schedule for this plan. Nested year/sale entries follow the shapes described here and may carry additional fields.",
+ "properties": {
+ "comparison": {
+ "description": "This schedule vs the naive sell-everything-in-the-target-year alternative.",
+ "properties": {
+ "optimizedSavingsPct": {
+ "description": "Tax saved as a fraction of the naive plan tax.",
+ "type": "number"
+ },
+ "optimizedSavingsVsTargetYearSale": {
+ "description": "Tax saved in dollars by this schedule vs the naive plan.",
+ "type": "number"
+ },
+ "sellAllInTargetYearAfterTax": {
+ "description": "After-tax cash in dollars under that naive plan.",
+ "type": "number"
+ },
+ "sellAllInTargetYearTotalTax": {
+ "description": "Tax in dollars if all needed shares were sold in the target year.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "sellAllInTargetYearTotalTax",
+ "sellAllInTargetYearAfterTax",
+ "optimizedSavingsVsTargetYearSale",
+ "optimizedSavingsPct"
+ ],
+ "type": "object"
+ },
+ "feasible": {
+ "description": "True when the schedule reaches the after-tax target by the target date.",
+ "type": "boolean"
+ },
+ "remainingNetByStack": {
+ "description": "Per-stack after-tax retained value in dollars, parallel to the input stacks array.",
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ },
+ "remainingPositionAfterTax": {
+ "description": "After-tax value in dollars of liquidating all retained shares at the target date (the cash backstop if scheduled sales come in light).",
+ "type": "number"
+ },
+ "remainingPositionValue": {
+ "description": "Market value in dollars of retained shares at the projected target-date price.",
+ "type": "number"
+ },
+ "remainingShares": {
+ "description": "Shares retained after all scheduled sales.",
+ "type": "number"
+ },
+ "schedule": {
+ "description": "Per-year sale schedule. Each entry: year, saleDateISO, sales (array of per-lot entries: stackIndex, ticker, lotIndex, shares, grossProceeds, gainAmount, isLongTerm, federalTax, stateTax, niit, netCash), yearGrossProceeds, yearTotalTax, yearNetCash, runningCumulativeNet.",
+ "items": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "shortfall": {
+ "description": "Present only when the target is not reachable from the available inventory.",
+ "properties": {
+ "gap": {
+ "description": "Dollars short of the target.",
+ "type": "number"
+ },
+ "maxAchievableAfterTax": {
+ "description": "Maximum after-tax cash in dollars achievable by the target date.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "maxAchievableAfterTax",
+ "gap"
+ ],
+ "type": "object"
+ },
+ "targetAfterTax": {
+ "description": "Echo of the requested net cash target in dollars.",
+ "type": "number"
+ },
+ "targetDateISO": {
+ "description": "Echo of the target date as an ISO date string.",
+ "type": "string"
+ },
+ "totalAfterTaxAchieved": {
+ "description": "Net after-tax cash in dollars the schedule produces by the target date (including after-tax cash interest when cashInterestRate is set).",
+ "type": "number"
+ },
+ "totalGrossProceeds": {
+ "description": "Total gross sale proceeds in dollars.",
+ "type": "number"
+ },
+ "totalSharesSold": {
+ "description": "Total shares sold across the schedule.",
+ "type": "number"
+ },
+ "totalTaxes": {
+ "description": "Tax totals across all scheduled sales, in dollars.",
+ "properties": {
+ "federal": {
+ "description": "Federal capital gains / ordinary tax in dollars.",
+ "type": "number"
+ },
+ "niit": {
+ "description": "Net Investment Income Tax (3.8%) in dollars.",
+ "type": "number"
+ },
+ "state": {
+ "description": "State tax in dollars.",
+ "type": "number"
+ },
+ "total": {
+ "description": "Total tax in dollars.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "federal",
+ "state",
+ "niit",
+ "total"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "feasible",
+ "targetAfterTax",
+ "targetDateISO",
+ "totalAfterTaxAchieved",
+ "totalSharesSold",
+ "totalGrossProceeds",
+ "totalTaxes",
+ "schedule",
+ "comparison",
+ "remainingShares",
+ "remainingPositionValue",
+ "remainingPositionAfterTax",
+ "remainingNetByStack"
+ ],
+ "type": "object"
+ },
+ "planKey": {
+ "description": "Plan identifier. \"candidate\" entries appear only inside frontier.",
+ "enum": [
+ "recommended",
+ "lock_in_now",
+ "balanced",
+ "hold_for_growth",
+ "candidate"
+ ],
+ "type": "string"
+ },
+ "planLabel": {
+ "description": "Human-readable plan name.",
+ "type": "string"
+ },
+ "shortfallProbability": {
+ "description": "Lognormal probability (0..1) that realized cash lands below the target. 0 means a deterministic hit (sell everything today).",
+ "type": "number"
+ },
+ "totalTax": {
+ "description": "Total tax paid across the plan in dollars.",
+ "type": "number"
+ },
+ "wealthAtTarget": {
+ "description": "Total wealth in dollars at the target date: net cash plus retained shares at the projected price. The metric the recommendation maximizes.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "planKey",
+ "planLabel",
+ "plan",
+ "wealthAtTarget",
+ "totalTax",
+ "shortfallProbability"
+ ],
+ "type": "object"
+ },
+ "targetAfterTax": {
+ "description": "Echo of the requested net cash target in dollars.",
+ "type": "number"
+ },
+ "targetDateISO": {
+ "description": "Echo of the target date as an ISO date string.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "recommended",
+ "lockInNow",
+ "balanced",
+ "holdForGrowth",
+ "frontier",
+ "targetAfterTax",
+ "targetDateISO",
+ "appliedRiskTolerance"
+ ],
+ "type": "object"
+}