Every weight, cap, and gate lives in the `config` table -- edits here take effect the moment you re-score, no redeploy.
§1: OpportunityScore = 100 × gate × Σ(pillar × weight). Should sum to 100%.
The normalization ceilings §13 says to re-baseline once you've seen real data.
§6: G1/G2 zero a score outright; G3-G5 apply a soft multiplier (floored at 0.5, never compounded lower).
G2 -- no buyer in the city
G3 -- full, review-heavy 3-pack
G4 -- sub-scale, non-recurring ticket
G5 -- YMYL / regulated niche