Skip to main content

ComparisonType Objects

class ComparisonType(enum.Enum)

Enum for specifying comparison types in loan calculations.


  • RELATIVE_VALUE: Represents a relative value comparison.
  • ACTUAL_VALUE: Represents an actual value comparison.
  • ABSOLUTE_VALUE: Represents an absolute value comparison.

LastPaymentTreatment Objects

class LastPaymentTreatment(LunaModel)

Model defining how the last payment in a loan is treated.


  • treatment_type (str): Type of the last payment treatment.
  • threshold (Decimal): Threshold for determining the treatment type.
  • writedown_amount (Decimal): Amount for writedown.

RepaymentDetails Objects

class RepaymentDetails(LunaModel)

Model capturing details of loan repayments.


  • processing_date (date): The date when the repayment was processed.
  • repayment_due_date (date): The due date for the repayment.
  • repayment_amount (Decimal): The total repayment amount.
  • interest_payment (Decimal): The interest payment portion of the repayment.
  • capital_payment (Decimal): The capital payment portion of the repayment.
  • opening_balance (Decimal): The opening balance before the repayment.
  • closing_balance (Decimal): The closing balance after the repayment.
  • previous_closing_balance (Decimal): The previous closing balance before this repayment.


def calc_annuity(term: int, payment_period_rate: Decimal,
balance: Decimal) -> SixteenDecimal

Calculates the annuity payment for a loan based on term, rate, and balance.


  • term (int): The term length of the loan.
  • payment_period_rate (Decimal): The payment period interest rate.
  • balance (Decimal): The initial loan balance.


  • SixteenDecimal: The calculated annuity payment.


def solve_for_term(target_annuity: Decimal, balance: Decimal,
payment_period_rate: Decimal) -> int | None

Determines the term length for a loan given target annuity, balance, and rate.


  • target_annuity (Decimal): The target annuity payment.
  • balance (Decimal): The initial loan balance.
  • payment_period_rate (Decimal): The payment period interest rate.


  • int | None: The calculated term length or None if it cannot be determined.