Stocktake reset: events before last scan do not add points.
CONFIRMED_MISSING +300
Confirmed bike missing.
CONFIRMED_WRONG_POSITION +180
Confirmed wrong slot.
CONFIRMED_EXTRA +90
Confirmed unexpected bike.
CONFIRMED_UNREADABLE +60
Confirmed unreadable result.
CONFIRMED_DAMAGED +60
Confirmed damaged code/tag.
MISSING +40
Unconfirmed missing.
WRONG_POSITION +25
Unconfirmed wrong slot.
EXTRA +15
Unconfirmed extra bike.
UNREADABLE +10
Scan issue unreadable.
UNSCANNED +10
Scan issue unscanned.
PARTIAL_READ +5
Scan issue partial read.
LOW_CONFIDENCE +4
Scan issue low confidence.
SCAN_ISSUE_CAP +40
Max total from scan issues.
OCCUPANCY +1 per 1%
Higher fill raises priority.
DAYS_SINCE_SCAN +10 per day
Every day without scan adds points.
NEVER_SCANNED +5000
Hard boost for never-scanned racks.
SCAN_FREQUENCY 0-2 +20
Few scans in last 90 days.
SCAN_FREQUENCY 3-5 +0
Neutral scan frequency.
SCAN_FREQUENCY 6-10 -20
Frequently checked.
SCAN_FREQUENCY >10 -40
Very frequently checked.
MATCH_RATE >=99.5% -10
Very high match reduces urgency.
MATCH_RATE >=98% -5
Good match slightly reduces urgency.
MATCH_RATE <98% 0
No reduction for lower match rates.