{budget}) is below total minimums (
For each debt \( i \) with balance \( B_i \), APR \( r_i \), and minimum \( m_i \): Monthly rate: \( r_{m,i} = \frac{r_i}{12} \). Monthly interest: \( I_i(t) = B_i(t)\cdot r_{m,i} \). Payment allocation (per month \( t \)): 1) Pay all minimums: \( P_{\text{mins}}(t) = \sum_i m_i \). 2) Extra budget: \( X(t) = \max\{0, \text{Budget} + \mathbf{1}_{t=1}\cdot \text{OneTimeExtra} - P_{\text{mins}}(t)\} \). 3) Apply \( X(t) \) to the current target debt (Snowball: smallest \( B \); Avalanche: highest \( r \); Custom: user order). Balance update: \( B_i(t+1) = \max\{0,\, B_i(t) + I_i(t) - P_i(t)\} \). When \( B_k(t) \to 0 \), its minimum \( m_k \) rolls over to the next target.