Что такое DPD 30+ Rate (DPD 30+)?
Доля кредитов с просрочкой 30 и более дней.
Формула
$$\text{DPD 30+ Rate} = \frac{\text{COUNT}(\text{loans с dpd} \geq 30)}{\text{COUNT}(\text{active loans})} \times 100\%$$Как считать
Находим кредиты, у которых хотя бы один платёж имеет dpd >= 30, и делим на общее число активных кредитов.
Зачем нужна
Ключевой индикатор качества портфеля. DPD 30+ — стандартный порог, за которым начинается реальный кредитный риск.
SQL-запрос
-- Таблицы: loans(loan_id, user_id, app_id, amount, issued_at, term_months, interest_rate, status)
-- loan_payments(payment_id, loan_id, due_date, paid_at, amount_due, amount_paid, is_overdue, dpd)
WITH worst_dpd AS (
SELECT loan_id, MAX(dpd) AS max_dpd
FROM loan_payments
GROUP BY loan_id
)
SELECT
COUNT(*) AS total_active_loans,
COUNT(*) FILTER (WHERE w.max_dpd >= 30) AS dpd_30_plus,
ROUND(
100.0 * COUNT(*) FILTER (WHERE w.max_dpd >= 30)
/ NULLIF(COUNT(*), 0), 2
) AS dpd_30_rate_pct
FROM loans l
JOIN worst_dpd w ON w.loan_id = l.loan_id
WHERE l.status = 'active';