Skip to main content
License License Version Version
Github Actions Github Actions Coverage CodeCov
Supported versions Python Versions Wheel Wheel
Status Status Downloads Downloads

amortization

Python library for calculating amortizations and generating amortization schedules

Installation

pip install amortization
pip install amortization[cli]

Usage

Python

Amortization Amount

from amortization.amount import calculate_amortization_amount

amount = calculate_amortization_amount(150000, 0.1, 36)

Amortization Period

from amortization.period import calculate_amortization_period

period = calculate_amortization_period(150000, 0.1, 4840.08)

Amortization Schedule

from amortization.schedule import amortization_schedule

for number, amount, interest, principal, balance in amortization_schedule(150000, 0.1, 36):
    print(number, amount, interest, principal, balance)

Amortization Schedule (using tabulate)

from amortization.schedule import amortization_schedule
from tabulate import tabulate

table = (x for x in amortization_schedule(150000, 0.1, 36))
print(
    tabulate(
        table,
        headers=["Number", "Amount", "Interest", "Principal", "Balance"],
        floatfmt=",.2f",
        numalign="right"
    )
)

Command line

amortize -h
usage: amortize [-h] -P PRINCIPAL -r INTEREST_RATE [-s] [-f {daily,weekly,biweekly,semimonthly,monthly,quarterly,semiyearly,yearly}] (-n PERIOD | -a AMOUNT)

Python library for calculating amortizations and generating amortization schedules

options:
  -h, --help            show this help message and exit
  -s, --schedule        Generate amortization schedule
  -f, --frequency {daily,weekly,biweekly,semimonthly,monthly,quarterly,semiyearly,yearly}
                        Payment frequency
  -n, --period PERIOD   Total number of periods
  -a, --amount AMOUNT   Amortization amount per period

required arguments:
  -P, --principal PRINCIPAL
                        Principal amount
  -r, --interest-rate INTEREST_RATE
                        Interest rate per year
amortize -P 150000 -n 36 -r 0.1             # period
amortize -P 150000 -n 36 -r 0.1 -s          # schedule
amortize -P 150000 -a 4840.08 -r 0.1        # amount
amortize -P 150000 -n 36 -r 0.1 -f weekly   # period (specify payment frequency)
% amortize -P 150000 -n 36 -r 0.1 -s           
Number        Amount    Interest    Principal     Balance
--------  ----------  ----------  -----------  ----------
1           4,840.08    1,250.00     3,590.08  146,409.92
2           4,840.08    1,220.08     3,620.00  142,789.92
3           4,840.08    1,189.92     3,650.16  139,139.76
4           4,840.08    1,159.50     3,680.58  135,459.18
5           4,840.08    1,128.83     3,711.25  131,747.93
6           4,840.08    1,097.90     3,742.18  128,005.75
7           4,840.08    1,066.71     3,773.37  124,232.38
8           4,840.08    1,035.27     3,804.81  120,427.57
9           4,840.08    1,003.56     3,836.52  116,591.05
10          4,840.08      971.59     3,868.49  112,722.56
11          4,840.08      939.35     3,900.73  108,821.83
12          4,840.08      906.85     3,933.23  104,888.60
13          4,840.08      874.07     3,966.01  100,922.59
14          4,840.08      841.02     3,999.06   96,923.53
15          4,840.08      807.70     4,032.38   92,891.15
16          4,840.08      774.09     4,065.99   88,825.16
17          4,840.08      740.21     4,099.87   84,725.29
18          4,840.08      706.04     4,134.04   80,591.25
19          4,840.08      671.59     4,168.49   76,422.76
20          4,840.08      636.86     4,203.22   72,219.54
21          4,840.08      601.83     4,238.25   67,981.29
22          4,840.08      566.51     4,273.57   63,707.72
23          4,840.08      530.90     4,309.18   59,398.54
24          4,840.08      494.99     4,345.09   55,053.45
25          4,840.08      458.78     4,381.30   50,672.15
26          4,840.08      422.27     4,417.81   46,254.34
27          4,840.08      385.45     4,454.63   41,799.71
28          4,840.08      348.33     4,491.75   37,307.96
29          4,840.08      310.90     4,529.18   32,778.78
30          4,840.08      273.16     4,566.92   28,211.86
31          4,840.08      235.10     4,604.98   23,606.88
32          4,840.08      196.72     4,643.36   18,963.52
33          4,840.08      158.03     4,682.05   14,281.47
34          4,840.08      119.01     4,721.07    9,560.40
35          4,840.08       79.67     4,760.41    4,799.99
36          4,839.99       40.00     4,799.99        0.00
Totals    174,242.79   24,242.79   150,000.00

Dependencies

tabulate (optional, required for CLI)

Author

Ronie Martinez

References

Metadata

Release files for amortization 3.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amortization 3.0.1
File Size Uploaded
amortization-3.0.1.tar.gz 5.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for amortization 3.0.1
File Interpreter ABI Platform
amortization-3.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 12.8 kB

Release files / amortization-3.0.1.tar.gz

Download URL amortization-3.0.1.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
32b8920e937f8f3b4ac4c04d4e46554f0ff6850e73b5500d9fb9d0e93c4fab8c
BLAKE2b-256 checksum
How to use checksums
c60eb6f0bed6a80803ee09f56c6a4246e2ce92a7fc552631e0820e03ebf99fd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / amortization-3.0.1-py3-none-any.whl

Download URL amortization-3.0.1-py3-none-any.whl
Size 7.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b48eb6e98d0d4a709ec19cb05ed74eca292c4210532cf26e585c4ac2434992f5
BLAKE2b-256 checksum
How to use checksums
13a94444fa17b9743a38e814caaf564193ff6cb3b738a9e9f7327a8ff052a6a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page