"""Formulas from sheet 'Economics' of 'pricing_calculator.xlsx'. Generated by Power Migrate 0.1.0a1 (no-AI mode). One function per logic block, in the order they appear on the sheet; ``model.compute`` runs them in dependency order. """ from .. import xl from ..xl import Book def monthly_payment(book: Book) -> None: r"""Monthly payment Economics!B3 (one cell). Excel (B3): =-PMT(MonthlyRate,TermMonths,Financed,-Balloon) Reads: Inputs!B5, Inputs!B16, Inputs!B17, RateCard!B13, name Balloon, name Financed, name MonthlyRate, name TermMonths """ economics = book['Economics'] economics["B3"] = (-xl.PMT(book.name('MonthlyRate'), book.name('TermMonths'), book.name('Financed'), (-book.name('Balloon')))) def total_interest(book: Book) -> None: r"""Total interest Economics!B4 (one cell). Excel (B4): =SUM(Schedule!E3:E74) Reads: Schedule!E3:E74 """ economics = book['Economics'] schedule = book['Schedule'] economics["B4"] = xl.SUM(schedule["E3:E74"]) def interest_in_first_12_months(book: Book) -> None: r"""Interest in first 12 months Economics!B5 (one cell). Excel (B5): =SUMPRODUCT((Schedule!A3:A74<=12)*Schedule!E3:E74) Reads: Schedule!A3:A74, Schedule!E3:E74 """ economics = book['Economics'] schedule = book['Schedule'] economics["B5"] = xl.SUMPRODUCT((schedule["A3:A74"] <= 12) * schedule["E3:E74"]) def largest_interest_payment(book: Book) -> None: r"""Largest interest payment Economics!B6 (one cell). Excel (B6): =_xlfn.MAXIFS(Schedule!E3:E74,Schedule!A3:A74,"<="&TermMonths) Reads: Inputs!B5, Schedule!A3:A74, Schedule!E3:E74, name TermMonths """ economics = book['Economics'] schedule = book['Schedule'] economics["B6"] = xl.MAXIFS(schedule["E3:E74"], schedule["A3:A74"], xl.concat('<=', book.name('TermMonths'))) def npv_at_hurdle(book: Book) -> None: r"""NPV at hurdle Economics!B7 (one cell). Excel (B7): =Schedule!I2+NPV(Hurdle/12,Schedule!I3:I74) Reads: Inputs!B12, Schedule!I2, Schedule!I3:I74, name Hurdle """ economics = book['Economics'] schedule = book['Schedule'] economics["B7"] = schedule["I2"] + xl.NPV(book.name('Hurdle') / 12, schedule["I3:I74"]) def deal_irr_annual(book: Book) -> None: r"""Deal IRR (annual) Economics!B8 (one cell). Excel (B8): =IRR(Schedule!I2:I74)*12 Reads: Schedule!I2:I74 """ economics = book['Economics'] schedule = book['Schedule'] economics["B8"] = xl.IRR(schedule["I2:I74"]) * 12 def break_even_apr(book: Book) -> None: r"""Break-even APR Economics!B9 (one cell). Excel (B9): =RATE(TermMonths,-B3,Financed-Inputs!B8,-Balloon)*12 Reads: Economics!B3, Inputs!B5, Inputs!B8, Inputs!B16, Inputs!B17, name Balloon, name Financed, name TermMonths """ economics = book['Economics'] inputs = book['Inputs'] economics["B9"] = xl.RATE(book.name('TermMonths'), (-economics["B3"]), book.name('Financed') - inputs["B8"], (-book.name('Balloon'))) * 12 def present_value_of_payments(book: Book) -> None: r"""Present value of payments Economics!B10 (one cell). Excel (B10): =PV(MonthlyRate,TermMonths,-B3,-Balloon) Reads: Economics!B3, Inputs!B5, Inputs!B17, RateCard!B13, name Balloon, name MonthlyRate, name TermMonths """ economics = book['Economics'] economics["B10"] = xl.PV(book.name('MonthlyRate'), book.name('TermMonths'), (-economics["B3"]), (-book.name('Balloon'))) def future_value_of_deposit_at_hurdle(book: Book) -> None: r"""Future value of deposit at hurdle Economics!B11 (one cell). Excel (B11): =FV(Hurdle/12,TermMonths,0,-Inputs!B3*Inputs!B4) Reads: Inputs!B3, Inputs!B4, Inputs!B5, Inputs!B12, name Hurdle, name TermMonths """ economics = book['Economics'] inputs = book['Inputs'] economics["B11"] = xl.FV(book.name('Hurdle') / 12, book.name('TermMonths'), 0, (-inputs["B3"]) * inputs["B4"]) def months_to_repay_half(book: Book) -> None: r"""Months to repay half Economics!B12 (one cell). Excel (B12): =NPER(MonthlyRate,-B3,Financed/2) Reads: Economics!B3, Inputs!B16, RateCard!B13, name Financed, name MonthlyRate """ economics = book['Economics'] economics["B12"] = xl.NPER(book.name('MonthlyRate'), (-economics["B3"]), book.name('Financed') / 2) def commission(book: Book) -> None: r"""Commission Economics!B13 (one cell). Excel (B13): =Financed*0.015 Reads: Inputs!B16, name Financed """ economics = book['Economics'] economics["B13"] = book.name('Financed') * 0.015 def interest_30_360_approximation(book: Book) -> None: r"""Interest (30/360 approximation) Economics!B14 (one cell). Excel (B14): =Financed*APR*TermMonths*30/360 Reads: Inputs!B5, Inputs!B16, RateCard!B12, name APR, name Financed, name TermMonths """ economics = book['Economics'] economics["B14"] = book.name('Financed') * book.name('APR') * book.name('TermMonths') * 30 / 360 def fee_yield(book: Book) -> None: r"""Fee yield Economics!B15 (one cell). Excel (B15): =Inputs!B8/Financed Reads: Inputs!B8, Inputs!B16, name Financed """ economics = book['Economics'] inputs = book['Inputs'] economics["B15"] = inputs["B8"] / book.name('Financed')