gmal-scope-builder/backend/app/api
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
..
__init__.py Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
deps.py Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
efficiency.py Remove Cortex from tool presets 2026-04-09 14:39:19 -04:00
gmal.py Client tier mapping + GMAL complexity variant expansion 2026-04-09 15:02:45 -04:00
ingest.py Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
matching.py Fix tier extraction: separate entry per tier + user context box 2026-04-13 09:24:07 -04:00
projects.py Client tier mapping + GMAL complexity variant expansion 2026-04-09 15:02:45 -04:00
ratecard.py Fix hours × volume bug: store per-1-asset hours, link directly to GMAL 2026-04-27 12:11:04 -04:00
users.py Role-based access control: Viewer / Editor / Admin 2026-04-13 12:29:04 -04:00