You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add writing style rule to CLAUDE.md, replace remaining double-dashes
- Add "Writing Style" section to CLAUDE.md: no em-dashes or double-dashes,
use commas, periods, colons, or semicolons instead
- Replace remaining -- with commas in README.md and docs/index.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Always use `git -c user.name="Engineer Investor" -c user.email="egr.investor@gmail.com" commit` when committing
86
86
87
+
## Writing Style
88
+
89
+
-**No em-dashes or double-dashes.** Never use `—` or `--` as punctuation in prose, markdown, or notebooks. Use a comma, period, colon, or semicolon instead.
90
+
87
91
## Edge Cases to Handle
88
92
89
93
-`W <= 0`: default to raising an error with guidance
Copy file name to clipboardExpand all lines: README.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,20 +10,20 @@ A Python library implementing a practical lifecycle portfolio choice framework i
10
10
11
11
## Why This Matters
12
12
13
-
Most portfolio allocation "rules" are single-variable heuristics: 60/40, 100-minus-age, target-date funds. They ignore the biggest asset most people own -- their future earning power. A 30-year-old software engineer with $100k in savings and 35 years of income ahead is in a fundamentally different position than a 30-year-old retiree with the same $100k.
13
+
Most portfolio allocation "rules" are single-variable heuristics: 60/40, 100-minus-age, target-date funds. They ignore the biggest asset most people own, their future earning power. A 30-year-old software engineer with $100k in savings and 35 years of income ahead is in a fundamentally different position than a 30-year-old retiree with the same $100k.
14
14
15
-
This library takes a **balance-sheet** view of your finances. Your investable portfolio is only part of your total wealth. Future earnings (human capital) act like a bond-like asset, and accounting for them changes how much stock risk you should take. The result is a theoretically grounded, personalized allocation that evolves naturally over your lifecycle -- no arbitrary rules required.
15
+
This library takes a **balance-sheet** view of your finances. Your investable portfolio is only part of your total wealth. Future earnings (human capital) act like a bond-like asset, and accounting for them changes how much stock risk you should take. The result is a theoretically grounded, personalized allocation that evolves naturally over your lifecycle, no arbitrary rules required.
16
16
17
17
## Features
18
18
19
-
-**Core allocation engine** -- Merton-style optimal risky share adjusted for human capital
20
-
-**4 income models** -- flat, constant-growth, age-profile, and CSV-based
21
-
-**Strategy comparison** -- benchmark against 60/40, 100-minus-age, and target-date funds
-**Leverage support**: two-tier borrowing rate model with configurable constraints
26
+
-**Mortality adjustment**: survival probability discounting for human capital
27
27
28
28
## Install
29
29
@@ -89,7 +89,7 @@ This produces `allocation.json`, `summary.md`, and charts in `output/charts/`.
89
89
2. Estimate **human capital** H as the present value of future earnings + retirement benefits, discounted by survival probability and a term structure
90
90
3. Adjust: `alpha = alpha* x (1 + H/W)`, clamped to [0, 1] (or [0, L_max] with leverage)
91
91
92
-
Young workers with high H/W ratios get higher equity allocations. As you age and accumulate financial wealth, H shrinks relative to W and the allocation naturally declines -- producing a lifecycle glide path from first principles rather than arbitrary rules.
92
+
Young workers with high H/W ratios get higher equity allocations. As you age and accumulate financial wealth, H shrinks relative to W and the allocation naturally declines, producing a lifecycle glide path from first principles rather than arbitrary rules.
Copy file name to clipboardExpand all lines: docs/index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# lifecycle-allocation
2
2
3
-
**lifecycle-allocation** is a Python library for computing data-driven stock/bond allocation recommendations based on lifecycle portfolio theory. Instead of relying on rules of thumb like "100 minus your age," it treats your future earning power as an asset -- your human capital -- and uses it alongside your financial wealth to derive a personalized equity allocation grounded in economic theory.
3
+
**lifecycle-allocation** is a Python library for computing data-driven stock/bond allocation recommendations based on lifecycle portfolio theory. Instead of relying on rules of thumb like "100 minus your age," it treats your future earning power as an asset, your human capital, and uses it alongside your financial wealth to derive a personalized equity allocation grounded in economic theory.
4
4
5
5
The framework is inspired by [Choi et al. (2024)](https://www.nber.org/papers/w34166) and implements a Merton-style optimal risky share adjusted for human capital, with support for multiple income models, mortality adjustment, leverage constraints, and visual analytics.
0 commit comments