AmortizationTable
A loan's payment schedule worked out from its amount, rate and term: each month's principal, interest and balance, grouped by year with the year's totals.
Demo
- Monthly payment
- $1,580.17
- Total interest
- $318,861.58
- Total paid
- $568,861.58
- Paid off
- Nov 2056
20261 paymentPrincipal$226.00Interest$1,354.17Balance$249,774.00
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $226.00 | $1,354.17 | $249,774.00 | |
| 2026 total | $1,580.17 | $226.00 | $1,354.17 | $249,774.00 |
202712 paymentsPrincipal$2,809.45Interest$16,152.59Balance$246,964.55
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $227.23 | $1,352.94 | $249,546.77 | |
| $1,580.17 | $228.46 | $1,351.71 | $249,318.31 | |
| $1,580.17 | $229.70 | $1,350.47 | $249,088.61 | |
| $1,580.17 | $230.94 | $1,349.23 | $248,857.67 | |
| $1,580.17 | $232.19 | $1,347.98 | $248,625.48 | |
| $1,580.17 | $233.45 | $1,346.72 | $248,392.03 | |
| $1,580.17 | $234.71 | $1,345.46 | $248,157.32 | |
| $1,580.17 | $235.98 | $1,344.19 | $247,921.34 | |
| $1,580.17 | $237.26 | $1,342.91 | $247,684.08 | |
| $1,580.17 | $238.55 | $1,341.62 | $247,445.53 | |
| $1,580.17 | $239.84 | $1,340.33 | $247,205.69 | |
| $1,580.17 | $241.14 | $1,339.03 | $246,964.55 | |
| 2027 total | $18,962.04 | $2,809.45 | $16,152.59 | $246,964.55 |
202812 paymentsPrincipal$2,997.60Interest$15,964.44Balance$243,966.95
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $242.45 | $1,337.72 | $246,722.10 | |
| $1,580.17 | $243.76 | $1,336.41 | $246,478.34 | |
| $1,580.17 | $245.08 | $1,335.09 | $246,233.26 | |
| $1,580.17 | $246.41 | $1,333.76 | $245,986.85 | |
| $1,580.17 | $247.74 | $1,332.43 | $245,739.11 | |
| $1,580.17 | $249.08 | $1,331.09 | $245,490.03 | |
| $1,580.17 | $250.43 | $1,329.74 | $245,239.60 | |
| $1,580.17 | $251.79 | $1,328.38 | $244,987.81 | |
| $1,580.17 | $253.15 | $1,327.02 | $244,734.66 | |
| $1,580.17 | $254.52 | $1,325.65 | $244,480.14 | |
| $1,580.17 | $255.90 | $1,324.27 | $244,224.24 | |
| $1,580.17 | $257.29 | $1,322.88 | $243,966.95 | |
| 2028 total | $18,962.04 | $2,997.60 | $15,964.44 | $243,966.95 |
202912 paymentsPrincipal$3,198.34Interest$15,763.70Balance$240,768.61
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $258.68 | $1,321.49 | $243,708.27 | |
| $1,580.17 | $260.08 | $1,320.09 | $243,448.19 | |
| $1,580.17 | $261.49 | $1,318.68 | $243,186.70 | |
| $1,580.17 | $262.91 | $1,317.26 | $242,923.79 | |
| $1,580.17 | $264.33 | $1,315.84 | $242,659.46 | |
| $1,580.17 | $265.76 | $1,314.41 | $242,393.70 | |
| $1,580.17 | $267.20 | $1,312.97 | $242,126.50 | |
| $1,580.17 | $268.65 | $1,311.52 | $241,857.85 | |
| $1,580.17 | $270.11 | $1,310.06 | $241,587.74 | |
| $1,580.17 | $271.57 | $1,308.60 | $241,316.17 | |
| $1,580.17 | $273.04 | $1,307.13 | $241,043.13 | |
| $1,580.17 | $274.52 | $1,305.65 | $240,768.61 | |
| 2029 total | $18,962.04 | $3,198.34 | $15,763.70 | $240,768.61 |
203012 paymentsPrincipal$3,412.56Interest$15,549.48Balance$237,356.05
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $276.01 | $1,304.16 | $240,492.60 | |
| $1,580.17 | $277.50 | $1,302.67 | $240,215.10 | |
| $1,580.17 | $279.00 | $1,301.17 | $239,936.10 | |
| $1,580.17 | $280.52 | $1,299.65 | $239,655.58 | |
| $1,580.17 | $282.04 | $1,298.13 | $239,373.54 | |
| $1,580.17 | $283.56 | $1,296.61 | $239,089.98 | |
| $1,580.17 | $285.10 | $1,295.07 | $238,804.88 | |
| $1,580.17 | $286.64 | $1,293.53 | $238,518.24 | |
| $1,580.17 | $288.20 | $1,291.97 | $238,230.04 | |
| $1,580.17 | $289.76 | $1,290.41 | $237,940.28 | |
| $1,580.17 | $291.33 | $1,288.84 | $237,648.95 | |
| $1,580.17 | $292.90 | $1,287.27 | $237,356.05 | |
| 2030 total | $18,962.04 | $3,412.56 | $15,549.48 | $237,356.05 |
203112 paymentsPrincipal$3,641.09Interest$15,320.95Balance$233,714.96
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $294.49 | $1,285.68 | $237,061.56 | |
| $1,580.17 | $296.09 | $1,284.08 | $236,765.47 | |
| $1,580.17 | $297.69 | $1,282.48 | $236,467.78 | |
| $1,580.17 | $299.30 | $1,280.87 | $236,168.48 | |
| $1,580.17 | $300.92 | $1,279.25 | $235,867.56 | |
| $1,580.17 | $302.55 | $1,277.62 | $235,565.01 | |
| $1,580.17 | $304.19 | $1,275.98 | $235,260.82 | |
| $1,580.17 | $305.84 | $1,274.33 | $234,954.98 | |
| $1,580.17 | $307.50 | $1,272.67 | $234,647.48 | |
| $1,580.17 | $309.16 | $1,271.01 | $234,338.32 | |
| $1,580.17 | $310.84 | $1,269.33 | $234,027.48 | |
| $1,580.17 | $312.52 | $1,267.65 | $233,714.96 | |
| 2031 total | $18,962.04 | $3,641.09 | $15,320.95 | $233,714.96 |
203212 paymentsPrincipal$3,884.96Interest$15,077.08Balance$229,830.00
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $314.21 | $1,265.96 | $233,400.75 | |
| $1,580.17 | $315.92 | $1,264.25 | $233,084.83 | |
| $1,580.17 | $317.63 | $1,262.54 | $232,767.20 | |
| $1,580.17 | $319.35 | $1,260.82 | $232,447.85 | |
| $1,580.17 | $321.08 | $1,259.09 | $232,126.77 | |
| $1,580.17 | $322.82 | $1,257.35 | $231,803.95 | |
| $1,580.17 | $324.57 | $1,255.60 | $231,479.38 | |
| $1,580.17 | $326.32 | $1,253.85 | $231,153.06 | |
| $1,580.17 | $328.09 | $1,252.08 | $230,824.97 | |
| $1,580.17 | $329.87 | $1,250.30 | $230,495.10 | |
| $1,580.17 | $331.65 | $1,248.52 | $230,163.45 | |
| $1,580.17 | $333.45 | $1,246.72 | $229,830.00 | |
| 2032 total | $18,962.04 | $3,884.96 | $15,077.08 | $229,830.00 |
203312 paymentsPrincipal$4,145.13Interest$14,816.91Balance$225,684.87
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $335.26 | $1,244.91 | $229,494.74 | |
| $1,580.17 | $337.07 | $1,243.10 | $229,157.67 | |
| $1,580.17 | $338.90 | $1,241.27 | $228,818.77 | |
| $1,580.17 | $340.73 | $1,239.44 | $228,478.04 | |
| $1,580.17 | $342.58 | $1,237.59 | $228,135.46 | |
| $1,580.17 | $344.44 | $1,235.73 | $227,791.02 | |
| $1,580.17 | $346.30 | $1,233.87 | $227,444.72 | |
| $1,580.17 | $348.18 | $1,231.99 | $227,096.54 | |
| $1,580.17 | $350.06 | $1,230.11 | $226,746.48 | |
| $1,580.17 | $351.96 | $1,228.21 | $226,394.52 | |
| $1,580.17 | $353.87 | $1,226.30 | $226,040.65 | |
| $1,580.17 | $355.78 | $1,224.39 | $225,684.87 | |
| 2033 total | $18,962.04 | $4,145.13 | $14,816.91 | $225,684.87 |
203412 paymentsPrincipal$4,422.74Interest$14,539.30Balance$221,262.13
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $357.71 | $1,222.46 | $225,327.16 | |
| $1,580.17 | $359.65 | $1,220.52 | $224,967.51 | |
| $1,580.17 | $361.60 | $1,218.57 | $224,605.91 | |
| $1,580.17 | $363.55 | $1,216.62 | $224,242.36 | |
| $1,580.17 | $365.52 | $1,214.65 | $223,876.84 | |
| $1,580.17 | $367.50 | $1,212.67 | $223,509.34 | |
| $1,580.17 | $369.49 | $1,210.68 | $223,139.85 | |
| $1,580.17 | $371.50 | $1,208.67 | $222,768.35 | |
| $1,580.17 | $373.51 | $1,206.66 | $222,394.84 | |
| $1,580.17 | $375.53 | $1,204.64 | $222,019.31 | |
| $1,580.17 | $377.57 | $1,202.60 | $221,641.74 | |
| $1,580.17 | $379.61 | $1,200.56 | $221,262.13 | |
| 2034 total | $18,962.04 | $4,422.74 | $14,539.30 | $221,262.13 |
203512 paymentsPrincipal$4,718.93Interest$14,243.11Balance$216,543.20
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $381.67 | $1,198.50 | $220,880.46 | |
| $1,580.17 | $383.73 | $1,196.44 | $220,496.73 | |
| $1,580.17 | $385.81 | $1,194.36 | $220,110.92 | |
| $1,580.17 | $387.90 | $1,192.27 | $219,723.02 | |
| $1,580.17 | $390.00 | $1,190.17 | $219,333.02 | |
| $1,580.17 | $392.12 | $1,188.05 | $218,940.90 | |
| $1,580.17 | $394.24 | $1,185.93 | $218,546.66 | |
| $1,580.17 | $396.38 | $1,183.79 | $218,150.28 | |
| $1,580.17 | $398.52 | $1,181.65 | $217,751.76 | |
| $1,580.17 | $400.68 | $1,179.49 | $217,351.08 | |
| $1,580.17 | $402.85 | $1,177.32 | $216,948.23 | |
| $1,580.17 | $405.03 | $1,175.14 | $216,543.20 | |
| 2035 total | $18,962.04 | $4,718.93 | $14,243.11 | $216,543.20 |
203612 paymentsPrincipal$5,034.97Interest$13,927.07Balance$211,508.23
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $407.23 | $1,172.94 | $216,135.97 | |
| $1,580.17 | $409.43 | $1,170.74 | $215,726.54 | |
| $1,580.17 | $411.65 | $1,168.52 | $215,314.89 | |
| $1,580.17 | $413.88 | $1,166.29 | $214,901.01 | |
| $1,580.17 | $416.12 | $1,164.05 | $214,484.89 | |
| $1,580.17 | $418.38 | $1,161.79 | $214,066.51 | |
| $1,580.17 | $420.64 | $1,159.53 | $213,645.87 | |
| $1,580.17 | $422.92 | $1,157.25 | $213,222.95 | |
| $1,580.17 | $425.21 | $1,154.96 | $212,797.74 | |
| $1,580.17 | $427.52 | $1,152.65 | $212,370.22 | |
| $1,580.17 | $429.83 | $1,150.34 | $211,940.39 | |
| $1,580.17 | $432.16 | $1,148.01 | $211,508.23 | |
| 2036 total | $18,962.04 | $5,034.97 | $13,927.07 | $211,508.23 |
203712 paymentsPrincipal$5,372.18Interest$13,589.86Balance$206,136.05
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $434.50 | $1,145.67 | $211,073.73 | |
| $1,580.17 | $436.85 | $1,143.32 | $210,636.88 | |
| $1,580.17 | $439.22 | $1,140.95 | $210,197.66 | |
| $1,580.17 | $441.60 | $1,138.57 | $209,756.06 | |
| $1,580.17 | $443.99 | $1,136.18 | $209,312.07 | |
| $1,580.17 | $446.40 | $1,133.77 | $208,865.67 | |
| $1,580.17 | $448.81 | $1,131.36 | $208,416.86 | |
| $1,580.17 | $451.25 | $1,128.92 | $207,965.61 | |
| $1,580.17 | $453.69 | $1,126.48 | $207,511.92 | |
| $1,580.17 | $456.15 | $1,124.02 | $207,055.77 | |
| $1,580.17 | $458.62 | $1,121.55 | $206,597.15 | |
| $1,580.17 | $461.10 | $1,119.07 | $206,136.05 | |
| 2037 total | $18,962.04 | $5,372.18 | $13,589.86 | $206,136.05 |
203812 paymentsPrincipal$5,731.96Interest$13,230.08Balance$200,404.09
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $463.60 | $1,116.57 | $205,672.45 | |
| $1,580.17 | $466.11 | $1,114.06 | $205,206.34 | |
| $1,580.17 | $468.64 | $1,111.53 | $204,737.70 | |
| $1,580.17 | $471.17 | $1,109.00 | $204,266.53 | |
| $1,580.17 | $473.73 | $1,106.44 | $203,792.80 | |
| $1,580.17 | $476.29 | $1,103.88 | $203,316.51 | |
| $1,580.17 | $478.87 | $1,101.30 | $202,837.64 | |
| $1,580.17 | $481.47 | $1,098.70 | $202,356.17 | |
| $1,580.17 | $484.07 | $1,096.10 | $201,872.10 | |
| $1,580.17 | $486.70 | $1,093.47 | $201,385.40 | |
| $1,580.17 | $489.33 | $1,090.84 | $200,896.07 | |
| $1,580.17 | $491.98 | $1,088.19 | $200,404.09 | |
| 2038 total | $18,962.04 | $5,731.96 | $13,230.08 | $200,404.09 |
203912 paymentsPrincipal$6,115.83Interest$12,846.21Balance$194,288.26
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $494.65 | $1,085.52 | $199,909.44 | |
| $1,580.17 | $497.33 | $1,082.84 | $199,412.11 | |
| $1,580.17 | $500.02 | $1,080.15 | $198,912.09 | |
| $1,580.17 | $502.73 | $1,077.44 | $198,409.36 | |
| $1,580.17 | $505.45 | $1,074.72 | $197,903.91 | |
| $1,580.17 | $508.19 | $1,071.98 | $197,395.72 | |
| $1,580.17 | $510.94 | $1,069.23 | $196,884.78 | |
| $1,580.17 | $513.71 | $1,066.46 | $196,371.07 | |
| $1,580.17 | $516.49 | $1,063.68 | $195,854.58 | |
| $1,580.17 | $519.29 | $1,060.88 | $195,335.29 | |
| $1,580.17 | $522.10 | $1,058.07 | $194,813.19 | |
| $1,580.17 | $524.93 | $1,055.24 | $194,288.26 | |
| 2039 total | $18,962.04 | $6,115.83 | $12,846.21 | $194,288.26 |
204012 paymentsPrincipal$6,525.42Interest$12,436.62Balance$187,762.84
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $527.78 | $1,052.39 | $193,760.48 | |
| $1,580.17 | $530.63 | $1,049.54 | $193,229.85 | |
| $1,580.17 | $533.51 | $1,046.66 | $192,696.34 | |
| $1,580.17 | $536.40 | $1,043.77 | $192,159.94 | |
| $1,580.17 | $539.30 | $1,040.87 | $191,620.64 | |
| $1,580.17 | $542.22 | $1,037.95 | $191,078.42 | |
| $1,580.17 | $545.16 | $1,035.01 | $190,533.26 | |
| $1,580.17 | $548.11 | $1,032.06 | $189,985.15 | |
| $1,580.17 | $551.08 | $1,029.09 | $189,434.07 | |
| $1,580.17 | $554.07 | $1,026.10 | $188,880.00 | |
| $1,580.17 | $557.07 | $1,023.10 | $188,322.93 | |
| $1,580.17 | $560.09 | $1,020.08 | $187,762.84 | |
| 2040 total | $18,962.04 | $6,525.42 | $12,436.62 | $187,762.84 |
204112 paymentsPrincipal$6,962.45Interest$11,999.59Balance$180,800.39
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $563.12 | $1,017.05 | $187,199.72 | |
| $1,580.17 | $566.17 | $1,014.00 | $186,633.55 | |
| $1,580.17 | $569.24 | $1,010.93 | $186,064.31 | |
| $1,580.17 | $572.32 | $1,007.85 | $185,491.99 | |
| $1,580.17 | $575.42 | $1,004.75 | $184,916.57 | |
| $1,580.17 | $578.54 | $1,001.63 | $184,338.03 | |
| $1,580.17 | $581.67 | $998.50 | $183,756.36 | |
| $1,580.17 | $584.82 | $995.35 | $183,171.54 | |
| $1,580.17 | $587.99 | $992.18 | $182,583.55 | |
| $1,580.17 | $591.18 | $988.99 | $181,992.37 | |
| $1,580.17 | $594.38 | $985.79 | $181,397.99 | |
| $1,580.17 | $597.60 | $982.57 | $180,800.39 | |
| 2041 total | $18,962.04 | $6,962.45 | $11,999.59 | $180,800.39 |
204212 paymentsPrincipal$7,428.73Interest$11,533.31Balance$173,371.66
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $600.83 | $979.34 | $180,199.56 | |
| $1,580.17 | $604.09 | $976.08 | $179,595.47 | |
| $1,580.17 | $607.36 | $972.81 | $178,988.11 | |
| $1,580.17 | $610.65 | $969.52 | $178,377.46 | |
| $1,580.17 | $613.96 | $966.21 | $177,763.50 | |
| $1,580.17 | $617.28 | $962.89 | $177,146.22 | |
| $1,580.17 | $620.63 | $959.54 | $176,525.59 | |
| $1,580.17 | $623.99 | $956.18 | $175,901.60 | |
| $1,580.17 | $627.37 | $952.80 | $175,274.23 | |
| $1,580.17 | $630.77 | $949.40 | $174,643.46 | |
| $1,580.17 | $634.18 | $945.99 | $174,009.28 | |
| $1,580.17 | $637.62 | $942.55 | $173,371.66 | |
| 2042 total | $18,962.04 | $7,428.73 | $11,533.31 | $173,371.66 |
204312 paymentsPrincipal$7,926.27Interest$11,035.77Balance$165,445.39
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $641.07 | $939.10 | $172,730.59 | |
| $1,580.17 | $644.55 | $935.62 | $172,086.04 | |
| $1,580.17 | $648.04 | $932.13 | $171,438.00 | |
| $1,580.17 | $651.55 | $928.62 | $170,786.45 | |
| $1,580.17 | $655.08 | $925.09 | $170,131.37 | |
| $1,580.17 | $658.63 | $921.54 | $169,472.74 | |
| $1,580.17 | $662.19 | $917.98 | $168,810.55 | |
| $1,580.17 | $665.78 | $914.39 | $168,144.77 | |
| $1,580.17 | $669.39 | $910.78 | $167,475.38 | |
| $1,580.17 | $673.01 | $907.16 | $166,802.37 | |
| $1,580.17 | $676.66 | $903.51 | $166,125.71 | |
| $1,580.17 | $680.32 | $899.85 | $165,445.39 | |
| 2043 total | $18,962.04 | $7,926.27 | $11,035.77 | $165,445.39 |
204412 paymentsPrincipal$8,457.08Interest$10,504.96Balance$156,988.31
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $684.01 | $896.16 | $164,761.38 | |
| $1,580.17 | $687.71 | $892.46 | $164,073.67 | |
| $1,580.17 | $691.44 | $888.73 | $163,382.23 | |
| $1,580.17 | $695.18 | $884.99 | $162,687.05 | |
| $1,580.17 | $698.95 | $881.22 | $161,988.10 | |
| $1,580.17 | $702.73 | $877.44 | $161,285.37 | |
| $1,580.17 | $706.54 | $873.63 | $160,578.83 | |
| $1,580.17 | $710.37 | $869.80 | $159,868.46 | |
| $1,580.17 | $714.22 | $865.95 | $159,154.24 | |
| $1,580.17 | $718.08 | $862.09 | $158,436.16 | |
| $1,580.17 | $721.97 | $858.20 | $157,714.19 | |
| $1,580.17 | $725.88 | $854.29 | $156,988.31 | |
| 2044 total | $18,962.04 | $8,457.08 | $10,504.96 | $156,988.31 |
204512 paymentsPrincipal$9,023.49Interest$9,938.55Balance$147,964.82
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $729.82 | $850.35 | $156,258.49 | |
| $1,580.17 | $733.77 | $846.40 | $155,524.72 | |
| $1,580.17 | $737.74 | $842.43 | $154,786.98 | |
| $1,580.17 | $741.74 | $838.43 | $154,045.24 | |
| $1,580.17 | $745.76 | $834.41 | $153,299.48 | |
| $1,580.17 | $749.80 | $830.37 | $152,549.68 | |
| $1,580.17 | $753.86 | $826.31 | $151,795.82 | |
| $1,580.17 | $757.94 | $822.23 | $151,037.88 | |
| $1,580.17 | $762.05 | $818.12 | $150,275.83 | |
| $1,580.17 | $766.18 | $813.99 | $149,509.65 | |
| $1,580.17 | $770.33 | $809.84 | $148,739.32 | |
| $1,580.17 | $774.50 | $805.67 | $147,964.82 | |
| 2045 total | $18,962.04 | $9,023.49 | $9,938.55 | $147,964.82 |
204612 paymentsPrincipal$9,627.79Interest$9,334.25Balance$138,337.03
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $778.69 | $801.48 | $147,186.13 | |
| $1,580.17 | $782.91 | $797.26 | $146,403.22 | |
| $1,580.17 | $787.15 | $793.02 | $145,616.07 | |
| $1,580.17 | $791.42 | $788.75 | $144,824.65 | |
| $1,580.17 | $795.70 | $784.47 | $144,028.95 | |
| $1,580.17 | $800.01 | $780.16 | $143,228.94 | |
| $1,580.17 | $804.35 | $775.82 | $142,424.59 | |
| $1,580.17 | $808.70 | $771.47 | $141,615.89 | |
| $1,580.17 | $813.08 | $767.09 | $140,802.81 | |
| $1,580.17 | $817.49 | $762.68 | $139,985.32 | |
| $1,580.17 | $821.92 | $758.25 | $139,163.40 | |
| $1,580.17 | $826.37 | $753.80 | $138,337.03 | |
| 2046 total | $18,962.04 | $9,627.79 | $9,334.25 | $138,337.03 |
204712 paymentsPrincipal$10,272.58Interest$8,689.46Balance$128,064.45
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $830.84 | $749.33 | $137,506.19 | |
| $1,580.17 | $835.34 | $744.83 | $136,670.85 | |
| $1,580.17 | $839.87 | $740.30 | $135,830.98 | |
| $1,580.17 | $844.42 | $735.75 | $134,986.56 | |
| $1,580.17 | $848.99 | $731.18 | $134,137.57 | |
| $1,580.17 | $853.59 | $726.58 | $133,283.98 | |
| $1,580.17 | $858.22 | $721.95 | $132,425.76 | |
| $1,580.17 | $862.86 | $717.31 | $131,562.90 | |
| $1,580.17 | $867.54 | $712.63 | $130,695.36 | |
| $1,580.17 | $872.24 | $707.93 | $129,823.12 | |
| $1,580.17 | $876.96 | $703.21 | $128,946.16 | |
| $1,580.17 | $881.71 | $698.46 | $128,064.45 | |
| 2047 total | $18,962.04 | $10,272.58 | $8,689.46 | $128,064.45 |
204812 paymentsPrincipal$10,960.56Interest$8,001.48Balance$117,103.89
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $886.49 | $693.68 | $127,177.96 | |
| $1,580.17 | $891.29 | $688.88 | $126,286.67 | |
| $1,580.17 | $896.12 | $684.05 | $125,390.55 | |
| $1,580.17 | $900.97 | $679.20 | $124,489.58 | |
| $1,580.17 | $905.85 | $674.32 | $123,583.73 | |
| $1,580.17 | $910.76 | $669.41 | $122,672.97 | |
| $1,580.17 | $915.69 | $664.48 | $121,757.28 | |
| $1,580.17 | $920.65 | $659.52 | $120,836.63 | |
| $1,580.17 | $925.64 | $654.53 | $119,910.99 | |
| $1,580.17 | $930.65 | $649.52 | $118,980.34 | |
| $1,580.17 | $935.69 | $644.48 | $118,044.65 | |
| $1,580.17 | $940.76 | $639.41 | $117,103.89 | |
| 2048 total | $18,962.04 | $10,960.56 | $8,001.48 | $117,103.89 |
204912 paymentsPrincipal$11,694.62Interest$7,267.42Balance$105,409.27
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $945.86 | $634.31 | $116,158.03 | |
| $1,580.17 | $950.98 | $629.19 | $115,207.05 | |
| $1,580.17 | $956.13 | $624.04 | $114,250.92 | |
| $1,580.17 | $961.31 | $618.86 | $113,289.61 | |
| $1,580.17 | $966.52 | $613.65 | $112,323.09 | |
| $1,580.17 | $971.75 | $608.42 | $111,351.34 | |
| $1,580.17 | $977.02 | $603.15 | $110,374.32 | |
| $1,580.17 | $982.31 | $597.86 | $109,392.01 | |
| $1,580.17 | $987.63 | $592.54 | $108,404.38 | |
| $1,580.17 | $992.98 | $587.19 | $107,411.40 | |
| $1,580.17 | $998.36 | $581.81 | $106,413.04 | |
| $1,580.17 | $1,003.77 | $576.40 | $105,409.27 | |
| 2049 total | $18,962.04 | $11,694.62 | $7,267.42 | $105,409.27 |
205012 paymentsPrincipal$12,477.82Interest$6,484.22Balance$92,931.45
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $1,009.20 | $570.97 | $104,400.07 | |
| $1,580.17 | $1,014.67 | $565.50 | $103,385.40 | |
| $1,580.17 | $1,020.17 | $560.00 | $102,365.23 | |
| $1,580.17 | $1,025.69 | $554.48 | $101,339.54 | |
| $1,580.17 | $1,031.25 | $548.92 | $100,308.29 | |
| $1,580.17 | $1,036.83 | $543.34 | $99,271.46 | |
| $1,580.17 | $1,042.45 | $537.72 | $98,229.01 | |
| $1,580.17 | $1,048.10 | $532.07 | $97,180.91 | |
| $1,580.17 | $1,053.77 | $526.40 | $96,127.14 | |
| $1,580.17 | $1,059.48 | $520.69 | $95,067.66 | |
| $1,580.17 | $1,065.22 | $514.95 | $94,002.44 | |
| $1,580.17 | $1,070.99 | $509.18 | $92,931.45 | |
| 2050 total | $18,962.04 | $12,477.82 | $6,484.22 | $92,931.45 |
205112 paymentsPrincipal$13,313.48Interest$5,648.56Balance$79,617.97
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $1,076.79 | $503.38 | $91,854.66 | |
| $1,580.17 | $1,082.62 | $497.55 | $90,772.04 | |
| $1,580.17 | $1,088.49 | $491.68 | $89,683.55 | |
| $1,580.17 | $1,094.38 | $485.79 | $88,589.17 | |
| $1,580.17 | $1,100.31 | $479.86 | $87,488.86 | |
| $1,580.17 | $1,106.27 | $473.90 | $86,382.59 | |
| $1,580.17 | $1,112.26 | $467.91 | $85,270.33 | |
| $1,580.17 | $1,118.29 | $461.88 | $84,152.04 | |
| $1,580.17 | $1,124.35 | $455.82 | $83,027.69 | |
| $1,580.17 | $1,130.44 | $449.73 | $81,897.25 | |
| $1,580.17 | $1,136.56 | $443.61 | $80,760.69 | |
| $1,580.17 | $1,142.72 | $437.45 | $79,617.97 | |
| 2051 total | $18,962.04 | $13,313.48 | $5,648.56 | $79,617.97 |
205212 paymentsPrincipal$14,205.12Interest$4,756.92Balance$65,412.85
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $1,148.91 | $431.26 | $78,469.06 | |
| $1,580.17 | $1,155.13 | $425.04 | $77,313.93 | |
| $1,580.17 | $1,161.39 | $418.78 | $76,152.54 | |
| $1,580.17 | $1,167.68 | $412.49 | $74,984.86 | |
| $1,580.17 | $1,174.00 | $406.17 | $73,810.86 | |
| $1,580.17 | $1,180.36 | $399.81 | $72,630.50 | |
| $1,580.17 | $1,186.75 | $393.42 | $71,443.75 | |
| $1,580.17 | $1,193.18 | $386.99 | $70,250.57 | |
| $1,580.17 | $1,199.65 | $380.52 | $69,050.92 | |
| $1,580.17 | $1,206.14 | $374.03 | $67,844.78 | |
| $1,580.17 | $1,212.68 | $367.49 | $66,632.10 | |
| $1,580.17 | $1,219.25 | $360.92 | $65,412.85 | |
| 2052 total | $18,962.04 | $14,205.12 | $4,756.92 | $65,412.85 |
205312 paymentsPrincipal$15,156.45Interest$3,805.59Balance$50,256.40
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $1,225.85 | $354.32 | $64,187.00 | |
| $1,580.17 | $1,232.49 | $347.68 | $62,954.51 | |
| $1,580.17 | $1,239.17 | $341.00 | $61,715.34 | |
| $1,580.17 | $1,245.88 | $334.29 | $60,469.46 | |
| $1,580.17 | $1,252.63 | $327.54 | $59,216.83 | |
| $1,580.17 | $1,259.41 | $320.76 | $57,957.42 | |
| $1,580.17 | $1,266.23 | $313.94 | $56,691.19 | |
| $1,580.17 | $1,273.09 | $307.08 | $55,418.10 | |
| $1,580.17 | $1,279.99 | $300.18 | $54,138.11 | |
| $1,580.17 | $1,286.92 | $293.25 | $52,851.19 | |
| $1,580.17 | $1,293.89 | $286.28 | $51,557.30 | |
| $1,580.17 | $1,300.90 | $279.27 | $50,256.40 | |
| 2053 total | $18,962.04 | $15,156.45 | $3,805.59 | $50,256.40 |
205412 paymentsPrincipal$16,171.53Interest$2,790.51Balance$34,084.87
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $1,307.95 | $272.22 | $48,948.45 | |
| $1,580.17 | $1,315.03 | $265.14 | $47,633.42 | |
| $1,580.17 | $1,322.16 | $258.01 | $46,311.26 | |
| $1,580.17 | $1,329.32 | $250.85 | $44,981.94 | |
| $1,580.17 | $1,336.52 | $243.65 | $43,645.42 | |
| $1,580.17 | $1,343.76 | $236.41 | $42,301.66 | |
| $1,580.17 | $1,351.04 | $229.13 | $40,950.62 | |
| $1,580.17 | $1,358.35 | $221.82 | $39,592.27 | |
| $1,580.17 | $1,365.71 | $214.46 | $38,226.56 | |
| $1,580.17 | $1,373.11 | $207.06 | $36,853.45 | |
| $1,580.17 | $1,380.55 | $199.62 | $35,472.90 | |
| $1,580.17 | $1,388.03 | $192.14 | $34,084.87 | |
| 2054 total | $18,962.04 | $16,171.53 | $2,790.51 | $34,084.87 |
205512 paymentsPrincipal$17,254.54Interest$1,707.50Balance$16,830.33
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $1,395.54 | $184.63 | $32,689.33 | |
| $1,580.17 | $1,403.10 | $177.07 | $31,286.23 | |
| $1,580.17 | $1,410.70 | $169.47 | $29,875.53 | |
| $1,580.17 | $1,418.34 | $161.83 | $28,457.19 | |
| $1,580.17 | $1,426.03 | $154.14 | $27,031.16 | |
| $1,580.17 | $1,433.75 | $146.42 | $25,597.41 | |
| $1,580.17 | $1,441.52 | $138.65 | $24,155.89 | |
| $1,580.17 | $1,449.33 | $130.84 | $22,706.56 | |
| $1,580.17 | $1,457.18 | $122.99 | $21,249.38 | |
| $1,580.17 | $1,465.07 | $115.10 | $19,784.31 | |
| $1,580.17 | $1,473.00 | $107.17 | $18,311.31 | |
| $1,580.17 | $1,480.98 | $99.19 | $16,830.33 | |
| 2055 total | $18,962.04 | $17,254.54 | $1,707.50 | $16,830.33 |
205611 paymentsPrincipal$16,830.33Interest$551.92Balance$0.00
| Date | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| $1,580.17 | $1,489.01 | $91.16 | $15,341.32 | |
| $1,580.17 | $1,497.07 | $83.10 | $13,844.25 | |
| $1,580.17 | $1,505.18 | $74.99 | $12,339.07 | |
| $1,580.17 | $1,513.33 | $66.84 | $10,825.74 | |
| $1,580.17 | $1,521.53 | $58.64 | $9,304.21 | |
| $1,580.17 | $1,529.77 | $50.40 | $7,774.44 | |
| $1,580.17 | $1,538.06 | $42.11 | $6,236.38 | |
| $1,580.17 | $1,546.39 | $33.78 | $4,689.99 | |
| $1,580.17 | $1,554.77 | $25.40 | $3,135.22 | |
| $1,580.17 | $1,563.19 | $16.98 | $1,572.03 | |
| $1,580.55 | $1,572.03 | $8.52 | $0.00 | |
| 2056 total | $17,382.25 | $16,830.33 | $551.92 | $0.00 |
360 payments in allPrincipal $250,000.00 + interest $318,861.58 = $568,861.58
- Monthly payment
- 438,59 €
- Total interest
- 3.052,24 €
- Total paid
- 21.052,24 €
- Paid off
- after 48 payments
Year 112 paymentsPrincipal3.983,26 €Interest1.279,82 €Balance14.016,74 €
| Payment | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| #1 | 438,59 € | 320,09 € | 118,50 € | 17.679,91 € |
| #2 | 438,59 € | 322,20 € | 116,39 € | 17.357,71 € |
| #3 | 438,59 € | 324,32 € | 114,27 € | 17.033,39 € |
| #4 | 438,59 € | 326,45 € | 112,14 € | 16.706,94 € |
| #5 | 438,59 € | 328,60 € | 109,99 € | 16.378,34 € |
| #6 | 438,59 € | 330,77 € | 107,82 € | 16.047,57 € |
| #7 | 438,59 € | 332,94 € | 105,65 € | 15.714,63 € |
| #8 | 438,59 € | 335,14 € | 103,45 € | 15.379,49 € |
| #9 | 438,59 € | 337,34 € | 101,25 € | 15.042,15 € |
| #10 | 438,59 € | 339,56 € | 99,03 € | 14.702,59 € |
| #11 | 438,59 € | 341,80 € | 96,79 € | 14.360,79 € |
| #12 | 438,59 € | 344,05 € | 94,54 € | 14.016,74 € |
| Year 1 total | 5.263,08 € | 3.983,26 € | 1.279,82 € | 14.016,74 € |
Year 212 paymentsPrincipal4.309,57 €Interest953,51 €Balance9.707,17 €
| Payment | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| #13 | 438,59 € | 346,31 € | 92,28 € | 13.670,43 € |
| #14 | 438,59 € | 348,59 € | 90,00 € | 13.321,84 € |
| #15 | 438,59 € | 350,89 € | 87,70 € | 12.970,95 € |
| #16 | 438,59 € | 353,20 € | 85,39 € | 12.617,75 € |
| #17 | 438,59 € | 355,52 € | 83,07 € | 12.262,23 € |
| #18 | 438,59 € | 357,86 € | 80,73 € | 11.904,37 € |
| #19 | 438,59 € | 360,22 € | 78,37 € | 11.544,15 € |
| #20 | 438,59 € | 362,59 € | 76,00 € | 11.181,56 € |
| #21 | 438,59 € | 364,98 € | 73,61 € | 10.816,58 € |
| #22 | 438,59 € | 367,38 € | 71,21 € | 10.449,20 € |
| #23 | 438,59 € | 369,80 € | 68,79 € | 10.079,40 € |
| #24 | 438,59 € | 372,23 € | 66,36 € | 9.707,17 € |
| Year 2 total | 5.263,08 € | 4.309,57 € | 953,51 € | 9.707,17 € |
Year 312 paymentsPrincipal4.662,63 €Interest600,45 €Balance5.044,54 €
| Payment | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| #25 | 438,59 € | 374,68 € | 63,91 € | 9.332,49 € |
| #26 | 438,59 € | 377,15 € | 61,44 € | 8.955,34 € |
| #27 | 438,59 € | 379,63 € | 58,96 € | 8.575,71 € |
| #28 | 438,59 € | 382,13 € | 56,46 € | 8.193,58 € |
| #29 | 438,59 € | 384,65 € | 53,94 € | 7.808,93 € |
| #30 | 438,59 € | 387,18 € | 51,41 € | 7.421,75 € |
| #31 | 438,59 € | 389,73 € | 48,86 € | 7.032,02 € |
| #32 | 438,59 € | 392,30 € | 46,29 € | 6.639,72 € |
| #33 | 438,59 € | 394,88 € | 43,71 € | 6.244,84 € |
| #34 | 438,59 € | 397,48 € | 41,11 € | 5.847,36 € |
| #35 | 438,59 € | 400,09 € | 38,50 € | 5.447,27 € |
| #36 | 438,59 € | 402,73 € | 35,86 € | 5.044,54 € |
| Year 3 total | 5.263,08 € | 4.662,63 € | 600,45 € | 5.044,54 € |
Year 412 paymentsPrincipal5.044,54 €Interest218,46 €Balance0,00 €
| Payment | Amount | Principal | Interest | Balance |
|---|---|---|---|---|
| #37 | 438,59 € | 405,38 € | 33,21 € | 4.639,16 € |
| #38 | 438,59 € | 408,05 € | 30,54 € | 4.231,11 € |
| #39 | 438,59 € | 410,74 € | 27,85 € | 3.820,37 € |
| #40 | 438,59 € | 413,44 € | 25,15 € | 3.406,93 € |
| #41 | 438,59 € | 416,16 € | 22,43 € | 2.990,77 € |
| #42 | 438,59 € | 418,90 € | 19,69 € | 2.571,87 € |
| #43 | 438,59 € | 421,66 € | 16,93 € | 2.150,21 € |
| #44 | 438,59 € | 424,43 € | 14,16 € | 1.725,78 € |
| #45 | 438,59 € | 427,23 € | 11,36 € | 1.298,55 € |
| #46 | 438,59 € | 430,04 € | 8,55 € | 868,51 € |
| #47 | 438,59 € | 432,87 € | 5,72 € | 435,64 € |
| #48 | 438,51 € | 435,64 € | 2,87 € | 0,00 € |
| Year 4 total | 5.263,00 € | 5.044,54 € | 218,46 € | 0,00 € |
48 payments in allPrincipal 18.000,00 € + interest 3.052,24 € = 21.052,24 €
Get it
It needs theme.qwe, as every component does; or take the whole kit, quillo-ui.qwe. Each component brings its own styles to the pages that show it.
$ curl -O https://quillolang.org/components/ui/theme.qwe$ curl -O https://quillolang.org/components/ui/amortization_table.qwemain.qwe
import ui/theme.qwe use theme_cssuse ui/amortization_table.qweroute GET / = <html><head><style>{theme_css}</style></head><body class="ui-root">...</body></html>Example
The code of the preview above.
demos/amortization_table.qwe
view AmortizationTableDemo() { <div.demo-stack> <AmortizationTable id="amortization-table-demo-home" amount={250000} rate={6.5} term={30} start="2026-12-01" open={2}/> <AmortizationTable id="amortization-table-demo-car" amount={18000} rate={7.9} term={48} term_unit="months" currency="EUR" locale="de-DE" open={0} label="Car loan schedule"/> </div>}Source
ui/amortization_table.qwe
// AmortizationTable: a loan's payment schedule, worked out from its amount, rate// and term: each month's payment, how much of it is principal and how much// interest, and what is still owed after it, grouped by year, each year a// <details> whose summary has the year's totals. A line above gives the monthly// payment, the total interest, the total paid and when it is paid off. In// decimals: each month's interest is rounded half up to the cent on what is still// owed, and the last payment is what is left, so the balance ends at zero.//// <AmortizationTable amount={250000} rate={6.5} term={30} start="2026-12-01"/>// <AmortizationTable amount={18000} rate={7.9} term={48} term_unit="months" currency="EUR" locale="de-DE" open={4}/>//// amount: what is borrowed (a number or a decimal). rate: the yearly interest rate,// in percent (6.5). term: how long, in term_unit: "years" (default) or "months".// start: the first payment's date (ISO): rows get dates and years are calendar// years; without it they are "Year 1", "Year 2", ... counted from the first payment.// open: how many years are open to start with (1; 0 for none). currency: ISO code// ("USD"); locale: how amounts and dates are written (the program's; en-US).// summary: false leaves out the line of totals above. label: what screen readers// call it ("Amortization schedule"). id, class.//// amortization_table_rows(amount, rate, months) gives the schedule as a list of// { n, payment, principal, interest, balance } (decimals), for your own use.import ui/theme.qwe use ui_clslet amortization_table_css = css`.ui-amortization { display: grid; gap: 14px; min-width: 0; color: var(--ui-fg); font: 14px/1.45 var(--ui-font); }.ui-amortization-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1px; margin: 0; overflow: hidden; border: 1px solid var(--ui-border); border-radius: var(--ui-radius); background: var(--ui-border); }.ui-amortization-facts div { padding: 12px 14px; background: var(--ui-surface); }.ui-amortization-facts dt { color: var(--ui-muted); font-size: 12px; font-weight: 500; }.ui-amortization-facts dd { margin: 2px 0 0; font-size: 18px; font-weight: 650; font-variant-numeric: tabular-nums; }.ui-amortization-years { display: grid; overflow: hidden; border: 1px solid var(--ui-border); border-radius: var(--ui-radius); background: var(--ui-surface); }.ui-amortization-year + .ui-amortization-year { border-top: 1px solid var(--ui-border); }.ui-amortization-year > summary { display: grid; grid-template-columns: 18px minmax(90px, 1.2fr) repeat(3, minmax(0, 1fr)); align-items: baseline; gap: 4px 12px; padding: 10px 14px; cursor: pointer; list-style: none; font-variant-numeric: tabular-nums; }.ui-amortization-year > summary::-webkit-details-marker { display: none; }.ui-amortization-year > summary::before { content: ""; width: 7px; height: 7px; margin-left: 2px; border-right: 2px solid var(--ui-muted); border-bottom: 2px solid var(--ui-muted); transform: translateY(-2px) rotate(-45deg); transition: transform .15s; }.ui-amortization-year[open] > summary::before { transform: translateY(-4px) rotate(45deg); }.ui-amortization-year > summary:hover { background: var(--ui-subtle); }.ui-amortization-year > summary:focus-visible { outline: none; box-shadow: inset var(--ui-focus); }.ui-amortization-label b { display: block; font-weight: 650; }.ui-amortization-label small, .ui-amortization-sum small { display: block; color: var(--ui-muted); font-size: 12px; }.ui-amortization-sum { text-align: right; font-weight: 600; }.ui-amortization-scroll { overflow-x: auto; border-top: 1px solid var(--ui-border); }.ui-amortization table { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }.ui-amortization th, .ui-amortization td { padding: 6px 14px; text-align: right; white-space: nowrap; }.ui-amortization thead th { color: var(--ui-muted); font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; background: var(--ui-subtle); }.ui-amortization th:first-child, .ui-amortization td:first-child { text-align: left; }.ui-amortization tbody tr:nth-child(even) { background: color-mix(in srgb, var(--ui-subtle) 55%, transparent); }.ui-amortization tbody th { font-weight: 500; }.ui-amortization tfoot td, .ui-amortization tfoot th { border-top: 1px solid var(--ui-border); font-weight: 650; }.ui-amortization-total { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 18px; margin: 0; padding: 0 4px; color: var(--ui-muted); font-size: 13px; }.ui-amortization-total b { color: var(--ui-fg); font-variant-numeric: tabular-nums; }@media (max-width: 560px) { .ui-amortization-year > summary { grid-template-columns: 18px 1fr 1fr; } .ui-amortization-year > summary .ui-amortization-hide { display: none; }}@media (prefers-reduced-motion: reduce) { .ui-amortization-year > summary::before { transition: none; } }`// x to the power n, for a whole n, exactly (pow takes no decimals).fn amortization_table_pow(x: dec, n: int) -> dec { let out = 1m let i = 0 while i < n { out = out * x i += 1 } out}// The monthly payment, rounded half up to the cent (the annuity formula).fn amortization_table_payment(amount: dec, rate: dec, months: int) -> dec { if months <= 0 { return amount } if rate <= 0 { return round(amount / months, 2, "ceiling") } let r = rate / 1200 let f = amortization_table_pow(1m + r, months) round(amount * r * f / (f - 1m), 2, "half_up")}// The schedule: a row per month, { n, payment, principal, interest, balance }.fn amortization_table_rows(amount: dec, rate: dec, months: int) -> list { let pay = amortization_table_payment(amount, rate, months) let r = rate / 1200 let owed = amount let rows = [] let i = 1 while i <= months && owed > 0 { let interest = round(owed * r, 2, "half_up") let principal = i == months || pay - interest > owed ? owed : pay - interest owed = owed - principal rows = rows | push({ n: i, payment: principal + interest, principal, interest, balance: owed }) i += 1 } rows}fn amortization_table_money(x: dec, currency: str, locale: str?) -> str { let m = money.of(x, currency, "half_up") if is_err(m) { return str(x) } locale != null ? money.format(m, locale) : money.format(m)}fn amortization_table_date(d: str, locale: str?, short: bool) -> str = short ? date.format(d, { locale: locale ?? "en-US", pattern: "MMM YYYY" }) : date.format(d, { locale: locale ?? "en-US", style: "medium" })view AmortizationTable(amount, rate, term: int = 30, term_unit: str = "years", start: str? = null, open: int = 1, currency: str = "USD", locale: str? = null, summary: bool = true, label: str = "Amortization schedule", id: str? = null, class: str? = null) { style global amortization_table_css let months = term_unit == "months" ? term : term * 12 let rows = amortization_table_rows(dec(amount), dec(rate), months) let fmt = (x: dec) => amortization_table_money(x, currency, locale) // Each row's year: the calendar year of its date, or its year of the loan. let dated = for row in rows { let d = start != null ? date.add_months(start, row.n - 1) : null merge(row, { date: d, year: d != null ? slice(d, 0, 4) : `Year ${floor((row.n - 1) / 12) + 1}` }) } let years = unique(for row in dated => row.year) let total_interest = dec(sum(for row in rows => row.interest)) let total_paid = dec(sum(for row in rows => row.payment)) let last = len(dated) > 0 ? dated[len(dated) - 1] : null <section class={ui_cls(["ui-amortization", class])} id={id} aria-label={label}> {summary && <dl.ui-amortization-facts> <div><dt>Monthly payment</dt><dd data-key="payment">{len(rows) > 0 ? fmt(rows[0].payment) : fmt(0m)}</dd></div> <div><dt>Total interest</dt><dd data-key="interest">{fmt(total_interest)}</dd></div> <div><dt>Total paid</dt><dd data-key="total">{fmt(total_paid)}</dd></div> <div><dt>Paid off</dt><dd data-key="payoff">{last == null ? "–" : (last.date != null ? amortization_table_date(last.date, locale, true) : `after ${last.n} payments`)}</dd></div> </dl>} <div.ui-amortization-years> {for [i, y] in enumerate(years) { let these = filter(dated, (row) => row.year == y) let principal = sum(for row in these => row.principal) let interest = sum(for row in these => row.interest) let end = these[len(these) - 1].balance <details.ui-amortization-year key={y} open={i < open} data-year={y}> <summary> <span.ui-amortization-label><b>{y}</b><small>{len(these)} {len(these) == 1 ? "payment" : "payments"}</small></span> <span.ui-amortization-sum data-key="principal"><small>Principal</small>{fmt(principal)}</span> <span class="ui-amortization-sum ui-amortization-hide" data-key="interest"><small>Interest</small>{fmt(interest)}</span> <span.ui-amortization-sum data-key="balance"><small>Balance</small>{fmt(end)}</span> </summary> <div.ui-amortization-scroll> <table> <caption class="ui-sr">{label}, {y}</caption> <thead><tr> <th scope="col">{start != null ? "Date" : "Payment"}</th> <th scope="col">Amount</th> <th scope="col">Principal</th> <th scope="col">Interest</th> <th scope="col">Balance</th> </tr></thead> <tbody> {for row in these => <tr key={row.n} data-n={row.n}> <th scope="row">{row.date != null ? <time datetime={row.date}>{amortization_table_date(row.date, locale, false)}</time> : `#${row.n}`}</th> <td>{fmt(row.payment)}</td> <td>{fmt(row.principal)}</td> <td>{fmt(row.interest)}</td> <td>{fmt(row.balance)}</td> </tr>} </tbody> <tfoot><tr> <th scope="row">{y} total</th> <td>{fmt(principal + interest)}</td> <td>{fmt(principal)}</td> <td>{fmt(interest)}</td> <td>{fmt(end)}</td> </tr></tfoot> </table> </div> </details> }} </div> <p.ui-amortization-total> <span>{len(rows)} payments in all</span> <span>Principal <b>{fmt(dec(amount))}</b> + interest <b>{fmt(total_interest)}</b> = <b>{fmt(total_paid)}</b></span> </p> </section>}Related
CollateralListWhat secures a loan: each item's valuation and documents, and the loan-to-value ratio as a meter against the lender's limit.7 views · 5 downloadsCrossRatesA matrix of cross rates among a few currencies, each worked out from their rates against one base, the diagonal left blank.6 views · 6 downloadsFxRateTableA board of exchange rates: each pair with its flags, bid, ask, the spread in pips and the day's change from the open, coloured.7 views · 8 downloadsLoanCommitteeQueueLoan applications before the credit committee: member, amount, purpose, the votes so far, where each stands, and approve or decline per row.7 views · 10 downloadsLoanOffersLoan offers side by side: each lender's APR, term, monthly payment, fees and total cost, with the cheapest in total marked.8 views · 7 downloadsPaymentHistoryTwenty-four months of payments as a grid of years and months, on time, 30, 60 or 90 days late, or nothing due, as credit reports show them, with a legend.7 views · 7 downloads
Thread
Thread 0 posts
On AmortizationTable: questions, tips, corrections, and code that uses it.
No posts yet. The first one opens the thread.