Tune the scoring logic — changes apply across every Heat Map
Logic: DB ID looked up in Outward sheet
Logic: matches reconciled keyword across rows
Logic: |cash − deposit| gap and deposit/cash ratio
Match the exact text from the Over Stock sheet's Status column (case-insensitive)
Logic: Σ aged salable value per DB, excluding a category
Logic: most recent Audit_End_Date per DB, then check total_balance
Logic: Σ Return Value ÷ Σ Picked Value per DB
Logic: Ratio = Secondary Sales ÷ Primary Purchase × 100
Logic: Coverage = GRN ÷ Payment × 100 (Primary AMOUNT vs GRN total_price)
One keyword per line — matched against DB name, BU and Sub-BU (case-insensitive substring)
Alerts trigger once the local clock (in the chosen timezone) passes each cutoff hour (0–23).