Logika życia

„Nikt by nie pamiętał o dobrym Samarytaninie, gdyby miał tylko dobre intencje. By przejść do historii, musiał mieć też pieniądze." – Margaret Thatcher

Rzeczywista roczna stopa oprocentowania - dokumentowanie poprawnosci wyliczeń

Rzeczywista roczna stopa oprocentowania, zgodnie z ustawą o kredycie konsumenckim, służy do mierzenia kosztów kredytu. Pokażę, jak należy ją rozumieć od strony obliczeniowej.

Co to jest RRSO i jak ją policzyć?

Zgodnie z ustawą rzeczywistą roczną stopą oprocentowania jest rozwiązanie następującego równania (w ustawie jest dokładnie to samo równanie, tylko trochę inaczej zapisane):

k=1mCk(1+x)tk=l=1mˉDl(1+x)sl\sum_{k=1}^{m}\frac{C_{k}}{(1+x)^{t_{k}}}=\sum_{l=1}^{\bar{m}} \frac{D_{l}}{(1+x)^{s_{l}}}

przy czym użyte symbole oznaczają: xx — rzeczywista roczna stopa oprocentowania; mm — numer kolejny ostatniej wypłaty raty kredytu; kk — numer kolejny wypłaty, zatem 1km1 \leq k \leq m; CkC_k — kwotę wypłaty z numerem kk; tkt_k — okres, wyrażony w latach lub ułamkach lat, między dniem pierwszej wypłaty a dniem każdej kolejnej wypłaty, zatem t1=0t_1 = 0; mˉ\bar{m} — numer kolejny ostatniej spłaty lub wnoszonych opłat; ll — numer kolejny spłaty lub wnoszonych opłat; DlD_l — kwotę spłaty lub wnoszonych opłat z numerem ll; sls_l — okres, wyrażony w latach lub ułamkach lat, między dniem pierwszej wypłaty a dniem każdej spłaty lub wniesienia opłat. Przy czym rozwiązanie to zapisujemy jako wartość procentową.

Lewa strona wzoru informuje nas, w jakiej wysokości i w jakich odstępach czasu instytucja udzielająca pożyczki lub kredytu będzie nam wypłacać pieniądze. Przy czym zazwyczaj wszystkie pieniądze dostajemy od razu, wtedy nasza suma będzie miała tylko jeden składnik i t1=0t_1=0, a więc mianownik podnosimy do zerowej potęgi, czyli w mianowniku mamy 1, w liczniku zaś mamy całkowitą kwotę kredytu, czyli wszystkie pieniądze, które instytucja finansowa daje nam do dyspozycji, a jeżeli prowizja, ubezpieczenie lub inne opłaty są płatne osobno i są one płacone w tym momencie, to należy je odjąć od kwoty, którą bank daje nam do dyspozycji. Jeżeli np. bierzemy kredyt na 10000 złotych, ale prowizja jest płatna osobno i wynosi 1000 złotych, to bank daje nam do dyspozycji 9000 złotych. Jeśli prowizja, ubezpieczenie (a także inne opłaty) są kredytowane, to z tego powodu raty są wyższe i te wyższe raty składają się na nasz ciąg płatności DlD_l (podobnie gdyby ubezpieczenie, prowizja i inne opłaty nie były kredytowane, ale rozdzielone na miesięczne składki). Należy również zauważyć, że „jeżeli umowa o kredyt daje konsumentowi swobodę dokonywania wypłat, przyjmuje się, że całkowita kwota kredytu została wypłacona od razu i w całości”, czyli tak, jakbyśmy wszystkie pieniądze dostali od razu.

Prawa strona wzoru informuje nas, w jakiej wysokości i w jakich odstępach czasu my będziemy wpłacać pieniądze. Zgodnie z ustawą równanie to może być zapisane w postaci jednej sumy z wykorzystaniem koncepcji przepływów AkA_k, które mogą być dodatnie lub ujemne — zapłacone lub otrzymane w okresach 1 do k, wyrażonych w latach:

S=k=1nAk(1+x)tkS=\sum_{k=1}^{n} \frac{A_{k}}{(1+x)^{t_{k}}}

gdzie SS oznacza bieżące saldo przepływów; jeżeli celem jest zachowanie równoważności przepływów, wartość ta będzie równa 0. My właśnie chcemy zachować równoważność przepływów, więc po lewej wstawiamy zero. To równanie powstało w ten sposób, że wypłaty banku przenieśliśmy na prawą stronę znaku równości, ze znakiem minus, jednocześnie symbol CkC_k zastąpiliśmy symbolem AkA_k, symbol DlD_l również został zamieniony na AkA_k, a symbol sls_l został zamieniony na tkt_k. Koncepcja pozostaje ta sama, z tym że jeżeli bank daje nam pieniądze, to piszemy znak minus przy tej kwocie.

Liczenie okresów czasu pomiędzy kolejnymi datami

Jak widać, RRSO zależy od okresów pomiędzy wypłatą(ami) banku a naszymi spłatami (a te zależą od dat tych operacji) i od wysokości wypłat i spłat. Obliczanie okresów wiąże się z obliczaniem liczby dni pomiędzy dwiema datami, tę liczbę liczymy w ten sposób, że pierwszej (wcześniejszej) daty nie bierzemy pod uwagę, a drugą (późniejszą) bierzemy pod uwagę, np. pomiędzy 19.02.2019 a 21.02.2019 minęły dwa dni: 20.02.2019 i 21.02.2019. Jeżeli mamy dwie daty, które różnią się o jeden miesiąc, to liczba dni między nimi wynosi zawsze tyle dni, ile ma miesiąc we wcześniejszej dacie (żeby to udowodnić, wystarczy zauważyć, że dni, które są w późniejszym miesiącu, to dokładnie te dni, których brakuje we wcześniejszym). Dla przykładu, między 19.05.2019 a 19.06.2019 jest 31 dni, bo maj ma 31 dni.

To wszystko łatwiej będzie zrozumieć, jeżeli zobaczymy przykład. Pożyczyliśmy 6 tysięcy złotych 19.02.2019 roku, a następnie 19 marca, kwietnia i maja oddajemy dług w kolejnych ratach wynoszących odpowiednio 2150, 2100 i 2050 złotych, wtedy RRSO wynosi: 0,35996412640{,}3599641264 czyli 35,99641264%35{,}99641264\%, a równanie wygląda tak:

6000(1+0,3599641264)0=2150(1+0,3599641264)28/365+2100(1+0,3599641264)59/365+2050(1+0,3599641264)89/365\begin{aligned} \frac{6000}{(1+0{,}3599641264)^{0}}=\frac{2150}{(1+0{,}3599641264)^{28/365}}+\\ \frac{2100}{(1+0{,}3599641264)^{59/365}}+\frac{2050}{(1+0{,}3599641264)^{89/365}} \end{aligned}

Po lewej mamy 6000 złotych, które bank nam pożycza, i zero w wykładniku mianownika, ponieważ zgodnie z ustawą jest to okres t1t_1, po prawej stronie mamy pierwszą naszą spłatę 2150 złotych, a okres czasu, jaki minął między 19.02.2019 a 19.03.2019, to 28 dni, jest to 28/365 część roku, a więc s1=28365s_1=\frac{28}{365} i taka liczba jest wykładnikiem w mianowniku. Następnie mamy drugą naszą spłatę równą 2100 złotych, okres między 19.02.2019 a 19.04.2019 to 59 dni, stąd s2=59365s_2=\frac{59}{365}, a ostatnia rata to 2050 złotych, okres między 19.02.2019 a 19.05.2019 to 89 dni, czyli s3=89365s_3=\frac{89}{365} i taka liczba jest w ostatnim wykładniku mianownika. Jeżeli będziemy chcieli skorzystać z koncepcji przepływów, to niewiele się tu zmieni, nasze równanie będzie wyglądało tak:

0=6000(1+0,3599641264)0+2150(1+0,3599641264)28/365+2100(1+0,3599641264)59/365+2050(1+0,3599641264)89/365\begin{aligned} 0=\frac{-6000}{(1+0{,}3599641264)^{0}}+\frac{2150}{(1+0{,}3599641264)^{28/365}}+\\ \frac{2100}{(1+0{,}3599641264)^{59/365}}+\frac{2050}{(1+0{,}3599641264)^{89/365}} \end{aligned}

Czytając załącznik do ustawy, definiujący RRSO, pojawia się pytanie, jak traktować lata przestępne. Moim zdaniem błędne jest dzielenie rzeczywistej liczby dni w roku przestępnym przez 365. Rzeczywistą liczbę dni w roku przestępnym powinniśmy dzielić przez 366 dni. Wynika to wprost ze słów „odstępy czasu między datami używanymi w obliczeniach wyrażone będą w latach lub w ułamkach roku, przy czym rok liczy 365 dni, a w przypadku lat przestępnych 366 dni”. Przy czym w większości przypadków nie ma to większego znaczenia (a różnica będzie na tyle mała, że dla sądu nie będzie istotna). W tym momencie rodzi się pytanie, jak potraktować okres czasu, który zaczął się (lub skończył) w roku nieprzestępnym, a skończył (lub zaczął) w roku przestępnym. Te dni, które przypadają na rok nieprzestępny, dzielimy przez 365, a te które przypadają na rok przestępny, dzielimy przez 366. Na przykład okres czasu pomiędzy 19.12.2019 a 19.01.2020 to 12/365+19/366 część roku. Zapiszemy to jako jeden ułamek. Musimy znaleźć wspólny mianownik, jest nim 365366=133590365 \cdot 366 = 133590 (nie ma mniejszego), teraz liczymy:

12365+19366=12366365366+19365366365=12366+19365365366=11327133590\frac{12}{365}+\frac{19}{366}=\frac{12\cdot366}{365\cdot366}+\frac{19\cdot365}{366\cdot365}=\frac{12\cdot366+19\cdot 365}{365\cdot 366}=\frac{11327}{133590}

Liczenie RRSO z użyciem komputera

Liczenie RRSO bez komputera jest praktycznie niewykonalne. RRSO można policzyć w arkuszu kalkulacyjnym, potrzebujemy tu funkcji XIRR. Funkcja ta dokładnie oblicza RRSO, aczkolwiek tylko w przypadku, gdy nie są liczone odsetki przez żaden dzień roku przestępnego (ponieważ dzieli dni w roku przestępnym przez 365). Funkcja ta przyjmuje dwa ciągi danych jako argumenty. Pierwszy to ciąg dat, w których dochodzi do płatności. Drugi argument to ciąg płatności, przy czym jeśli bank wypłaca nam pieniądze, to przy tej płatności (prawie zawsze jest to jedynie pierwsza płatność, chyba że kredyt lub pożyczka wypłacany jest w transzach) stawiamy znak minus (a więc funkcja korzysta z koncepcji przepływów).

Pozostaje pytanie, jak można udowodnić, że RRSO wynosi tyle, ile wynosi. Wydaje mi się, że na potrzeby sporu sądowego potrzebny będzie wydruk (a najlepiej plik arkusza kalkulacyjnego), który będzie można sprawdzić. W tym celu każdy element sumy Ak(1+x)tk\dfrac{A_{k}}{(1+x)^{t_{k}}} należałoby rozpisać w jednym wierszu, tak aby każdy krok był możliwy do policzenia, a ostatnia kolumna zawierałaby właśnie te elementy: Ak(1+x)tk\dfrac{A_{k}}{(1+x)^{t_{k}}}, teraz sumując te elementy, sprawdzamy, czy wyszło zero (wykorzystujemy koncepcję przepływów), jeżeli tak, to znaczy, że RRSO jest dobrze policzona. Zobaczmy, jak to wygląda na przykładzie, który już rozpatrywaliśmy: pożyczyliśmy 6 tysięcy złotych 19.02.2019 roku, a następnie 19 marca, kwietnia i maja oddajemy dług w kolejnych ratach wynoszących odpowiednio 2150, 2100 i 2050 złotych, wtedy RRSO jest równa: 0,35996412640{,}3599641264. Zaś udowodnienie tego mogłoby wyglądać tak (pod tabelą jest suwak do jej przesuwania):

nr kData z numerem kkKwota (przepływ z nr kk) AkA_kCzas (część roku) między dwiema kolejnymi datamiCzas między dniem pierwszej wypłaty a dniem wypłaty kk (ułamek): tkt_kCzas między dniem pierwszej wypłaty a dniem wypłaty kk (dziesiętnie)Kwota zdyskontowana: Ak(1+RRSO)tk\dfrac{A_k}{(1+RRSO)^{t_k}}
119-02-2019-6000000-6000
219-03-2019215028/36528/3650,076712332099,8838
319-04-2019210031/36559/3650,161643841998,1837
419-05-2019205030/36589/3650,243835621901,9326
Σ-----0,0001

Po raz pierwszy dokonamy trudniejszych obliczeń, zamieniając ułamki zwykłe w kolumnie piątej (część roku między dniem pierwszej wypłaty a dniem wypłaty z numerem kk zapisaną jako ułamek zwykły) na ułamki dziesiętne (żeby je wpisać do kolumny szóstej). Po raz drugi trudniejsze obliczenia występują przy wyliczaniu ułamka (kwoty zdyskontowanej na dzień wypłaty banku): Ak(1+RRSO)tk\dfrac{A_k}{(1+RRSO)^{t_k}}. W każdym wierszu musimy powtórzyć te operacje, a na końcu wartości z ostatniej kolumny sumujemy, jeżeli wychodzi zero, to mamy dobrze policzoną RRSO, jeżeli mamy wartość bliską zeru, to również możemy uznać, że RRSO jest dobrze policzona, jest to kwestia tego, że musimy w którymś momencie zaokrąglić liczby. W tym przypadku suma wyszła równa 0,00010{,}0001, czyli mniej niż jeden grosz (0,010{,}01), i myślę, że każdy sędzia powinien uznać wynik poniżej 0,010{,}01 za dopuszczalny. Jeżeli mielibyśmy rok przestępny, to pojawiłby się nam ułamek o mianowniku 133590, więc wygodniejsze byłoby w piątej kolumnie wpisywać ułamki z kolumny czwartej w postaci dziesiętnej, a w kolumnie szóstej sumować wartości z kolumny piątej (jest to mniej dokładne sprawdzanie, bo jest więcej zaokrągleń, na samą wartość RRSO nie ma to wpływu).

Teoretycznie stworzenie takiej tabelki dokumentującej wartość RRSO jest możliwe do zrobienia ręcznie, ale byłoby to bardzo żmudne i nie wiemy, jak liczyć RRSO, gdy mamy rok przestępny. W tej sytuacji możemy skorzystać z programu, który stworzy taką tabelkę za nas. Pod adresem: Dowodzenie wartosci RRSO jest mój kalkulator, który wyliczy RRSO i udokumentuje to w sposób podobny do tego, jak to było zrobione wyżej (sama idea programu powstała po przeczytaniu tego wpisu: https://styczynski.blogspot.com/2018/08/zrozumiec-rrso.html). Jeżeli mamy harmonogram w wersji papierowej, to najlepiej przepisać go do arkusza kalkulacyjnego w taki sposób, aby z lewej były daty, a z prawej odpowiadające im kwoty (naszych spłat i wypłat banku), i potem skopiować do programu albo jeśli harmonogram jest dość regularny można go złożyć przepisując kilka informacji (głównie z początku i końca kredytu) w drugim formularzu. Następnie można go poprawić, np. przesunąć daty wypadające w weekend. W sytuacji gdy bank daje nam pewną kwotę np. 10000 i jednocześnie (w tym samym dniu) nalicza np. kredytowaną prowizję w wysokości 1000 , to jako kwotę do dyspozycji wpisujemy to co faktycznie otrzymaliśmy od banku, czyli 10000 (z minusem w pierwszym formularzu; bez w drugim) lub (tylko w pierwszy formularzu: Kalkulator RRSO — wklej dane), co na jedno wychodzi oba te przepływy pieniężne 11000 (z minusem) i 1000 (bez minusa). To rozbicie na dwa przepływy oznacza tyle, że bank nam wypłacił 11000 i od razu (w tym samym dniu) pobrał prowizję w wysokości 1000. Rozbicie jednego przepływu pieniężnego na dwa (lub więcej) z tą samą datą nie wpływa na wartość RRSO.Wyniki można potraktować jako dowód faktu, że RRSO wynosi tyle, ile wyliczył program, a nie tyle, ile wyliczył bank, przy czym często banki w RRSO nie uwzględniają kredytowanych kosztów i taka dokumentacja RRSO może posłużyć do udowodnienia, że praktyka banków jest błędna (ale o tym innym razem). Program najpierw liczy RRSO, a potem wykonuje obliczenia sprawdzające tak, jak robi to kalkulator, więc gdyby w programie było coś źle, to suma w ostatniej kolumnie nie byłaby równa zero, ani nie byłaby bliska wartości zero (ewentualne błędy proszę zgłaszać do mnie; przy czym moja gorąca prośba jest taka, żeby zgłaszać ewentualne błędy wraz z danymi, które je wygenerowały).

Edycja 13.08.2026