@gibme/finance
    Preparing search index...

    @gibme/finance

    @gibme/finance

    A simple collection of financial equations for Node.js and the browser.

    https://gibme-npm.github.io/finance/

    • Node.js >= 22
    npm install @gibme/finance
    
    yarn add @gibme/finance
    
    • Payment - Calculate monthly payment breakdown (principal, interest, balance)
    • Table - Generate a full amortization schedule with optional extra payment support
    • Loan Information - Summarize total interest, savings from extra payments, and effective rates
    • Principal from Payment - Reverse-calculate the loan principal given a known payment amount
    • Annual Percentage Yield (APY) - Convert a nominal rate to its effective annual yield given a compounding period
    • Compound Interest - Calculate the future value of a principal using the compound interest formula
    • Simple Interest - Calculate the future value of a principal using the simple interest formula
    • Simple Interest Loan - Summarize payment, total interest, and effective rate for a simple interest loan
    • Margin - Calculate the margin on a product given cost and selling price
    • Markup - Calculate the markup on a product given cost and selling price
    • Present Value from Future Value - Discount a future value back to its present value at a constant rate
    • SMA - Simple Moving Average
    • EMA - Exponential Moving Average
    • LWMA - Linearly Weighted Moving Average
    • EWMA - Exponentially Weighted Moving Average
    • CMA - Cumulative Moving Average
    import {
    calculate_amortization_loan,
    calculate_compound_interest,
    calculate_apy,
    calculate_sma
    } from '@gibme/finance';

    // 30-year mortgage at 6% with $200 extra/month starting month 1
    const loan = calculate_amortization_loan(200000, 0.06, 360, [
    { month: 1, amount: 200, fill: true }
    ]);
    console.log(loan.payment); // monthly payment
    console.log(loan.months_saved); // months saved by extra payments
    console.log(loan.interest_saved); // interest saved by extra payments

    // Compound interest: $10,000 at 5% compounded monthly for 5 years
    const futureValue = calculate_compound_interest(10000, 0.05, 'monthly', 60);
    console.log(futureValue);

    // APY for 5% compounded daily
    const apy = calculate_apy(0.05, 'daily');
    console.log(apy);

    // Simple moving average with a 3-period window
    const sma = calculate_sma([10, 20, 30, 40, 50], 3);
    console.log(sma); // [20, 30, 40]

    The following compounding periods are supported wherever a CompoundPeriod is accepted:

    daily | weekly | biweekly | semimonthly | monthly | bimonthly | quarterly | semiannually | annually | biannually

    Functions that accept an apr parameter will automatically convert values greater than 1 to a decimal (e.g. 5 becomes 0.05). You can pass either form.

    MIT