Расчёт полной стоимости займа на PHP
Расчёт полной стоимости займа на PHP

ПСК называется именно полной стоимостью кредита, так как при ее расчете не должны быть «забыты» никакие обязательные платежи, т. е. платежи, которых нельзя избежать в рамках надлежащего исполнения договора займа.

В практике кредитования могут быть и другие платежи, например по страхованию. Но в рамках договора займа это необязательный платеж, если клиент страховкой не пользуется. Он будет обязательным для клиента в случае заключения им другого договора - договора страхования. Поэтому в России платежи по такому договору не включаются в расчет ПСК.

Другой пример - комиссия за внесение платежа по займу через банк, в то время как внесение платежа через кассу КПК или через платёжный терминал бесплатно. Таким образом, комиссия возникнет, только если клиент выберет первый способ оплаты, а значит, платеж не является обязательным (зависит от выбора клиентом способа погашения) и не должен включаться в расчет ПСК.

ПСК является стандартизованной мерой, поскольку представляет собой ставку, рассчитанную по общим для всех финансовых организаций и видов кредитов физическим лицам правилам (алгоритму).

Основная цель стандартизации -сопоставимость ПСК в разных учреждениях. Если условие сопоставимости выполнено, то потенциальный заемщик, зная полную стоимость разных кредитных продуктов, сможет понять, какой из них выгоднее.

Исходя из требования сопоставимости стоимости займов обычно в качестве ПСЗ рассматривают годовую процентную ставку, а не определенную сумму, так как любая абсолютная сумма (например, сумма всех процентных платежей за время погашения займа) должна сравниваться с суммой займа. Используется годовая ставка, чтобы привести ставку к сопоставимому годовому периоду.

Нельзя сказать, что указание ПСЗ полностью снимает вопросы заемщика относительно стоимости займа. Бывают случаи, когда согласно правилам расчёта ПСЗ получаются такие значения, которые ничего не говорят ни кооперативу, ни пайщику. Однако такие факторы, как защита прав заемщиков, обеспечение большей ясности и прозрачности условий договора займа, возможность сопоставления стоимости займов можно отнести к положительным для общества и экономики.

В России порядок расчета и доведения до заемщика - физического лица полной стоимости кредита введен Указанием ЦБ РФ от 13.05.2008 № 2008-У. С 1 июля 2014 г. вступил в действие Федеральный закон от 21.12.2013 № 353-ФЗ «О потребительском кредите (займе)», который помимо регулирования ряда других вопросов в целом оставил те же принципы расчета ПСК.

Однако Федеральным законом от 21.07.2014 № 229-ФЗ «О внесении изменений в статью 6 Федерального закона "О потребительском кредите (займе)"» внесены значительные изменения в правила расчета ПСЗ, вступившие в действие с 1 сентября 2014 г.

Прежде чем рассмотреть, как рассчитывается ПСЗ в России, отметим, что при заключении договора займа значение ПСЗ «размещается в квадратной рамке в правом верхнем углу первой страницы договора потребительского займа перед таблицей, содержащей индивидуальные условия договора потребительского займа». Такое требование установлено с 1 июля 2014 г. Федеральным законом «О потребительском кредите (займе)». Более того, начиная с 1 сентября 2014 г. ПСЗ должна указываться в виде числа процентов с тремя знаками после запятой, например «25,453%». А если точнее, то ПСЗ наносится прописными буквами черного цвета на белом фоне четким, хорошо читаемым шрифтом максимального размера из используемых на этой странице размеров шрифта.

До 1 сентября 2014 г. ПСЗ рассчитывалась как внутренняя норма доходности (IRR) графика платежей по кредитному договору. Величина IRR представляет собой ставку доходности инвестиций, приведенную к стандартизированному виду (годовой процентной ставке) для целей сравнения доходности инвестиций. По определению внутренней доходностью финансовых инструментов называют процентную ставку, по которой дисконтированная стоимость будущего потока платежей по данному финансовому инструменту совпадает с его рыночной ценой. Таким образом, займ, выданный кооперативом, интерпретируется как инвестиция организации, а ПСЗ - как его доходность.

Такой подход основан на опыте Евросоюза (с некоторыми отличиями) и имеет как преимущества, так и недостатки. С одной стороны, понятие внутренней нормы доходности хорошо знакомо финансовым аналитикам - существуют готовые алгоритмы и методики использования значения внутренней нормы доходности.

С другой стороны, заемщику сложно понять, как рассчитана ПСЗ и что конкретно означает полученное значение процентной ставки. Например, номинальная процентная ставка по займу составляет 25% годовых, никаких других платежей, кроме процентных, нет, но ПСЗ равна 26,7%. Не обладая специальными знаниями, сложно понять причину такой разницы. Также сложно объяснить ее клиенту, когда он задает вопрос сотруднику кооператива.

Кроме того, по условиям кредитования в микрофинансовых организациях (далее - МФО), а на них Федеральный закон «О потребительском кредите (займе)» также распространяется, при выдаче, например, кредита на две недели под 10% (не годовых!) клиент должен через две недели вернуть сумму в размере долга и 10% от него. Однако ПСК как мера доходности инвестиций должна быть рассчитана исходя из годового периода в предположении, что МФО, получив деньги от клиента, вложит их еще раз на тех же условиях, т. е. опять под 10% на две недели, и так в течение года. В итоге ПСК плохо соотносится с переплатой по кредиту (превышением всех платежей над суммой кредита), которая в примере составляет всего 10%.

В соответствии с изменениями Федерального закона «О потребительском кредите (займе)» законодателем с 1 сентября 2014 г. введен новый способ расчета ПСК, основанный на понятии ARR. Этот показатель отражает, насколько ежегодные платежи превысят первоначальные инвестиции. В примере с микрофинансовой организацией ARR составит как раз 10%, так как заемщик должен вернуть через две недели (т. е. в течение года) основной долг плюс 10% от его суммы. Такой показатель более понятен заемщикам.

Заметим, что российский закон сходен с аналогичными законодательствами США и Канады, однако не соответствует им в точности, в частности из-за различий в гражданском праве и обычаях делового оборота.

ПСК отражает, на сколько (в процентах) ежегодные платежи заемщика в рамках погашения займа превысят первоначальную сумму кредита.

Полная стоимость потребительского займа определяется в процентах годовых по формуле:

ПСК = i x ЧБП x 100,

где ПСК - полная стоимость кредита в процентах годовых с точностью до третьего знака после запятой;

ЧБП - число базовых периодов в календарном году. Продолжительность календарного года признается равной 365 дням;

i - процентная ставка базового периода, выраженная в десятичной форме.

Базовым периодом по договору потребительского кредита (займа) признается стандартный временной интервал, который встречается с наибольшей частотой в графике платежей по договору потребительского кредита (займа). Если в графике платежей по договору потребительского кредита (займа) отсутствуют временные интервалы между платежами продолжительностью менее одного года или равные одному году, базовым периодом признается один год. Стандартным временным интервалом признаются день, месяц, год, а также определенное количество дней или месяцев, не превышающее по продолжительности одного года. Для целей расчета полной стоимости кредита продолжительность всех месяцев признается равной.

Для примера рассмотрим вариант с ежемесячными платежами:

  1. Продолжительность календарного года признается равной тремстам шестидесяти пяти дням
  2. Число платежей в год - 12
  3. Базовый период = 365/12 ~= 30.

При графике платежей с ежемесячными выплатами: ЧБП = 12

При ежеквартальных выплатах: ЧБП=4

При ежегодных выплатах раз в год или реже: ЧБП=1

Существуют и не стандартные графики выплат. Рассмотрим один из возможных вариантов.

У нас имеется заем с льготной программой на 12 месяцев. 1-ая выплата наступает в конце первого квартала. Далее оплата платежей происходит ежемесячно. Наибольшая частота в графике платежей - ежемесячная. Базовый период в данном случае 1 месяц. Число базовых периодов=12 (за календарный год).

Алгоритм расчета ПСК:

  • Вычислить ЧБП(число базовых периодов).
  • Для каждого k-го платежа считаем ДПk, Qk, Ek.
  • Методами приближенного вычисления в точности до двух знаков после запятой считаем i в уравнении
  • Умножаем ЧБП*i*100.

Проанализировав текст Закона № 229-ФЗ, можно сделать вывод, что правильное определение базового периода (далее - БП) является основой корректного расчета ПСЗ.

В России, как правило, применяется месячный график платежей по займу, выданному физическому лицу. Обычно это означает, что платеж всегда приходится на определенное число месяца (например, 17-е) или на конец месяца (на 28, 29, 30, 31-е число соответственно). Иногда дату в графике платежей передвигают на следующий рабочий день, однако финансовой организации делать это необязательно - право клиента вносить платеж без просрочки в рабочий день, следующий за датой платежа, приходящейся на выходной, закреплено законодательно (в частности, Гражданским кодексом РФ).

В обоих этих случаях число дней между последовательными платежами составляет месяц, или от 28 до 31 дня, из которых половина равна 31 дню (6 месяцев в году содержат 31 день, 5 месяцев - 30 дней).

Базовый период, равный месяцу, легко воспринимается, его легко рассчитывать (дата платежа «через месяц» всегда приходится на то же число, что и предыдущая, независимо от точного числа дней). Однако возникает проблема с расчетом коэффициента ek, так как согласно Закону № 229-ФЗ это «срок, выраженный в долях базового периода, с момента завершения qk-го базового периода до даты k-го денежного потока». Необходимо отнести количество дней между датами к длине базового периода. Но как правильно выразить длину базового периода (месяца) в днях, если разные месяцы имеют разное число дней, а среднегодовое число дней в месяце не целое число?

С одной стороны, если, как принято в Законе, исходить из того, что в году 365 дней, а месяцев - 12, то длина базового периода, т. е. «месяца» в днях должна быть равна 365 / 12 = 30,417. Но с другой стороны, в Законе сказано: «Если в графике платежей по договору потребительского займа отсутствуют повторяющиеся временные интервалы..., базовым периодом признается временной интервал, который является средним арифметическим для всех периодов, округленным с точностью до стандартного временного интервала». Это означает, что полученное значение, видимо, нужно округлить до целого числа дней (день - минимальный стандартный интервал). Тогда получится, что базовый период равен 30 дням.

Отметим, что в американском законодательстве, точно указано, что число дней в году принимается за 360, а в месяце - за 30. Но с другой стороны, этот подход тоже имеет свои недостатки.

Таким образом, в рассматриваемом случае использование базового периода в размере 30 дней представляется целесообразным.

Для примера автоматического расчёта ПСК нами был разработан специальный скрипт, написанный на языке программирования PHP, который рассчитывает полную стоимость займа на примере кредитных кооперативов, входящих в РС КПКГ. В этих кредитных кооперативах используется метод половинного деления для нахождения величины i в уравнении представленного в алгоритме расчета ПСК в п.3.

<?php

 

// Функция вычисления числового ряда

// -- Входные параметры 

// Расчетные даты

// Суммы платежей

// Массив Qk

// Массив Ek

// Значение переменной i

function irr($dates, $sum, $q, $e, $r)

{

$value = 0;

 

for ($i=0; $i < count($dates); $i++) { 

$d = (1 + $e[$i] * $r) * pow((1 + $r), $q[$i]);

$value = $value + $sum[$i] / $d;

}

return $value;

}

 

// Функция расчета ПСК методом половинного деления

// Уравнение представляет собой числовой ряд с неизвествной переменной i

// Решением уравнения значение переменной i, при которое значение числового ряда равно 0

// Принимаем, что уравнение имеет один единственный корень на отрезке [0;1]

// Нужно найти минимальный отрезок на котором значения уравнения менет знак

function calc($dates, $sum, $q, $e)

{

$a = 0;

$b = 1;

// Точность

$min = 0.000001;

$c = ($a + $b)/2;

while (abs($b - $a) > $min) {

if (irr($dates, $sum, $q, $e, $a) * irr($dates, $sum, $q, $e, $c) < 0) {

$b = $c;

} else {

$a = $c;

}

$c = ($a + $b)/2;

}

return $c;

}

 

parse_str($_POST["data"], $postarray);

// Заполнение входных параметров

// -- Срок договора

// -- Дата начала дейсвтия договора

// -- Процент по договору

// -- Сумма договора

$loan_term = $postarray['loan_term'];

$loan_begin = $postarray['loan_begin'];

$loan_percent = $postarray['loan_percent'];

$loan_sum = $postarray['loan_sum'];

 

$d1 = DateTime::createFromFormat('Y-m-d', $loan_begin);

// Добавление выдачи денежных средств с отрицательным значением

$dates = [$d1];

$month_payment = $loan_sum / $loan_term;

$sum = [(-1) * $loan_sum];

$last_date = $d1;

 

// Заполнение дифференцированного графика платежей на срок дейсвтия договора

for ($j=1; $j < $loan_term + 1; $j++) { 

 

$year = $d1->format('Y');

$month = $d1->format('n');

$day = $d1->format('d');

 

// Увеличение месяца на 1

$year += floor($j/12);

$i = $j%12;

$month += $i;

if($month > 12) {

    $year ++;

    $month = $month % 12;

    if($month === 0)

        $month = 12;

}

if(!checkdate($month, $day, $year)) {

    $d2 = DateTime::createFromFormat('Y-n-j', $year.'-'.$month.'-1');

    $d2->modify('last day of');

}else {

    $d2 = DateTime::createFromFormat('Y-n-d', $year.'-'.$month.'-'.$day);

}

// Число дней между текущим месяцем и датой начала договора

$interval = date_diff($d2, $last_date);

// Начисленный процент между расчетными датами 

// Остаток зодолженности * Процент по договору в день * Число дней

$percents = ($loan_sum - $month_payment * ($i - 1)) * $loan_percent * 12/100/365 * $interval->format('%a'); 

 

$dates[] = $d2;

$last_date = $d2;

$sum[] = $month_payment + $percents;

}

 

//Заполнение массива с количеством дней с даты выдачи до даты к-го платежа

$days = [];

for ($k = 0; $k < $loan_term + 1; $k++) {

$interval = date_diff($dates[$k], $dates[0]);

$days[] = $interval->format('%a');

}

 

$q = [];

$e = [];

//Базвый период

$bp = 30;

//Число базовых периодов в году:

$cbp = round(365/$bp);

//Расчет Ек и Qк для каждого платежа

for ($k=0; $k < $loan_term + 1; $k++) { 

$e[$k] = ($days[$k] % $bp) / $bp;

$q[$k] = floor($days[$k] / $bp);

}

 

//Расчет ПСК

echo strval(round(calc($dates, $sum, $q, $e) * $cbp,4)*100) . " %";

?>

 

Хотите внедрить в своей организации CRM или получить бесплатную консультацию? Тогда звоните нам по телефону: +7(843)202-38-93