-
Mahmoud Aglan authored
The old calculator applied a flat percentage by position (oldest=10%, next=50%, next=100%). The correct model: each year's penalty escalates based on how long THAT SPECIFIC year has been overdue: - Same year past grace (3 months): 10% - 1 year overdue: 50% - 2 years overdue: 100% - 3 years overdue: 200% - 4 years overdue: 300% - 5+ years: membership dropped Also adds: - Grace period rule (SUB_GRACE_MONTHS = 3, extended = 4 with trustees approval) - YEAR_4 (200%) and YEAR_5 (300%) rules in DB - canReinstate() method for 12-month reinstatement window - expireReinstatements() for permanent drop after window expires Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
6cb14f82