İçeriğe geç
🛠️ToolsShed

Borç Kartopu Hesaplayıcısı

Borç geri ödeme planını kartopu veya çığ stratejisiyle yapın.

Bu araç hakkında

Borç Kartopu Hesaplayıcısı, Kartopu veya Çığ yöntemini kullanarak birden fazla borcun stratejik bir ödeme planı oluşturmanıza yardımcı olur. Birçok insan birden fazla borçla mücadele eder ve büyük bir toplam bakiye ile karşı karşıya kalırken motivasyonunu korumakta zorlanır. Bu araç, her borcun ne zaman ödeneceğini ve minimumların üzerinde fazladan ödemeler yaparak ne kadar faiz tasarrufu sağlayacağını gösteren aylık bir yol haritası sunar.

Hesaplayıcıyı kullanmak için tüm borçlarınızı mevcut bakiye, aylık asgari ödeme ve faiz oranı ile listeleyin, ardından toplam aylık ödeme bütçenizi ayarlayın. Hesaplayıcı, seçilen stratejiye göre borçlarınızı yeniden sıralar: Kartopu yöntemi psikolojik ivme için önce en küçük bakiyeyi önceliklendirir, Çığ yöntemi ise ödenen toplam faizi en aza indirmek için en yüksek faiz oranını hedefler. Saniyeler içinde, tam ödeme çizelgenizi, toplam faizi ve ödenen borçlar sonraki hedef borç için fon serbest bırakırken aydan aya kartopu etkisini görürsünüz.

Kartopu yöntemi genellikle daha yüksek tamamlanma oranına sahiptir çünkü erken kazanımlar duygusal ivme yaratır, Çığ yöntemi ise matematiksel olarak en fazla parayı tasarrufu sağlar. Motivasyon sizin zorluğunuzsa Kartopu'yu, finansta disiplinli iseniz Çığ'ı seçin. Hesaplayıcının sabit oranlar ve ödeme planına sıkı uyum varsaydığını unutmayın; gerçekte yeni ücretlere veya yaşam değişikliklerine uyum sağlamanız gerekebilir. Bunu kesin bir finansal sözleşme yerine motivasyonel bir yol haritası olarak kullanın ve borç durumunuz ezici hissediyorsa bir kredi danışmanına danışmayı düşünün.

Sıkça Sorulan Sorular

Kod Uygulaması

from dataclasses import dataclass, field
from typing import List, Optional

@dataclass
class Debt:
    name: str
    balance: float
    min_payment: float
    apr: float  # Annual Percentage Rate e.g. 0.20 for 20%

    @property
    def monthly_rate(self) -> float:
        return self.apr / 12

@dataclass
class PayoffResult:
    name: str
    months_to_payoff: int
    total_paid: float
    total_interest: float

def debt_snowball(debts: List[Debt], monthly_budget: float) -> List[PayoffResult]:
    """
    Simulate the debt snowball method.
    Debts are sorted by balance (smallest first).
    Extra budget is applied to the current target debt.
    """
    # Sort by balance ascending (snowball)
    queue  = sorted(debts, key=lambda d: d.balance)
    paid   = [False] * len(queue)
    bals   = [d.balance for d in queue]
    totals = [0.0] * len(queue)  # total paid per debt
    month  = 0
    results = []

    while any(not p for p in paid):
        month += 1
        # Find current target: first unpaid debt
        target_idx = next(i for i, p in enumerate(paid) if not p)

        # Calculate total minimums for non-target debts
        minimums_used = sum(
            queue[i].min_payment for i in range(len(queue))
            if not paid[i] and i != target_idx
        )
        extra = monthly_budget - minimums_used

        # Apply payments
        for i, debt in enumerate(queue):
            if paid[i]:
                continue
            payment = extra if i == target_idx else debt.min_payment
            interest = bals[i] * debt.monthly_rate
            principal = min(payment - interest, bals[i])
            bals[i] -= principal
            totals[i] += payment
            if bals[i] <= 0.01:
                paid[i] = True
                results.append(PayoffResult(
                    name=debt.name,
                    months_to_payoff=month,
                    total_paid=totals[i] + bals[i],  # adjust overpayment
                    total_interest=totals[i] - debt.balance
                ))

    return results

# Example
debts = [
    Debt("Credit Card A", balance=2500,  min_payment=75,  apr=0.22),
    Debt("Credit Card B", balance=5000,  min_payment=100, apr=0.18),
    Debt("Car Loan",      balance=8000,  min_payment=200, apr=0.06),
    Debt("Student Loan",  balance=15000, min_payment=150, apr=0.05),
]

results = debt_snowball(debts, monthly_budget=700)

total_interest = sum(r.total_interest for r in results)
print("Debt Snowball Payoff Plan:")
print(f"{'Debt':<20} {'Months':>7} {'Interest Paid':>14}")
for r in results:
    yrs = r.months_to_payoff // 12
    mos = r.months_to_payoff % 12
    print(f"{r.name:<20} {yrs}y {mos:02d}m  ${r.total_interest:>12,.2f}")
print(f"{'Total interest:':<20}        ${total_interest:>12,.2f}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.