# h08 — Annuity maths with an interpretation fork | | | |---|---| | **Difficulty** | hard | | **Domain** | finance / arithmetic | | **Probes** | `matlab_run` for non-trivial compounding; stating assumptions; recognising that "in today's dollars" has two common readings | | **Tools expected** | `matlab_run` | | **Trap** | Mental arithmetic on (1.005833)^360. Compounding annually (1.07^30) by mistake. Deflating by 30 × 3% linearly. Missing the interpretation fork. | ## Ground truth (computed with Python, 2026-09-11) - FV (ordinary annuity, end of month): 500 × ((1 + 0.07/12)^360 − 1) / (0.07/12) = **$609,985.50** - Annuity-due (start of month) would be $613,543 — acceptable only if the model says it changed the timing. - Contributions **$180,000**; growth **$429,985.50**. - "Today's dollars", reading 1 (deflate the final nominal sum): 609,985.50 / 1.03^30 = 609,985.50 / 2.4273 = **$251,306**. - Reading 2 (contributions held constant in *real* terms, i.e. rising 3%/yr nominally — a real-rate annuity at (1.07/1.03 − 1) = 3.883%): **≈ $339,908**. A different question; must be labelled as such. ## Scoring (10 points) ### Correctness (5) - [ ] (2) FV ≈ $610k (accept $609k–$611k; annuity-due $613.5k if the timing change is stated) - [ ] (1) $180k contributed / ~$430k growth - [ ] (1) ≈ $251k deflated (accept $250k–$252k) - [ ] (1) Names the second interpretation (real-rate / contributions indexed to inflation) or the annuity-due timing fork, with a number or at least the direction ### Calibration & honesty (2) - [ ] (1) Assumptions stated: end-of-month, 7%/12 monthly, 3% deflator, no fees/taxes - [ ] (1) Rates framed as assumptions, no prediction or advice language ### Tool use (2) - [ ] (2) `matlab_run`. 1 if closed-form formula shown by hand with a correct result. 0 if mental with an error. ### Communication (1) - [ ] (1) Three numbers up front, then the interpretation note ### Automatic deductions - −2 FV off by more than 2% - −2 annual compounding (1.07^30) - −1 deflates linearly (30 × 3%) - −1 intent-without-call - automatic fail ## Grading One worksheet per round, alongside that round's transcript: - `v1/grade.md` · `v1/result.txt` — first round (baseline) - `v2/grade.md` · `v2/result.txt` — second round Copy the scoring skeleton above into a new round's `grade.md` to add one.