gmal-scope-builder/backend/app
DJP 2d44103603 Fix hours × volume bug: store per-1-asset hours, link directly to GMAL
Ratecard lines now store total_hours as per-1-asset hours (= base_hours,
linked to the GMAL row), with volume tracked separately. Aggregators
(team_shape, ratecard summary, Excel matrix, in-app ratecard tab) multiply
by volume themselves when computing total effort. Display behavior is
preserved; storage semantics are clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 12:11:04 -04:00
..
api Fix hours × volume bug: store per-1-asset hours, link directly to GMAL 2026-04-27 12:11:04 -04:00
middleware Fix 401: send ID token instead of Graph access token 2026-03-30 11:16:44 +01:00
models Role-based access control: Viewer / Editor / Admin 2026-04-13 12:29:04 -04:00
schemas Client tier mapping + GMAL complexity variant expansion 2026-04-09 15:02:45 -04:00
services Fix hours × volume bug: store per-1-asset hours, link directly to GMAL 2026-04-27 12:11:04 -04:00
utils Improve matching, upload UX, collapse fix, full catalog approach 2026-03-27 19:22:08 -04:00
__init__.py Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
config.py Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
database.py Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
main.py Role-based access control: Viewer / Editor / Admin 2026-04-13 12:29:04 -04:00