# PR #412: Replace legacy feecalc with hartwell_fees package

Author: Wren Abernathy
Branch: wren/hartwell-fees-rewrite

## What

Rewrites `legacy/feecalc.py` as a proper package (`hartwell_fees/`): dataclasses, Decimal
money, no globals, a parser that can be unit tested. Same output format, so the billing
upload doesn't need to change.

Run it the same way:

    python3 -m hartwell_fees.cli samples/accounts_2026-10.txt 20261031

## Testing

Ran both on `samples/accounts_2026-10.txt` and eyeballed the output, looks the same apart
from the timestamp. Also fixed the thing where accounts in credit got charged a fiver, which
was obviously a bug.

## Plan

Swap the cron entry over on Thursday night's run and delete `legacy/` the week after.
