1. Taksit formülü
Eşit taksitli (annüite) kredide her ay aynı tutarı ödersiniz; taksitin içindeki faiz ve anapara payları ise her ay değişir.
T = A × r ÷ (1 − (1 + r)−n)
A anapara, n vade (ay), r aylık maliyet oranı. Faiz sıfırsa formül tanımsızdır; o durumda taksit anaparanın vadeye bölümüdür ve kod bunu ayrıca ele alır.
2. r, ilan edilen faiz değildir
Tüketici ve taşıt kredilerinde her ay tahakkuk eden faizin üzerinden KKDF ve BSMV alınır. İkisi de anaparadan değil faizden hesaplanır — ama sonuçta taksite eklenir. Dolayısıyla o ay paranın gerçek bedeli şudur:
r = aylık faiz × (1 + KKDF + BSMV)
Aylık %2,89 faiz, %15 KKDF ve %15 BSMV ile aylık %3,757 olur. Amortisman bu oranla kurulur; Türkiye'de bankaların taksiti böyle hesaplamasının sebebi budur. Konut kredileri her iki kesintiden de istisnadır — aynı faizle konut taksitinin neden daha düşük çıktığının cevabı burada.
3. Amortisman kuruş tamsayısı üzerinde yürür
İlk sürümde hesap ondalıkla yapılıyor ve her hücre ayrı yuvarlanıyordu. Sonuç: bazı satırlarda faiz + KKDF + BSMV + anapara toplamı taksitten 1-2 kuruş sapıyordu. Kullanıcıya gösterilen bir ödeme planında bu görünür bir tutarsızlıktır.
Aritmetik tamsayı kuruşa taşındı. Her ay şu sırayla hesaplanıyor: aylık maliyet kalan borçtan bulunuyor, içindeki KKDF ve BSMV ayrılıyor, artık kuruş faize yazılıyor — faiz en büyük kalem olduğu için oransal sapması en küçük olan odur ve satır böylece tam kapanır.
Sonuç iki değişmez: her satırda faiz + KKDF + BSMV + anapara = taksit ve anapara payları toplamı kredi tutarına kuruşu kuruşuna eşit. İkisi de test edilir; son taksit kalan borcu sıfırlayacak şekilde düzeltilir.
4. Yıllık maliyet oranı
YMO, bütün ödemeleri ve masrafları bugüne indirgeyerek tek bir orana çeviren değerdir: ödemelerin bugünkü değerini ele geçen tutara eşitleyen aylık oran bulunur, sonra yıllığa çevrilir.
Σ Tₖ ÷ (1 + r)k = A − peşin masraflar · YMO = (1 + r)12 − 1
Aylık faizi 12 ile çarpmak iki sebeple yanlıştır: faiz bileşikleşir ve peşin masraf krediyi küçültür — aynı taksiti daha az paraya ödersiniz.
Kök, ikiye bölme ile bulunuyor. Newton yöntemi kötü bir başlangıç noktasında ıraksayabiliyor; ikiye bölme her zaman yakınsıyor ve burada hız sorun değil.
Buradaki hata neredeyse yayına gidiyordu
İlk yazımda aramanın yönü ters kurulmuştu. Fonksiyon oranla birlikte azalıyor; artıyormuş gibi arayınca YMO sessizce sıfır dönüyordu. Sayfa açılıyor, hiçbir yerde hata çıkmıyor, yalnızca aracın en önemli rakamı yanlış oluyordu. Testler yakaladı — çünkü test hesabın kendisini değil tanımını sınıyor: bulunan oranla indirgenen taksitlerin toplamı ele geçen tutara eşit olmalı.
5. Erken kapama
Belirli bir taksitten sonra kapatmanın bedeli kalan anaparadır; ödenmemiş taksitlerin içindeki faiz, KKDF ve BSMV yükünden kurtulursunuz. Araç bunu "kaçınılan maliyet" olarak gösterir: kalan taksitlerin toplamı eksi kalan anapara eksi varsa tazminat.
Tüketici kredilerinde erken ödemede kalan faizden indirim yapılması zorunludur. Konut kredilerinde sabit faizli sözleşmelerde erken ödeme tazminatı istenebilir; oran kodda sabit değil, girdi olarak alınır — çünkü kalan vadeye göre değişir.
6. Vergi oranları neden koda gömülmedi?
KKDF ve BSMV oranları Cumhurbaşkanı kararıyla değişebilir ve kredi türüne göre farklıdır. Kodda sabit tutulsalardı, oran değiştiği gün araç sessizce yanlış hesaplamaya başlardı ve bunu kimse fark etmezdi.
Bu yüzden oranlar girdi. Arayüz kredi türüne göre bir varsayılan gösterir, kullanıcı kendi sözleşmesindeki oranı girer. Çekirdek hangi oranı verirseniz onunla doğru hesaplar. Garanti edilen şey aritmetiktir, oranın güncelliği değil — ve sayfa bunu açıkça söyler.
7. Testler
Hesap katmanı arayüzden ayrı yazılmıştır ve tarayıcısız çalıştırılabilir.
- Formül doğrulaması — elde hesaplanabilir durum: 100.000 TL, aylık %1, 12 ay → 8.884,88 TL.
- Planın kapanması — her satır tam kapanıyor mu, anapara toplamı krediye eşit mi, kalan borç hiç artıyor mu.
- YMO'nun tanımı — bulunan oranla indirgenen ödemeler ele geçen tutara eşit mi; masrafsız kredide YMO gerçekten (1+i)12−1 mi.
- Vergiler — faizin üzerinden mi alınıyor, anaparadan mı.
- Erken kapama ve ek ödeme — yön ve büyüklük tutarlı mı.
- 200 rastgele kredi — rastgele tutar, faiz, vade ve vergi bileşimlerinde anapara kuruşu kuruşuna kapanıyor mu.
Toplam 64 test, her değişiklikte otomatik çalışır; kırıldığında yayın durur. Bu sayfadaki her iddianın karşılığı çalıştırılabilir bir testtir.
8. Neyi hesaplamıyor?
Sınırları söylemek, ne yaptığını söylemek kadar önemli:
- Gün sayımı. Bankalar 30/360 ya da gerçek gün gibi farklı yöntemler kullanabilir; bu araç aylık dönem varsayar. Sapma genellikle birkaç lira düzeyindedir.
- Değişken faiz. Sabit faizli kredi varsayılır; endekse bağlı krediler kapsam dışıdır.
- Ödeme atlamalı ve balon ödemeli planlar hesaplanmaz.
- Enflasyon. Sonuçlar nominaldir; reel maliyet hesaplanmaz.
- Kredi notu ve onay. Araç bir teklif değildir, bağlayıcı değildir.