כמה ריבית תשלמו על הלוואה ללא ריבית?

באופן ספיציפי, נתקלתי בתופעה שוב במסגרי חיפושי הרכב שלי. למרבה הצער, התופעה הרבה יותר נפוצה. היא בונה על בילבול קל של המשתמש. הנה איך שזה עובד:

אתם מבקשים הצעת מחיר. במקרה שלי – ניסאן טידה. אתם מקבלים את התשובה הבאה: הרכב עולה 117 אלף שקל. במסגרת הסכם שיש לחברת ניסאן עם בנק לאומי, אתם יכולים לשלם מתוך הסכום 50 אלף שקל כהלוואה ב-36 תשלומים חודשיים, ללא ריבית וללא הצמדה (כלומר, 36 תשלומים של 1388.89 שקלים). לחליפין, אם תשלמו במזומן, תקבלו הנחה של 3,500 שקל. ועכשיו לחידה היומית לקוראים – כמה ריבית אתם משלמים על ההלוואה?

אם לא מצאתם שיש ריבית, הצליחו לעבוד עליכם. אם מצאתם שיש ריבית, אבל אין לכם מושג איך להתחיל לחשב אותה, ברוכים הבאים לעולם האמיתי. חישוב של ריבית דריבית מתוך הלוואת תשלומים זו פעולה יחסית מסובכת, ובכל מקום שאתם פונים מנגנים על העובדה הזו כדי לבלבל אתכם.

בואו נתחיל עם השאלה הראשונה – מדוע יש פה בכלל ריבית? את התשלום על הרכב אפשר לחלק לשני חלקים. החלק הראשון הוא בגודל של 67 אלף שקלים, ואותו אתם משלמים במזומן בכל מקרה. מכיוון שזה המצב בואו נתעלם מקיומו. זה משאיר לנו שתי אופציות לתשלום:
– לשלם 46.5 אלף שקלים במזומן
– לשלם 36 תשלומים של 1388.89 כל אחד

מרגע שעשינו את הניתוח, אפשר כבר להתחיל להבין איפה מגיעה הריבית. גודל ההלוואה איננו של 50 אלף שקלים. גודל ההלוואה הוא של 46.5 אלף שקלים בלבד. אותם 3500 שקלים שאנחנו משלמים יותר במקרה השני הם הריבית שאנחנו משלמים על ההלוואה. את אותו החישוב חייבים לעשות בכל פעם שלוקחים הלוואה, על כל תשלום שמשלמים במועד לקיחת ההלוואה. באותו אופן, אם הלוותם 10,000 שקלים מהבנק, הוא לקח 1000 שקל “עמלת עריכת מסמכים”, הרי שבעצם לוויתם רק 9,000. פעם הבנקים היו קוראים לתרגיל הזה “החזר ראשון במעמד מתן ההלוואה”, עד שתביעה משפטית טענה שהם עוברים את ריבית המקסימום בשיטה הזו, והנוהג הוצא מחוץ לחוק. הבנקים היום קוראים לזה “עמלת עריכת מסמכים” ועושים את אותו הדבר בדיוק. שימו לב.

כמה הריבית השנתית אם לווינו 46.5 אלף שקל ושילמנו 3,500 שקל ריבית? הנה גישה נאיבית לפתרון. בואו נבדוק כמה זה 3,500 מתוך 46.5 אלף (7.5%), נחלק בשלוש (בגלל שיש פה שלוש שנים), וקיבלנו 2.5 אחוז שנתי. זוהי ריבית מצויינת, למעט בעיה אחת קטנה – זו לא הריבית במקרה הזה. גם אם במקום לחלק בשלוש נבצע חישוב של ריבית דריבית על שלוש שנים נקבל ריבית מצויינת – 2.4%, וגם היא ריבית שאין קשר בינה לבין הריבית בפועל. הסיבה היא מאוד פשוטה – החישוב הזה מתאים למצב שבו קיבלנו 46,500 שקל היום, והחזרנו 50,000 בעוד שלוש שנים. בפועל, אנחנו מתחילים לשלם את ההלוואה החל מחודש אחד בעתיד, וברור שהחזרים מוקדמים יותר מעלים את רמת הריבית בפועל. ברור שמעלים, אבל לא ברור בכמה.

אני לא אלאה אתכם בפרטים של איך בדיוק הולך החישוב. לא מדובר על משהו מאוד מסובך, אבל כן מדובר על משהו שדורש חיפוש. כתבתי תוכנה שמחשבת את הנתון הזה ממש, ואתם מוזמנים להעתיק אותה מכאן. מותר להשתמש בה באופן חופשי תחת רשיון ה-GPL גרסה 2 או מאוחר יותר. בגדול, כל מה שהתוכנה עושה זה חיפוש בינארי על הריבית עד שהיא מוצאת ריבית שמייצרת שגיאה של פחות מעשירית האגורה.

למי שתהה – הריבית על ההלוואה נטולת הריבית שבדוגמא שלנו היא 4.878% שנתית. לא ריבית מאוד גבוהה, אבל גם מאוד רחוק מלהיות נטול ריבית לחלוטין.

עיצוב קוד המקור באדיבות GNU enscript 1.6.4
התוכנה היא משהו מאוד מהיר שהדבקתי יחד כדי לקבל תוצאה. תוכנה אמיתית אמורה לקבל את הפרמטרים בצורה יותר דינאמית, ורצוי שתהיה לה גרסה ל-Palm Pilot כדי שאני אוכל להסתובב איתה עלי כשאני צריך אותה.

שחר

עדכון:
הוספתי לתשלום החודשי את עמלת השורה שהבנק לוקח, כדי לדעת כמה עולה לי ההלוואה. מדובר על תוספת של 1.2 שקלים לכל תשלום חודשי. לכאורה מדובר בהבדל שולי לחלוטין, אבל בפועל זה העלה את הריבית השנתית מ-4.88% ל-4.94%. עמלת השורה מוסיפה כמעט עשירית האחוז לריבית שאני משלם בפועל על ההלוואה!

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

const double sum=46500;
const double monthly=1388.89;
const int num_months=36;
const double end_payment=0;

double calc_remainder( double sum, int num_months, double monthly_payment, double interest ) {
    while( num_months>0 ) {
        sum*=interest;
        sum-=monthly_payment;
        num_months--;
    }

    return sum;
}

int main()
{
    double max_interest=5; // No one will ask for more than 400% monthly interest (I hope)
    double min_interest=1; // No one will offer less than 0% interest either

    // Make sure the boundaries are ok
    if( calc_remainder( sum, num_months, monthly, max_interest )<end_payment ) {
        printf("Real monthly interest rate is over 400%%!!!\\n");

        return 1;
    }

    if( calc_remainder( sum, num_months, monthly, min_interest )>end_payment ) {
        printf("Real monthly interest rate is less than 0%%. Please email the contact details of\\n"
            "the bank that made you this offer to shachar@shemesh.biz\\n");

        return 1;
    }

    printf("Checking how much is the interest if we pay %d monthly payments, %g each, to repay a %g loan with %g left at the end\\n",
        num_months, monthly, sum, end_payment );

    double remainder=end_payment+1;
    while( fabs(remainder-end_payment)>0.001 ) {
        double midpoint=(max_interest+min_interest)/2;
        remainder=calc_remainder( sum, num_months, monthly, midpoint );

        printf("At %g%% monthly interest (%g%% yearly) we would be left with %g at the end\\n", (midpoint-1)*100,
            (pow(midpoint, 12)-1)*100, remainder );

        if( remainder>end_payment ) {
            // After paying monthly for months at midpoint interest rate, we still need to pay some at the end. 
            // We over estimated the interest rate
            max_interest=midpoint;
        } else if( remainder<end_payment ) {
            min_interest=midpoint;
        } else {
            // Exact match - highly unlikely
            printf("This is exactly the interest rate\\n");

            return 0;
        }
    }

    printf("This interest is close enough to the actual interest\\n");

    return 0;
}

מאת

שחר שמש

מייסד–שותף וחבר ועד בתנועה לזכויות דיגיטליות מייסד שותף בעמותת „המקור”. פעיל קוד פתוח. מפתח שפת התכנות Practical

19 תגובות בנושא “כמה ריבית תשלמו על הלוואה ללא ריבית?”

  1. א. בחירה מצוינת. הטידה היא למעשה רנו סניק (משום שניסאן ורנו הם אותה חברה היום והן חולקות פלטפורמות בדיוק כמו פולקסווגן וסקודה). רנו סניק הוא רכב מצוין.
    ב. לא הבנתי את הלוגיקה שלך. אני דוקא רואה את זה אחרת: לסוחר המכוניות יש אינטרס להריץ את העיסקה כמה שיותר מהר. הוא מציע לך שתי אופציות. אחת יוצרת עומס בירוקרטי (אישור הלוואה, זמן להעברת הכסף וכו’) ומצד שני מזומן שבו הוא מקבל מיד וביד את הכסף ומסמן וי על עוד לקוח. בסה”כ שיטת תמריץ למכירה. בדיוק כמו ההבדל בין תשלום במזומן לתשלום בכרטיס אשראי.

  2. אגב, מי שלא רוצה לכתוב תוכנה בשביל למצוא את הריבית האפקטיבית יכול להשתמש באקסל, או בגיליון אלקטרוני אחר.
    הנוסחה המתאימה למקרה זה היא:

    =(1+RATE(36,-1388.89,46500,,))^12-1

  3. לפי הבנתי וידיעתי, תשלומי ריבית זהו טור הנדסי פשוט ולכן נקבל:
    ( S = P * (q**n – 1) / (q – 1
    כאשר S הוא הסכום המתקבל, P התשלום הקבוע, q הוא המנה לתקופה, n הוא מספר התקופות. (q = (1 + r/1200 כאשר r היא הריבית השנתית באחוזים והתקופה היא חודש.
    ע”י עיבוד נוסחה זו אפשר להגיע לחישוב המתכנס (באיטיות, אבל מתכנס) :
    (r = 1200 * ( ( S / P * r / 1200 + 1 ) ** ( 1 / n
    ולערך התחלתי ל-R אפשר לקחת ערך נאיבי של:
    (r= 100 * (S / P) / n – 1 ) / ( ( n / 12) * 2 שבמקרה זה נותן 5.02%
    והריבית מתכנסת לפי חישובי לערך 4.9243% לא כולל עמלות אחרות.

  4. על מנת לבצע חישוב מקורב בלי מחשב מתוחכם צריך לחשב את הדברים הבאים (ניתן לחשב עם המחשבון בסלולארי שיש לכל אחד.
    1. הריבית הגלומה כפי שאתה חישבת 1-(סך תשלום במזומן)/(סך תשלום באשראי).
    2. משך החים הממוצע של ההלואה (בשנים) – כאשר משלמים בתשלומים שווים מדובר בחצי התקופה – במקרה שלך 1.5 שנים.
    הריבית השנתית הגלומה – חלוקה של הריבית הגלומה במח”מ כלומר 7.5/1.5 ~ 5%.

  5. ממש לא. מדובר בשילוב של טור הנדסי (הריבית) והתשלומים (פעולת חיסור). אי אפשר להגיד “זהו פשוט …”, ולראיה הריבית האחרת שקיבלת.

    בהחלט יכול להיות שאתה מסוגל להראות שהשגיאה שאתה מקבל היא תמיד קטנה, ואז בהחלט יכול להיות שמדובר פה בחישוב שימושי. עד שלא הראית את זה, וכשהריבית שהם לוקחים כל כך קרובה לריבית בשוק, עדיף לחשב מדוייק.

    שחר

  6. מזכיר לי מקרה שקרה לפני כמה חודשים. הלכנו לקנות שטיח. המוכר אמר לנו שהוא עולה 2500 שקל ועכשיו במבצע – שלושה תשלומים חדשיים ללא ריבית. בסדר, אמרנו, ושאלנו אם יש הנחה על תשלום במזומן (כלומר מיידי בכרטיס אשראי). המוכר חשב רגע, וזרק, “לא ממש שווה. אני יכול להוריד 100 ש”ח”.

    עכשיו נחשב. שלושה תשלומים חדשיים שקול בערך לדחיה של חודש בתשלום. על זה צריך לשלם 100 ש”ח יותר, כלומר 4%. בחישוב גס, מדובר על 48% ריבית שנתית. בחישוב יותר מדוייק עם אקסל מגיעים לריבית שנתית עוד יותר מזעזעת – 61%. כמובן ששילמנו בתשלום אחד.

  7. לי יוצא ריבית שנתית של “רק” 27.86%. עדיין מזעזע, אבל לא בכיוון הכללי של מה שאתה מתאר.

    לאחד מאיתנו יש טעות בחישוב

    שחר

  8. ההלוואה שאתה מקבל היא של 1567 ש”ח (2400-833) לתקופה ממוצעת של חודש וחצי.
    כלומר ריבית של 51%. כאשר מחשבים באקסל (הפונקציה שנקראת IRR) מתקבלת התוצאה של 64%.

  9. דב, בנוסחה שלך אתה מוריד את התשלום הראשון מיד, מה שלא לגמרי נכון. בכרטיס אשראי התשלום הראשון יורד לאחר חצי חודש בממוצע (ובחלק מהכרטיסים התנאים אפילו טובים יותר).

    בפונק’ RATE באקסל (נוח יותר להשתמש בה מאשר ב IRR) אפשר לראות את ההבדל אם משחקים בפרמטר האחרון, TYPE, שקובע אם התשלום הוא בתחילת תקופה או בסופה.

  10. שגיא,
    ההנחה הסמויה שלי היא שהמזומן הוא תשלום אחד בכרטיס אשראי, במידה שלא (אלא ממש שטרות) אתה צודק.

  11. שחר, אתה טועה, זה טור הנדסי פשוט, ראה כל ספר כלכלה בנושא “ערך נוכחי” – “ערך עתידי”‘. אולי טעיתי בחישוב, אבל לא במושגים.
    ההלואה שאתה מקבל (K) נושאת ריבית ולכן שוויה בסוף התקופה הוא K * Q ** N כאשר Q הוא 1+R – הריבית החודשית,
    כל תשלום יהיה שווה בסוף התקופה P * Q ** J כאשר J הוא מספר החודשים שנשארו עד סוף התקופה. אני מניח שאתה רואה את הטור ההנדסי. כל מה שנשאר הוא להשוות את שווי ההלוואה בסוף התקופה לשווי המצטבר (סכום טור הנדסי) של התשלומים. הבעיה האמיתית היא שאין דרך אלגברית לחלץ את R אלא רק לבצע קירוב וזה מה שהצעתי בנוסחה שלי לעיל.
    דרך אגב, בספרי הכלכלה נהוג להגדיר את הריבית השנתית כחזקה של הריבית החודשית כלומר: RY = ((1 + RM) ** 12) – 1
    בהערה נוספת אני מצרף את התוכנית שכתבתי ואת תוצאותיה

  12. התוכנית (משוחררת תחת GPL) שכתבתי:

    /* RATEFIND: find the yearly rate (YR) for given loan (K), monthly payment (P)
    and no. of payments (N).

    Normal compile – Compile by: ccn $* -lm
    to add to $ap_sys do Compile debug: ccu $* -lm

    Written by Ehud Karni 12/03/08
    */

    #include /* standard I/O library */
    #include /* standard C lib (atoi) */
    #include /* for fabs */

    int main ( int argc, char *argv[] )
    {
    #define EPS 0.00000001
    double K, P, YR, MR=0, NMR, DN ; /* MR, NMR – monthly rate + next value */
    int N ;
    char ui [ 200 ] ; /* user input – up to 200 chars */

    printf ( “\nEnter loan sum: ” ) ;
    fgets ( ui , 200 , stdin ) ;
    K = atof ( ui ) ;

    printf ( “\n\nEnter monthly payment: ” ) ;
    fgets ( ui , 200 , stdin ) ;
    P = atof ( ui ) ;

    printf ( “\n\nEnter no. of payments: ” ) ;
    fgets ( ui , 200 , stdin ) ;
    N = atoi ( ui ) ;
    DN=N ; /* for power function */

    /* Naive value for MR based on: K*(1+MR)**(N/2)=P*N */
    /* Recursive value for MR based on:
    K * (1+MR)**N = P * ((1+MR)**N – 1) / MR */

    NMR = pow ( (P*N/K) , (2.0/DN) ) – 1 ;
    printf ( “Naive monthly rate = %9.6f\n” , NMR ) ;

    while ( fabs (MR-NMR) > EPS )
    {
    double df, ndf ;
    MR = NMR ;
    printf ( “Monthly rate = %11.9f , FV: loan = %10.2f, payments = %10.2f\n” ,
    MR , K * pow ( 1+MR , DN ) , P * ( pow ( 1+MR , DN ) – 1) / MR ) ;
    df = K * pow ( 1+NMR , DN ) – P * ( pow ( 1+NMR , DN ) – 1 ) / NMR ;
    NMR = 1.01 * MR ;
    ndf = K * pow ( 1+NMR , DN ) – P * ( pow ( 1+NMR , DN ) – 1) / NMR ;
    NMR = ( ndf * MR – df * NMR ) / ( ndf – df ) ;
    }

    YR = pow ( 1+MR , 12.0 ) – 1 ; /* yearly rate */
    printf ( “Yearly rate in precent is: %7.4f\n” , YR * 100 ) ;
    return ( 0 ) ;
    }
    /* ====================================================================== */

    יש בעיה עם כוון הכתיבה – שחר נא תקן.

    להלן התוצאות:
    ekc-fs /appl/src/c_rtns/utility 1001
    # ratefind.abs

    Enter loan sum: 46500

    Enter monthly payment: 1388.89

    Enter no. of payments: 36
    Naive monthly rate = 0.004040
    Monthly rate = 0.004039888 , FV: loan = 53763.53, payments = 53702.33
    Monthly rate = 0.003976754 , FV: loan = 53641.96, payments = 53641.81
    Monthly rate = 0.003976601 , FV: loan = 53641.66, payments = 53641.66
    Yearly rate in precent is: 4.8777
    ekc-fs /appl/src/c_rtns/utility 1001
    # ratefind.abs

    Enter loan sum: 46500

    Enter monthly payment: 1390.20

    Enter no. of payments: 36
    Naive monthly rate = 0.004092
    Monthly rate = 0.004092476 , FV: loan = 53864.99, payments = 53803.50
    Monthly rate = 0.004029140 , FV: loan = 53742.81, payments = 53742.66
    Monthly rate = 0.004028985 , FV: loan = 53742.51, payments = 53742.51
    Yearly rate in precent is: 4.9434
    ekc-fs /appl/src/c_rtns/utility 1001

  13. אפילו אם כן, לי יש פתרון שלוקח לא זמן לוגריתמי להגיע לתשובה. לך יש פתרון שעל פי טענתך אתה מתכנס לאט.

    עדיין, מטריד אותי שהפתרון שאתה טוען שיש לך לא מתכנס לאותם הערכים כמו האחרים שפתרו פה.

    שחר

  14. זה תלוי מתי יורדים התשלומים. זה יוצא פחות אם אתה מניח שיש זמן עד התשלום הראשון (או היחיד) אני הנחתי שהתשלום הראשון (או היחיד) יורד מיד, ואח”כ מדי חודש. זה קורה אם אני קונה ב-1 בחודש והויזה יורדת ב-2.

    בכל מקרה, 30% או 60% – אף אחד לא היה לוקח הלוואה כזו. זה רק ש-100 שקל נשמע כמו סכום קטן, ותשלומים נשמע כמו רעיון טוב תמיד.

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

Bear