Goal
Move model pricing data out of codex_app_tracker.py and into versioned metadata such as pricing.json.
Why
Pricing changes over time. Reports should make it obvious which rate table was used.
Acceptance Criteria
- Pricing data lives in a small checked-in metadata file.
- Reports include pricing source date and table version.
- Tests cover cached input, input, and output pricing separately.
- README keeps the "estimate, not invoice" boundary clear.
Goal
Move model pricing data out of
codex_app_tracker.pyand into versioned metadata such aspricing.json.Why
Pricing changes over time. Reports should make it obvious which rate table was used.
Acceptance Criteria