projectionlab-mcp 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HOW-IT-WORKS.md +1 -1
- package/MANUAL-SETUP.md +64 -0
- package/README.md +33 -271
- package/REFERENCE.md +212 -0
- package/SETUP-FOR-AGENTS.md +37 -0
- package/dist/bootstrap.js +16 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/clonePlan.d.ts +9 -0
- package/dist/clonePlan.js +15 -14
- package/dist/clonePlan.js.map +1 -1
- package/dist/currentFinances.d.ts +12 -1
- package/dist/currentFinances.js +60 -0
- package/dist/currentFinances.js.map +1 -1
- package/dist/dataModel.d.ts +58 -0
- package/dist/dataModel.js +1429 -0
- package/dist/dataModel.js.map +1 -0
- package/dist/deletePlan.d.ts +17 -0
- package/dist/deletePlan.js +72 -0
- package/dist/deletePlan.js.map +1 -0
- package/dist/diff.d.ts +288 -0
- package/dist/diff.js +744 -0
- package/dist/diff.js.map +1 -0
- package/dist/errors.js +4 -1
- package/dist/errors.js.map +1 -1
- package/dist/extensionBridge.d.ts +2 -1
- package/dist/extensionBridge.js +31 -4
- package/dist/extensionBridge.js.map +1 -1
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.js +2 -1
- package/dist/instructions.js.map +1 -1
- package/dist/pathPatch.d.ts +5 -2
- package/dist/pathPatch.js +11 -2
- package/dist/pathPatch.js.map +1 -1
- package/dist/planSettings.d.ts +1 -1
- package/dist/planSettings.js +3 -3
- package/dist/planSettings.js.map +1 -1
- package/dist/plans.d.ts +28 -0
- package/dist/plans.js +67 -0
- package/dist/plans.js.map +1 -1
- package/dist/prompts/index.js +7 -4
- package/dist/prompts/index.js.map +1 -1
- package/dist/realEstate.d.ts +22 -0
- package/dist/realEstate.js +118 -0
- package/dist/realEstate.js.map +1 -0
- package/dist/redact.d.ts +2 -0
- package/dist/redact.js +2 -1
- package/dist/redact.js.map +1 -1
- package/dist/resources/dataModel.d.ts +3 -0
- package/dist/resources/dataModel.js +66 -0
- package/dist/resources/dataModel.js.map +1 -0
- package/dist/resources/knowledge.js +189 -47
- package/dist/resources/knowledge.js.map +1 -1
- package/dist/snapshot.d.ts +21 -0
- package/dist/snapshot.js +98 -1
- package/dist/snapshot.js.map +1 -1
- package/dist/summary.js +19 -6
- package/dist/summary.js.map +1 -1
- package/dist/tools/clonePlan.js +14 -5
- package/dist/tools/clonePlan.js.map +1 -1
- package/dist/tools/connection.js +8 -1
- package/dist/tools/connection.js.map +1 -1
- package/dist/tools/deletePlan.d.ts +4 -0
- package/dist/tools/deletePlan.js +103 -0
- package/dist/tools/deletePlan.js.map +1 -0
- package/dist/tools/diff.d.ts +4 -0
- package/dist/tools/diff.js +417 -0
- package/dist/tools/diff.js.map +1 -0
- package/dist/tools/getCurrentFinances.js +27 -4
- package/dist/tools/getCurrentFinances.js.map +1 -1
- package/dist/tools/getPlanSection.js +2 -1
- package/dist/tools/getPlanSection.js.map +1 -1
- package/dist/tools/getPlanSettings.js +7 -3
- package/dist/tools/getPlanSettings.js.map +1 -1
- package/dist/tools/schema.js +28 -4
- package/dist/tools/schema.js.map +1 -1
- package/dist/tools/snapshots.d.ts +1 -1
- package/dist/tools/snapshots.js +36 -5
- package/dist/tools/snapshots.js.map +1 -1
- package/dist/tools/summary.js +3 -2
- package/dist/tools/summary.js.map +1 -1
- package/dist/tools/updateAccount.js +9 -7
- package/dist/tools/updateAccount.js.map +1 -1
- package/dist/tools/updatePlanEvent.js +15 -3
- package/dist/tools/updatePlanEvent.js.map +1 -1
- package/dist/tools/updatePlanSection.js +8 -28
- package/dist/tools/updatePlanSection.js.map +1 -1
- package/dist/tools/updatePlanSettings.js +8 -4
- package/dist/tools/updatePlanSettings.js.map +1 -1
- package/dist/types/projectionlab.d.ts +3 -1
- package/package.json +6 -3
- package/skills/projectionlab/SKILL.md +286 -26
package/dist/plans.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIjD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,QAAQ;IACR,UAAU;IACV,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,oBAAoB;IACpB,YAAY;IACZ,YAAY;CACJ,CAAC;AAIX;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,UAAkB;IAChE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QAChD,MAAM,GAAG,GAAG,IAAe,CAAC;QAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,UAAU;YAAE,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,IAAI,KAAK,KAAK,IAAI,SAAS,KAAK,CAAC,CAAC;YAAE,SAAS,GAAG,CAAC,CAAC;aACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAAgB,EAChB,UAAkB;IAElB,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAa,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAgB,EAChB,UAAkB;IAElB,MAAM,SAAS,GAAG,KAAK;SACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,CAAY,CAAC;QACzB,OAAO,QAAQ,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC;IACzC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,IAAI,kBAAkB,CAC3B,eAAe,EACf,qBAAqB,UAAU,SAAS,EACxC,qBAAqB,SAAS,EAAE,CACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAA2B;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,kBAAkB,CAC1B,eAAe,EACf,iCAAiC,EACjC,sCAAsC,CACvC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,WAAoB;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACnD,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACnD,MAAM,MAAM,GAAI,WAAuB,CAAC,MAAM,CAAC;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,eAAe,CAAC,IAAa;IAK3C,MAAM,GAAG,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,OAAO;QACL,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM;QACzC,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM;QAC5C,cAAc,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM;KACjD,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,EAAE,GAAI,KAAiB,CAAC,EAAE,CAAC;QACjC,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+HAA+H;AAC/H,MAAM,UAAU,cAAc,CAAC,MAAiB,EAAE,UAAkB;IAClE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QAC1C,MAAM,GAAG,GAAG,CAAY,CAAC;QACzB,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,UAAU;YAAE,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,IAAI,KAAK,KAAK,IAAI,SAAS,KAAK,CAAC,CAAC;YAAE,SAAS,GAAG,CAAC,CAAC;aACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAAgB,CAAC;QAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,CACL,CAAC,CAAC,OAAO;QACT,OAAO,OAAO,KAAK,QAAQ;QAC3B,KAAK,CAAC,OAAO,CAAE,OAAmB,CAAC,MAAM,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAiB,EAAE,MAAe;IAC/D,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9E,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,MAAM,CAAC,GAAG,MAAiB,CAAC;IAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,QAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAClD,cAAc,CAAE,QAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAkB,EAClB,MAAe;IAEf,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,GAAG,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QACvF,CAAC;QACD,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,8BAA8B;QAC9B,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,GAAG,GACL,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,GAAG,GAAG,SAAS,CAAC,SAAS,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAC/D,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,UAAU,UAAU,CAAC,CAAC,CAAC,kCAAkC;iBAClE,CAAC;YACJ,CAAC;YACD,uDAAuD;YACvD,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,UAAU,CAAC,CAAC,CAAC,8BAA8B,EAAE,CAAC;YACtF,CAAC;YACD,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,+CAA+C,EAAE,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CACxB,OAAgB,EAChB,QAAiB;IAEjB,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAY,CAAC;IACvC,MAAM,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAY,CAAC;IACxC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,UAAU,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts/index.js
CHANGED
|
@@ -10,7 +10,7 @@ Use these tools in order of preference (smallest first):
|
|
|
10
10
|
2. projectionlab_describe_schema - plan names, account IDs (small)
|
|
11
11
|
3. projectionlab_get_summary - Current Finances inventory only; never treat its
|
|
12
12
|
net worth as a projected outcome (small)
|
|
13
|
-
4. projectionlab_get_plan_settings - assumptions, tax,
|
|
13
|
+
4. projectionlab_get_plan_settings - assumptions, tax, Chance of Success (montecarlo), and withdrawal configuration as discrete paths (small)
|
|
14
14
|
5. projectionlab_get_plan_section - one section; supports eventIdentifier and dot-path filters for single events/fields (smallest targeted read)
|
|
15
15
|
6. projectionlab_get_current_finances - account balances (medium)
|
|
16
16
|
7. projectionlab_get_plan - full single plan (large)
|
|
@@ -26,9 +26,12 @@ section), and prefer section replacement over restore tools (full replacement).
|
|
|
26
26
|
|
|
27
27
|
Do NOT rely on memorized tax figures (brackets, IRMAA tiers, ACA subsidy
|
|
28
28
|
cliffs, 0% LTCG thresholds, standard deductions, contribution limits) - they
|
|
29
|
-
change annually.
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
change annually. ProjectionLab models with the current-year figures, and the
|
|
30
|
+
user can read them in the app (Tax Analytics): ask the user what the app shows
|
|
31
|
+
instead of supplying your own. Use web search only to explain a figure the user
|
|
32
|
+
asks about, not to recompute what ProjectionLab already models. State the tax
|
|
33
|
+
year you are using, flag anything you could not verify, and account for the
|
|
34
|
+
user's state of residence rather than assuming one.
|
|
32
35
|
|
|
33
36
|
## ProjectionLab Data Model
|
|
34
37
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,kBAAkB,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PlanObj } from "./plans.js";
|
|
2
|
+
/**
|
|
3
|
+
* Labeled view of a property asset, or null for non-real-estate records.
|
|
4
|
+
*
|
|
5
|
+
* ProjectionLab stores a property's loan balance in `balance` and its market
|
|
6
|
+
* value in `amount`; the block labels both so a reader cannot mistake the
|
|
7
|
+
* loan for the value. Labels beyond `amount`/`balance` name observed stored
|
|
8
|
+
* fields whose UI meaning is not yet verified.
|
|
9
|
+
*
|
|
10
|
+
* Values come from the Current Finances record only, the master record
|
|
11
|
+
* writes target. Plan-modeled values (per-plan asset events) are never
|
|
12
|
+
* mixed in; plan-side values are read with projectionlab_get_plan_section
|
|
13
|
+
* on the `assets` section.
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildRealEstateBlock(asset: PlanObj): PlanObj | null;
|
|
16
|
+
/**
|
|
17
|
+
* Copy of `today` with a `realEstate` block added to each real-estate asset.
|
|
18
|
+
* The export comes from a shared cache, so entries are only replaced, never
|
|
19
|
+
* mutated in place; the original object is returned unchanged when no asset
|
|
20
|
+
* qualifies.
|
|
21
|
+
*/
|
|
22
|
+
export declare function withRealEstateBlocks(today: PlanObj): PlanObj;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `type` value that marks a Current Finances `assets` entry as a property.
|
|
3
|
+
* Observed in live exports; the ProjectionLab UI shows these records on the
|
|
4
|
+
* real-estate tile.
|
|
5
|
+
*/
|
|
6
|
+
const REAL_ESTATE_TYPE = "real-estate";
|
|
7
|
+
/**
|
|
8
|
+
* `paymentMethod` value under which ProjectionLab records loan terms.
|
|
9
|
+
* Observed in live exports.
|
|
10
|
+
*/
|
|
11
|
+
const FINANCED = "financed";
|
|
12
|
+
function pick(source, keys) {
|
|
13
|
+
const out = {};
|
|
14
|
+
for (const key of keys) {
|
|
15
|
+
if (source[key] !== undefined)
|
|
16
|
+
out[key] = source[key];
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
function ratePair(source, rateKey, rateTypeKey) {
|
|
21
|
+
const pair = {};
|
|
22
|
+
if (source[rateKey] !== undefined)
|
|
23
|
+
pair.rate = source[rateKey];
|
|
24
|
+
if (source[rateTypeKey] !== undefined)
|
|
25
|
+
pair.rateType = source[rateTypeKey];
|
|
26
|
+
return Object.keys(pair).length > 0 ? pair : null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Labeled view of a property asset, or null for non-real-estate records.
|
|
30
|
+
*
|
|
31
|
+
* ProjectionLab stores a property's loan balance in `balance` and its market
|
|
32
|
+
* value in `amount`; the block labels both so a reader cannot mistake the
|
|
33
|
+
* loan for the value. Labels beyond `amount`/`balance` name observed stored
|
|
34
|
+
* fields whose UI meaning is not yet verified.
|
|
35
|
+
*
|
|
36
|
+
* Values come from the Current Finances record only, the master record
|
|
37
|
+
* writes target. Plan-modeled values (per-plan asset events) are never
|
|
38
|
+
* mixed in; plan-side values are read with projectionlab_get_plan_section
|
|
39
|
+
* on the `assets` section.
|
|
40
|
+
*/
|
|
41
|
+
export function buildRealEstateBlock(asset) {
|
|
42
|
+
if (asset.type !== REAL_ESTATE_TYPE)
|
|
43
|
+
return null;
|
|
44
|
+
const block = {};
|
|
45
|
+
const loanBalance = asset.balance ?? 0;
|
|
46
|
+
block.loanBalance = loanBalance;
|
|
47
|
+
if (asset.amount !== undefined)
|
|
48
|
+
block.marketValue = asset.amount;
|
|
49
|
+
if (typeof asset.amount === "number" && typeof loanBalance === "number") {
|
|
50
|
+
block.netEquity = asset.amount - loanBalance;
|
|
51
|
+
}
|
|
52
|
+
Object.assign(block, pick(asset, ["paymentMethod", "classification", "excludeLoanFromLNW"]));
|
|
53
|
+
if (asset.paymentMethod === FINANCED) {
|
|
54
|
+
const loan = pick(asset, [
|
|
55
|
+
"interestType",
|
|
56
|
+
"monthlyPayment",
|
|
57
|
+
"compounding",
|
|
58
|
+
]);
|
|
59
|
+
if (asset.interestRate !== undefined)
|
|
60
|
+
loan.apr = asset.interestRate;
|
|
61
|
+
if (Object.keys(loan).length > 0)
|
|
62
|
+
block.loan = loan;
|
|
63
|
+
}
|
|
64
|
+
const propertyTax = ratePair(asset, "taxRate", "taxRateType");
|
|
65
|
+
if (propertyTax)
|
|
66
|
+
block.propertyTax = propertyTax;
|
|
67
|
+
const insurance = ratePair(asset, "insuranceRate", "insuranceRateType");
|
|
68
|
+
if (insurance)
|
|
69
|
+
block.insurance = insurance;
|
|
70
|
+
const maintenance = ratePair(asset, "maintenanceRate", "maintenanceRateType");
|
|
71
|
+
if (maintenance)
|
|
72
|
+
block.maintenance = maintenance;
|
|
73
|
+
const monthlyHOA = {};
|
|
74
|
+
if (asset.monthlyHOA !== undefined)
|
|
75
|
+
monthlyHOA.amount = asset.monthlyHOA;
|
|
76
|
+
if (asset.monthlyHOAType !== undefined)
|
|
77
|
+
monthlyHOA.type = asset.monthlyHOAType;
|
|
78
|
+
if (Object.keys(monthlyHOA).length > 0)
|
|
79
|
+
block.monthlyHOA = monthlyHOA;
|
|
80
|
+
const yearlyChange = asset.yearlyChange;
|
|
81
|
+
if (yearlyChange &&
|
|
82
|
+
typeof yearlyChange === "object" &&
|
|
83
|
+
!Array.isArray(yearlyChange)) {
|
|
84
|
+
const change = yearlyChange;
|
|
85
|
+
const appreciation = {};
|
|
86
|
+
if (change.amount !== undefined)
|
|
87
|
+
appreciation.rate = change.amount;
|
|
88
|
+
if (change.type !== undefined)
|
|
89
|
+
appreciation.type = change.type;
|
|
90
|
+
if (Object.keys(appreciation).length > 0)
|
|
91
|
+
block.appreciation = appreciation;
|
|
92
|
+
}
|
|
93
|
+
return block;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Copy of `today` with a `realEstate` block added to each real-estate asset.
|
|
97
|
+
* The export comes from a shared cache, so entries are only replaced, never
|
|
98
|
+
* mutated in place; the original object is returned unchanged when no asset
|
|
99
|
+
* qualifies.
|
|
100
|
+
*/
|
|
101
|
+
export function withRealEstateBlocks(today) {
|
|
102
|
+
const assets = today.assets;
|
|
103
|
+
if (!Array.isArray(assets))
|
|
104
|
+
return today;
|
|
105
|
+
let changed = false;
|
|
106
|
+
const nextAssets = assets.map((asset) => {
|
|
107
|
+
if (!asset || typeof asset !== "object" || Array.isArray(asset)) {
|
|
108
|
+
return asset;
|
|
109
|
+
}
|
|
110
|
+
const block = buildRealEstateBlock(asset);
|
|
111
|
+
if (!block)
|
|
112
|
+
return asset;
|
|
113
|
+
changed = true;
|
|
114
|
+
return { ...asset, realEstate: block };
|
|
115
|
+
});
|
|
116
|
+
return changed ? { ...today, assets: nextAssets } : today;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=realEstate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realEstate.js","sourceRoot":"","sources":["../src/realEstate.ts"],"names":[],"mappings":"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"}
|
package/dist/redact.d.ts
CHANGED
package/dist/redact.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { config } from "./config.js";
|
|
2
|
-
|
|
2
|
+
/** The stand-in every redacted value carries; shared with the diff engine. */
|
|
3
|
+
export const REDACTED = "[REDACTED]";
|
|
3
4
|
// Field names whose values are secrets regardless of content. Used only for
|
|
4
5
|
// read-only artifacts (exports, resources) - NOT for snapshots, since redacting
|
|
5
6
|
// by name could corrupt a later restore.
|
package/dist/redact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,QAAQ,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC,4EAA4E;AAC5E,gFAAgF;AAChF,yCAAyC;AACzC,MAAM,kBAAkB,GACtB,uIAAuI,CAAC;AAE1I,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAI,KAAQ,EAAE,OAAsB,EAAE;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;IAEnC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE,CACxC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,MAAM,IAAI,GAAG,CAAC,CAAU,EAAW,EAAE;QACnC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAW,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,eAAe;YACpD,IAAI,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC;YACtB,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC,KAAK,CAAM,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { DATA_MODEL_GROUPS, DATA_MODEL_PROJECTIONLAB_VERSION, } from "../dataModel.js";
|
|
2
|
+
function renderField(pattern, field) {
|
|
3
|
+
const parts = [`- \`${pattern}\` [${field.evidence}]: ${field.description}`];
|
|
4
|
+
if (field.units)
|
|
5
|
+
parts.push(`Units: ${field.units}.`);
|
|
6
|
+
if (field.allowedValues) {
|
|
7
|
+
parts.push(`Allowed values: ${field.allowedValues.join(", ")}.`);
|
|
8
|
+
}
|
|
9
|
+
if (field.enabledBy)
|
|
10
|
+
parts.push(`Enabled by: ${field.enabledBy}.`);
|
|
11
|
+
if (field.note)
|
|
12
|
+
parts.push(`Note: ${field.note}`);
|
|
13
|
+
return parts.join(" ");
|
|
14
|
+
}
|
|
15
|
+
export function renderDataModelMarkdown() {
|
|
16
|
+
const lines = [
|
|
17
|
+
`# ProjectionLab Data Model (ProjectionLab ${DATA_MODEL_PROJECTIONLAB_VERSION})`,
|
|
18
|
+
"",
|
|
19
|
+
`Field reference for the values this server reads with \`listPaths\` and writes with the ` +
|
|
20
|
+
`update tools. Paths are dot paths exactly as \`listPaths\` lists them and as ` +
|
|
21
|
+
"`pathChanges` addresses them, relative to the listed object; `*` stands for any single " +
|
|
22
|
+
"path segment, such as an array index or a withdrawal strategy name. Each group names " +
|
|
23
|
+
"the scope the paths are listed and written under.",
|
|
24
|
+
"",
|
|
25
|
+
`Everything here describes ProjectionLab ${DATA_MODEL_PROJECTIONLAB_VERSION}. A future ` +
|
|
26
|
+
"version (v5 and beyond) may rename fields, change units, or add and remove options. " +
|
|
27
|
+
"Check the live values before writing.",
|
|
28
|
+
"",
|
|
29
|
+
"Evidence tags: [observed] means a value was set through the UI and the stored value was " +
|
|
30
|
+
"read back (or matched field-for-field against a known plan). [ui-label] means the " +
|
|
31
|
+
"control was seen in the UI but the entry is not yet confirmed by a stored-value test. " +
|
|
32
|
+
"Writes are refused only on [observed] option lists.",
|
|
33
|
+
"",
|
|
34
|
+
"The most dangerous trap is the rate scale: most rates are stored in percentage points " +
|
|
35
|
+
"(`variables.inflation: 3` means 3%), but the tax strategy bracket rates are stored as " +
|
|
36
|
+
"decimal fractions (`variables.taxStrategy.bracketRate: 0.22` means 22%). Read the " +
|
|
37
|
+
"current value first and write the new one on the same scale.",
|
|
38
|
+
"",
|
|
39
|
+
];
|
|
40
|
+
for (const group of DATA_MODEL_GROUPS) {
|
|
41
|
+
lines.push(`## ${group.title}`, "");
|
|
42
|
+
for (const [pattern, field] of Object.entries(group.fields)) {
|
|
43
|
+
lines.push(renderField(pattern, field));
|
|
44
|
+
}
|
|
45
|
+
lines.push("");
|
|
46
|
+
}
|
|
47
|
+
return lines.join("\n");
|
|
48
|
+
}
|
|
49
|
+
export function registerDataModelResource(server) {
|
|
50
|
+
server.registerResource("data-model", "projectionlab://data-model", {
|
|
51
|
+
title: "ProjectionLab Data Model",
|
|
52
|
+
description: `Field meanings, units, and allowed values for path-addressable reads and writes, ` +
|
|
53
|
+
`version-stamped to ProjectionLab ${DATA_MODEL_PROJECTIONLAB_VERSION}. Static. ` +
|
|
54
|
+
"Entries tagged ui-label are not yet confirmed by a stored-value test.",
|
|
55
|
+
mimeType: "text/markdown",
|
|
56
|
+
}, async (uri) => ({
|
|
57
|
+
contents: [
|
|
58
|
+
{
|
|
59
|
+
uri: uri.href,
|
|
60
|
+
text: renderDataModelMarkdown(),
|
|
61
|
+
mimeType: "text/markdown",
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=dataModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataModel.js","sourceRoot":"","sources":["../../src/resources/dataModel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,gCAAgC,GAEjC,MAAM,iBAAiB,CAAC;AAEzB,SAAS,WAAW,CAAC,OAAe,EAAE,KAAqB;IACzD,MAAM,KAAK,GAAG,CAAC,OAAO,OAAO,OAAO,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,KAAK,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACnE,IAAI,KAAK,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,MAAM,KAAK,GAAa;QACtB,6CAA6C,gCAAgC,GAAG;QAChF,EAAE;QACF,0FAA0F;YACxF,+EAA+E;YAC/E,yFAAyF;YACzF,uFAAuF;YACvF,mDAAmD;QACrD,EAAE;QACF,2CAA2C,gCAAgC,aAAa;YACtF,sFAAsF;YACtF,uCAAuC;QACzC,EAAE;QACF,0FAA0F;YACxF,oFAAoF;YACpF,wFAAwF;YACxF,qDAAqD;QACvD,EAAE;QACF,wFAAwF;YACtF,wFAAwF;YACxF,oFAAoF;YACpF,8DAA8D;QAChE,EAAE;KACH,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,gBAAgB,CACrB,YAAY,EACZ,4BAA4B,EAC5B;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,mFAAmF;YACnF,oCAAoC,gCAAgC,YAAY;YAChF,uEAAuE;QACzE,QAAQ,EAAE,eAAe;KAC1B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,IAAI,EAAE,uBAAuB,EAAE;gBAC/B,QAAQ,EAAE,eAAe;aAC1B;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,30 +1,61 @@
|
|
|
1
1
|
const KNOWLEDGE = `# ProjectionLab & FIRE Reference
|
|
2
2
|
|
|
3
3
|
Curated concepts for analyzing retirement plans through this MCP server.
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
ProjectionLab v5 is in early access; this reference and the tool descriptions
|
|
6
|
+
describe the current release, 4.6.0
|
|
7
|
+
(https://projectionlab.com/help/projectionlab-v5-early-access-guide).
|
|
8
|
+
|
|
9
|
+
## How to use this reference
|
|
10
|
+
|
|
11
|
+
- **Explain, do not recommend.** Say what a term means, what ProjectionLab does
|
|
12
|
+
with it, and what the user can look at in the app to decide. Do not tell the
|
|
13
|
+
user what to do with their money and do not predict a personal outcome. This
|
|
14
|
+
is information and education, not personalized financial advice; the decision
|
|
15
|
+
belongs to the user and a licensed professional.
|
|
16
|
+
- **Concepts only; ProjectionLab owns the yearly figures.** The app applies the
|
|
17
|
+
current tax brackets, standard deduction, IRMAA tiers, RMD ages, contribution
|
|
18
|
+
limits and ACA subsidies, and the user sees those numbers in the app (Tax
|
|
19
|
+
Analytics). Never state a yearly figure from memory: they change every year.
|
|
20
|
+
Ask the user to read the current one in ProjectionLab.
|
|
6
21
|
|
|
7
22
|
## ProjectionLab data model (quick map)
|
|
8
23
|
|
|
9
24
|
- **plans[]**: each plan is a milestone-driven simulation.
|
|
10
25
|
- **milestones[]**: lifecycle events (retirement, Medicare, death) keyed by
|
|
11
26
|
date/year/milestone-relative criteria. Other events reference milestone IDs.
|
|
27
|
+
Retirement and Life Expectancy always exist in the app and its delete
|
|
28
|
+
control is disabled for them, so never remove either one
|
|
29
|
+
(https://projectionlab.com/help/manage-milestones).
|
|
12
30
|
- **income.events[]**: salary, Social Security, pension, inheritance; start/end
|
|
13
31
|
reference milestone IDs.
|
|
14
32
|
- **expenses.events[]**: living, travel, healthcare, LTC; carry a
|
|
15
33
|
\`spendingType\` (essential vs discretionary).
|
|
16
34
|
- **accounts.events[]**: investment accounts with \`rothConversions\`
|
|
17
|
-
schedules, withdrawal rules, and bond/equity allocation glidepaths.
|
|
35
|
+
schedules, withdrawal rules, and bond/equity allocation glidepaths. A custom
|
|
36
|
+
growth or dividend rate on one account covers its stock portion only; the
|
|
37
|
+
bonds there follow the plan-level bond settings unless that account's bond
|
|
38
|
+
allocation is 0%
|
|
39
|
+
(https://projectionlab.com/help/growth-dividend-settings-chance-of-success).
|
|
18
40
|
- **assets.events[]**: real estate, vehicles with appreciation/depreciation.
|
|
19
41
|
- **variables**: tax settings, inflation, returns, drawdown order, IRMAA,
|
|
20
42
|
estate config.
|
|
21
|
-
- **withdrawalStrategy**:
|
|
22
|
-
|
|
23
|
-
|
|
43
|
+
- **withdrawalStrategy**: a separate mode, not the plan's normal drawdown
|
|
44
|
+
policy. From the year or milestone it starts, its rule replaces most other
|
|
45
|
+
plan events, such as expenses and asset purchases, so most plans leave it
|
|
46
|
+
off (https://projectionlab.com/help/withdrawal-strategy-mode).
|
|
47
|
+
- **montecarlo**: Chance of Success settings (review only; cannot be run
|
|
48
|
+
remotely). Chance of Success runs many trials over historical market periods
|
|
49
|
+
by default, with randomized (Monte Carlo) sampling as an option
|
|
50
|
+
(https://projectionlab.com/help/plan-vs-chance-of-success).
|
|
51
|
+
- **priorities.events[]**: savings contribution ordering. An "Always Fund"
|
|
52
|
+
flow is paid even when income falls short: ProjectionLab sells from other
|
|
53
|
+
accounts to cover it (https://projectionlab.com/help/mandatory-goals).
|
|
24
54
|
- **today / currentFinances**: actual account balances; \`accountId\` links these
|
|
25
55
|
to plan \`accounts.events[]\`.
|
|
26
|
-
-
|
|
27
|
-
server reads/writes the plan definition; it does not compute
|
|
56
|
+
- Chance of Success trials and projection *math* run only in the ProjectionLab
|
|
57
|
+
UI. This server reads/writes the plan definition; it does not compute
|
|
58
|
+
projections.
|
|
28
59
|
|
|
29
60
|
## Plan-change outcome metrics
|
|
30
61
|
|
|
@@ -35,57 +66,168 @@ the requested input changed; they do not measure its financial impact. The
|
|
|
35
66
|
Plugin API currently does not expose a supported calculation/result method, so
|
|
36
67
|
recalculate both outcomes in the UI after applying a change.
|
|
37
68
|
|
|
69
|
+
## Account tax vocabulary
|
|
70
|
+
|
|
71
|
+
Use three words for every account, and use them consistently:
|
|
72
|
+
|
|
73
|
+
- **taxable**: funded with after-tax money; interest, dividends and gains are
|
|
74
|
+
taxed in the year they are received.
|
|
75
|
+
- **tax-deferred**: traditional 401(k) and IRA. Contributions lower taxable
|
|
76
|
+
income now; withdrawals are taxed as ordinary income later.
|
|
77
|
+
- **tax-free**: Roth accounts, and an HSA spent on healthcare. Qualified
|
|
78
|
+
withdrawals are not taxed.
|
|
79
|
+
|
|
80
|
+
Do not use "pre-tax" or "post-tax" as account names; they blur the line between
|
|
81
|
+
tax-deferred and taxable.
|
|
82
|
+
|
|
38
83
|
## Core FIRE / decumulation concepts
|
|
39
84
|
|
|
40
|
-
- **Safe Withdrawal Rate (SWR)**: the
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
- **
|
|
69
|
-
|
|
70
|
-
|
|
85
|
+
- **Safe Withdrawal Rate (SWR)**: the share of the portfolio taken out in the
|
|
86
|
+
first year of drawdown. The classic "4% rule" (Trinity study) is a starting
|
|
87
|
+
heuristic for a 30-year horizon, not a guarantee; a longer horizon argues for
|
|
88
|
+
a lower start. The portfolio withdrawal a plan needs falls as guaranteed
|
|
89
|
+
income (Social Security, pension) switches on.
|
|
90
|
+
- **Sequence-of-returns risk**: poor returns in the first years of drawdown do
|
|
91
|
+
far more damage than the same returns later. Common mitigations: a cash/bond
|
|
92
|
+
bridge, and a **rising-equity glidepath** ("bond tent" - most bonds at
|
|
93
|
+
retirement, equity rising after).
|
|
94
|
+
- **Asset location**: which account holds which asset. A common convention
|
|
95
|
+
places bonds in tax-deferred accounts, high-growth equity in tax-free (Roth,
|
|
96
|
+
HSA) accounts, and tax-efficient equity and cash in taxable. Location changes
|
|
97
|
+
after-tax return without changing the overall allocation.
|
|
98
|
+
- **Roth conversion**: moving money from a tax-deferred account into a tax-free
|
|
99
|
+
one. The converted amount is taxed as ordinary income in the year of the
|
|
100
|
+
conversion. A "Roth conversion ladder" converts in low-income years (often
|
|
101
|
+
the window after work ends and before Social Security or RMDs start) to fill
|
|
102
|
+
a low bracket, lower later RMDs, and shrink the taxable estate. Paying that
|
|
103
|
+
year's tax from a taxable account rather than from withholding keeps more
|
|
104
|
+
money inside the tax-free account.
|
|
105
|
+
|
|
106
|
+
## Tax concepts that gate conversions
|
|
107
|
+
|
|
108
|
+
Only the shape of each rule is here. ProjectionLab computes with the
|
|
109
|
+
current-year figures, and the user reads them in Tax Analytics. MAGI means
|
|
110
|
+
modified adjusted gross income; each program (ACA, IRMAA, NIIT) defines it
|
|
111
|
+
slightly differently.
|
|
112
|
+
|
|
113
|
+
- **Federal income tax brackets**: ordinary income is taxed in bands. Income
|
|
114
|
+
that fills an unused low band is cheap; income pushed into the next band
|
|
115
|
+
costs more. What a conversion costs depends on where it lands.
|
|
116
|
+
- **ACA premium subsidies**: marketplace health coverage is income-tested. In
|
|
117
|
+
some income ranges extra income can cut a subsidy faster than tax does, so
|
|
118
|
+
the effective marginal rate in those pre-Medicare years is higher than the
|
|
119
|
+
bracket alone suggests. Not a factor with employer, retiree or other
|
|
120
|
+
non-marketplace coverage.
|
|
121
|
+
- **IRMAA**: an extra charge on Medicare Part B and Part D premiums. It is set
|
|
122
|
+
by the person's MAGI from two years earlier and comes in tiers, so income
|
|
123
|
+
just over a tier boundary pays the whole higher charge. A conversion in one
|
|
124
|
+
year can raise premiums two years later. If the user is already on Medicare
|
|
125
|
+
when the plan starts, ProjectionLab estimates that lookback income in the
|
|
126
|
+
first two plan years, and the actual rule applies from year 3
|
|
127
|
+
(https://projectionlab.com/help/modeling-irmaa-surcharges).
|
|
128
|
+
- **NIIT (net investment income tax)**: a surtax on investment income (gains,
|
|
129
|
+
dividends, interest, rent) once MAGI is above an income threshold. It raises
|
|
130
|
+
the cost of a year that mixes a conversion with investment income.
|
|
131
|
+
- **Long-term capital gains rate**: while taxable income stays under a
|
|
132
|
+
threshold, long-term gains are taxed at 0%. A low-income year can realize
|
|
133
|
+
some gains at no tax cost before that room is gone.
|
|
134
|
+
- **RMDs (Required Minimum Distributions)**: once a person reaches the RMD age,
|
|
135
|
+
tax-deferred accounts require a withdrawal every year, whether or not the
|
|
136
|
+
cash is needed. A large tax-deferred balance can push those forced
|
|
137
|
+
withdrawals into higher brackets and IRMAA tiers, which is the usual reason
|
|
138
|
+
people convert while their income is still low.
|
|
71
139
|
|
|
72
140
|
## Analysis checklist
|
|
73
141
|
|
|
74
142
|
1. Build a lifecycle timeline (phase, date range, milestone trigger).
|
|
75
|
-
2. Cash flow by phase; flag pure-drawdown years and the
|
|
143
|
+
2. Cash flow by phase; flag pure-drawdown years and the gap before Social
|
|
144
|
+
Security starts.
|
|
76
145
|
3. Withdrawal rate now and after guaranteed income begins.
|
|
77
|
-
4. Sequence risk:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
146
|
+
4. Sequence risk: what a poor-return start does to the plan. Only a run in the
|
|
147
|
+
ProjectionLab UI can show it.
|
|
148
|
+
5. Roth conversion efficiency: bracket headroom versus the ACA, IRMAA and NIIT
|
|
149
|
+
ceilings; compare lifetime taxes and net legacy, not just the tax now.
|
|
150
|
+
6. Longevity: does the plan last well past life expectancy?
|
|
151
|
+
7. Inflation: healthcare and long-term care costs rise with inflation and are
|
|
152
|
+
often decades out; check how the plan assumes them.
|
|
153
|
+
|
|
154
|
+
## ProjectionLab help articles
|
|
155
|
+
|
|
156
|
+
ProjectionLab's own pages, linked for the user and summarized here for a model
|
|
157
|
+
with no web access. The bracketed tag is the plan section or area this reference
|
|
158
|
+
uses for it. The summaries are ours, not ProjectionLab's wording. Glossary of
|
|
159
|
+
financial terms: https://projectionlab.com/financial-terms
|
|
160
|
+
|
|
161
|
+
- **Withdrawal Strategy mode** [withdrawalStrategy]
|
|
162
|
+
https://projectionlab.com/help/withdrawal-strategy-mode - a comparison mode
|
|
163
|
+
for classic rules (initial percentage, variable percentage withdrawal,
|
|
164
|
+
Guyton-Klinger) that starts at a chosen year or milestone. While it is on,
|
|
165
|
+
its rule replaces most other plan events, so most plans leave it off.
|
|
166
|
+
- **Flows, the cash flow priorities** [priorities]
|
|
167
|
+
https://projectionlab.com/help/cash-flow-priorities - Flows (the
|
|
168
|
+
\`priorities\` section in the data) send income to savings goals,
|
|
169
|
+
contributions, extra debt payments and transfers, earliest-added first.
|
|
170
|
+
- **Mandatory goals ("Always Fund")** [priorities]
|
|
171
|
+
https://projectionlab.com/help/mandatory-goals - an Always Fund flow is paid
|
|
172
|
+
ahead of the other flows, selling from other accounts when income falls short.
|
|
173
|
+
- **Milestones** [milestones]
|
|
174
|
+
https://projectionlab.com/help/manage-milestones - lifecycle markers
|
|
175
|
+
triggered by age, date, balance, or a combination of criteria; other events
|
|
176
|
+
anchor their start and end to them. Retirement and Life Expectancy cannot be
|
|
177
|
+
deleted.
|
|
178
|
+
- **Drawdown order** [variables; the chart is app only]
|
|
179
|
+
https://projectionlab.com/help/drawdown-order-visualization - the order
|
|
180
|
+
accounts are liquidated in to cover a yearly shortfall. The graph and its red
|
|
181
|
+
early-withdrawal penalty line are a UI view of that order.
|
|
182
|
+
- **Roth conversions** [accounts; the optimizer is app only]
|
|
183
|
+
https://projectionlab.com/help/roth-conversion - Optimize searches conversion
|
|
184
|
+
strategies against brackets, IRMAA and legacy goals with a beam search, then
|
|
185
|
+
writes the chosen schedule into the plan's accounts. This server can read and
|
|
186
|
+
edit such a schedule; it cannot run the search.
|
|
187
|
+
- **Bond allocation and location** [accounts, variables]
|
|
188
|
+
https://projectionlab.com/help/bond-allocation-and-overrides - the bond
|
|
189
|
+
percentage is set plan-wide and can be overridden per account, and the other
|
|
190
|
+
accounts adjust to keep the plan-wide target, with a warning when it cannot
|
|
191
|
+
balance. Bond location chooses which accounts hold bonds first.
|
|
192
|
+
- **Custom growth and dividend rates** [accounts]
|
|
193
|
+
https://projectionlab.com/help/growth-dividend-settings-chance-of-success - an
|
|
194
|
+
account's custom growth or dividend rate covers its stock portion; the bond
|
|
195
|
+
portion follows the plan's bond settings unless the account's bond allocation
|
|
196
|
+
is overridden to 0%. In Chance of Success such a rate is either held fixed or
|
|
197
|
+
sampled like the rest of the simulation.
|
|
198
|
+
- **IRMAA surcharges** [variables; the optimizer is app only]
|
|
199
|
+
https://projectionlab.com/help/modeling-irmaa-surcharges - tiered Medicare
|
|
200
|
+
Part B and Part D surcharges set by MAGI two years earlier, where crossing a
|
|
201
|
+
tier by any amount costs the whole surcharge. When the user is already on
|
|
202
|
+
Medicare at plan start, ProjectionLab estimates the lookback income for the
|
|
203
|
+
first two plan years.
|
|
204
|
+
- **Plan vs Chance of Success** [montecarlo; results are app only]
|
|
205
|
+
https://projectionlab.com/help/plan-vs-chance-of-success - the Plan tab is one
|
|
206
|
+
fixed path at fixed growth; Chance of Success runs many trials over historical
|
|
207
|
+
or randomized market data. All other tabs follow the Plan tab, not the trial
|
|
208
|
+
outcomes.
|
|
209
|
+
- **Simulation engine** [app only]
|
|
210
|
+
https://projectionlab.com/help/simulation-engine - the app simulates a full
|
|
211
|
+
year at a time (income, withholding, expenses, debt, dividends, prior-year
|
|
212
|
+
taxes, RMDs) and turns a surplus into savings and a shortfall into
|
|
213
|
+
withdrawals.
|
|
214
|
+
- **Flexible spending** [expenses; the feature is app only]
|
|
215
|
+
https://projectionlab.com/help/flex-spending - an optional rule that raises
|
|
216
|
+
or cuts spending with portfolio performance against earlier all-time highs,
|
|
217
|
+
scoped either to all spending or to discretionary expenses only.
|
|
218
|
+
- **Plugins and external accounts** [Current Finances; app only]
|
|
219
|
+
https://projectionlab.com/help/plugins - ProjectionLab does not link to banks;
|
|
220
|
+
plugins (Lunch Money, YNAB, Monarch, or your own code) write balances into
|
|
221
|
+
Current Finances through the Plugin API, which has to be enabled in account
|
|
222
|
+
settings. This server uses that same API.
|
|
83
223
|
`;
|
|
84
224
|
export function registerKnowledgeResource(server) {
|
|
85
225
|
server.registerResource("knowledge", "projectionlab://knowledge", {
|
|
86
226
|
title: "ProjectionLab & FIRE Knowledge",
|
|
87
227
|
description: "Curated reference: ProjectionLab data model, FIRE/decumulation concepts, " +
|
|
88
|
-
"tax
|
|
228
|
+
"retirement tax concepts without yearly figures, an analysis checklist, and an " +
|
|
229
|
+
"index of ProjectionLab help articles. Static; information and education, not " +
|
|
230
|
+
"personalized financial advice.",
|
|
89
231
|
mimeType: "text/markdown",
|
|
90
232
|
}, async (uri) => ({
|
|
91
233
|
contents: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/resources/knowledge.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/resources/knowledge.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8NjB,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,gBAAgB,CACrB,WAAW,EACX,2BAA2B,EAC3B;QACE,KAAK,EAAE,gCAAgC;QACvC,WAAW,EACT,2EAA2E;YAC3E,gFAAgF;YAChF,+EAA+E;YAC/E,gCAAgC;QAClC,QAAQ,EAAE,eAAe;KAC1B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,eAAe;aAC1B;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|