Login     Register

        Contact Us     Search

XLeratorDB/financial Documentation

SQL Server annuity amotrization schedule


PMTSCHED

Updated: 31 October 2010


Use PMTSCHED to generate an amortization schedule for a loan with no odd periods. The amortization schedule includes the payment number, the principal amount at the beginning of the period, the interest amount for the period, the principal payment for the period, and the ending principal amount.
Syntax
SELECT * FROM [westclintech].[wct].[PMTSCHED] (
  <@PV, float,>
 ,<@pmt, float,>
 ,<@NumPmts, int,>
 ,<@FV, float,>
 ,<@Pay_type, float,>)
Arguments
@PV
the principal amount of the loan or lease. @PV is an expression of type float or of a type that can be implicitly converted to float.
@pmt
The periodic loan payment. @pmt is an expression of type float or of a type that can be implicitly converted to float.
@NumPmts
the total number of payments to be recorded over the life of the loan. @NumPmts is an expression of type int or of a type that can be implicitly converted to int.
@FV
the future value at the end of the loan. @FV is an expression of type float or of a type that can be implicitly converted to float.
@Pay_type
Identifies whether payments are made at the beginning of the period (1) or at the end of the period (0). 
Return Types
RETURNS TABLE (
      [num_pmt] [int] NULL,
      [amt_prin_init] [float] NULL,
      [amt_int_pay] [float] NULL,
      [amt_prin_pay] [float] NULL,
      [amt_prin_end] [float] NULL
)

Column
Column Description
num_pmt
The payment number.
amt_prin_init
The principal amount at the beginning of the period. For the first period, the principal amount is the amount of the loan, otherwise the principal amount is the ending principal amount from the prior period.
amt_int_pay
The interest payment amount for the period. The interest payment amount is equal to amt_prin_int – amt_prin_end - @pmt
amt_prin_pay
The principal payment amount for the period. The principal payment amount is equal to amt_prin_init – amt_prin_end.
amt_prin_end
The ending principal amount. The ending principal amount is the present value of the remaining payments discounted using the implied rate from @pmt.

Remarks
·         @PV, @pmt, and @FV (when it is not zero) should have the same sign
·         The rate value is equal to wct.RATE(@Numpmts,-@pmt,@PV,-@FV,@Pay_type,NULL)
Examples
Generate an amortization schedule for loan with a principal amount of 100,000 with 12 payments of 8606.64.
SELECT *
FROM wct.PMTSCHED(
      100000            --pv
      ,8606.64          --pmt
      ,12               --numpmts
      ,0                --FV
      ,0                --pay_type
      ) 
This produces the following result.
 
    num_pmt          amt_prin_init            amt_int_pay           amt_prin_pay           amt_prin_end
----------- ---------------------- ---------------------- ---------------------- ----------------------
          1                 100000       499.994613980976       8106.64538601902        91893.354613981
          2        91893.354613981       459.461823674021       8147.17817632598        83746.176437655
          3        83746.176437655       418.726371601093       8187.91362839891       75558.2628092561
          4       75558.2628092561       377.787244461579       8228.85275553842       67329.4100537177
          5       67329.4100537177       336.643423891961       8269.99657610804       59059.4134776096
          6       59059.4134776096        295.29388643532       8311.34611356468        50748.067364045
          7        50748.067364045       253.737603518282       8352.90239648172       42395.1649675632
          8       42395.1649675632       211.973541424944       8394.66645857506       34000.4985089882
          9       34000.4985089882       170.000661270562       8436.63933872944       25563.8591702587
         10       25563.8591702587       127.817918976172       8478.82208102383       17085.0370892349
         11       17085.0370892349       85.4242652420508       8521.21573475795       8563.82135447697
         12       8563.82135447697       42.8186455230316       8563.82135447697                      0
 
(12 row(s) affected)
Generate an amortization schedule for loan with a principal amount of 32,000 with 60 payments of 600.95.
SELECT *
FROM wct.PMTSCHED(
      100000            --pv
      ,8606.64          --pmt
      ,12               --numpmts
      ,0                --FV
      ,0                --pay_type
      ) 
This produces the following result.
 
    num_pmt          amt_prin_init            amt_int_pay           amt_prin_pay           amt_prin_end
----------- ---------------------- ---------------------- ---------------------- ----------------------
          1                  32000       127.996817638387       472.953182361613       31527.0468176384
          2       31527.0468176384       126.105051955211       474.844948044789       31052.2018695936
          3       31052.2018695936       124.205719385619       476.744280614381       30575.4575889792
          4       30575.4575889792       122.298789674637       478.651210325363       30096.8063786539
          5       30096.8063786539       120.384232434433       480.565767565568       29616.2406110883
          6       29616.2406110883       118.462017155692       482.487982844308        29133.752628244
          7        29133.752628244       116.532113206983       484.417886793017        28649.334741451
          8        28649.334741451       114.594489834405       486.355510165595       28162.9792312854
          9       28162.9792312854       112.649116161035       488.300883838965       27674.6783474464
         10       27674.6783474464       110.695961186432       490.254038813568       27184.4243086328
         11       27184.4243086328       108.734993786205       492.215006213795        26692.209302419
         12        26692.209302419       106.766182711336       494.183817288664       26198.0254851304
         13       26198.0254851304       104.789496587985       496.160503412015       25701.8649817184
         14       25701.8649817184       102.804903916727       498.145096083274       25203.7198856351
         15       25203.7198856351       100.812373072116       500.137626927884       24703.5822587072
         16       24703.5822587072       98.8118723023392       502.138127697661       24201.4441310095
         17       24201.4441310095       96.8033697283856       504.146630271614       23697.2975007379
         18       23697.2975007379       94.7868333438994       506.163166656101       23191.1343340818
         19       23191.1343340818       92.7622310143954       508.187768985605       22682.9465650962
         20       22682.9465650962       90.7295304769389       510.220469523061       22172.7260955732
         21       22172.7260955732       88.6886993394467       512.261300660553       21660.4647949126
         22       21660.4647949126        86.639705080411       514.310294919589        21146.154499993
         23        21146.154499993       84.5825150480698        516.36748495193       20629.7870150411
         24       20629.7870150411       82.5170964602178       518.432903539782       20111.3541115013
         25       20111.3541115013       80.4434164033912       520.506583596609       19590.8475279047
         26       19590.8475279047       78.3614418325772       522.588558167423       19068.2589697373
         27       19068.2589697373       76.2711395705003         524.6788604295       18543.5801093078
         28       18543.5801093078       74.1724763072737       526.777523692726        18016.802585615
         29        18016.802585615       72.0654185997148       528.884581400285       17487.9180042148
         30       17487.9180042148       69.9499328708218       531.000067129178       16956.9179370856
         31       16956.9179370856       67.8259854094533       533.124014590547        16423.793922495
         32        16423.793922495       65.6935423694551       535.256457630545       15888.5374648645
         33       15888.5374648645       63.5525697693113       537.397430230689       15351.1400346338
         34       15351.1400346338       61.4030334917363       539.546966508264       14811.5930681255
         35       14811.5930681255       59.2448992828024       541.705100717198       14269.8879674083
         36       14269.8879674083       57.0781327516481       543.871867248352         13726.01610016
         37         13726.01610016       54.9026993698674       546.047300630133       13179.9687995299
         38       13179.9687995299       52.7185644708982       548.231435529102       12631.7373640008
         39       12631.7373640008       50.5256932495279       550.424306750472       12081.3130572503
         40       12081.3130572503       48.3240507613693       552.625949238631       11528.6871080117
         41       11528.6871080117       46.1136019221915       554.836398077809       10973.8507099338
         42       10973.8507099338       43.8943115074828       557.055688492517       10416.7950214413
         43       10416.7950214413       41.6661441518402        559.28385584816       9857.51116559317
         44       9857.51116559317       39.4290643483284       561.520935651672        9295.9902299415
         45        9295.9902299415       37.1830364481314       563.766963551869       8732.22326638963
         46       8732.22326638963       34.9280246596493       566.021975340351       8166.20129104928
         47       8166.20129104928       32.6639930482663       568.286006951734       7597.91528409754
         48       7597.91528409754       30.3909055356228       570.559094464377       7027.35618963317
         49       7027.35618963317       28.1087258989749       572.841274101025       6454.51491553214
         50       6454.51491553214        25.817417770729       575.132582229271       5879.38233330287
         51       5879.38233330287       23.5169446378598        577.43305536214       5301.94927794073
         52       5301.94927794073       21.2072698412114       579.742730158789       4722.20654778194
         53       4722.20654778194       18.8883565750905        582.06164342491       4140.14490435703
         54       4140.14490435703       16.5601678864798        584.38983211352       3555.75507224351
         55       3555.75507224351       14.2226666746894       586.727333325311        2969.0277389182
         56        2969.0277389182       11.8758156905126       589.074184309487       2379.95355460871
         57       2379.95355460871       9.51957753578904       591.430422464211        1788.5231321445
         58        1788.5231321445       7.15391466273582       593.796085337264       1194.72704680724
         59       1194.72704680724       4.77878937348146       596.171210626519        598.55583618072
         60        598.55583618072       2.39416381928027        598.55583618072                      0
 
(60 row(s) affected)
 
Generate an amortization schedule for 250,000 loan with 50,000 ballon payment with 36 payments of 6,533.74 using a CROSS APPLY.
 
SELECT k.*
FROM (
      SELECT 250000 as pv
      ,6533.74 as pmt
      ,36 as numpmts
      ,50000 as FV
      ,0 as pay_type
      ) n
CROSS APPLY wct.PMTSCHED(
       n.pv
      ,n.pmt
      ,n.numpmts
      ,n.fv
      ,n.pay_type
      ) k
 
This produces the following result.
 
    num_pmt          amt_prin_init            amt_int_pay           amt_prin_pay           amt_prin_end
----------- ---------------------- ---------------------- ---------------------- ----------------------
          1                 250000       1562.49433274673       4971.24566725327       245028.754332747
          2       245028.754332747        1531.4241600216        5002.3158399784       240026.438492768
          3       240026.438492768       1500.15979941935       5033.58020058065       234992.858292188
          4       234992.858292188       1468.70003727184       5065.03996272816        229927.81832946
          5        229927.81832946       1437.04365232425       5096.69634767575       224831.121981784
          6       224831.121981784       1405.18941568829       5128.55058431171       219702.571397472
          7       219702.571397472       1373.13609079564       5160.60390920436       214541.967488268
          8       214541.967488268       1340.88243334869       5192.85756665131       209349.109921616
          9       209349.109921616       1308.42719127402       5225.31280872598        204123.79711289
         10        204123.79711289       1275.76910467214       5257.97089532786       198865.826217563
         11       198865.826217563        1242.9069057695        5290.8330942305       193574.993123332
         12       193574.993123332       1209.83931886825       5323.90068113175         188251.0924422
         13         188251.0924422        1176.5650602989        5357.1749397011       182893.917502499
         14       182893.917502499       1143.08283836733       5390.65716163267       177503.260340867
         15       177503.260340867       1109.39135330812       5424.34864669188       172078.911694175
         16       172078.911694175       1075.48929723085       5458.25070276915       166620.660991405
         17       166620.660991405       1041.37535407186       5492.36464592814       161128.296345477
         18       161128.296345477       1007.04819954118       5526.69180045882       155601.604545019
         19       155601.604545019       972.506501072794       5561.23349892721       150040.371046091
         20       150040.371046091       937.748917772095       5595.99108222791       144444.379963863
         21       144444.379963863       902.774100363729       5630.96589963627       138813.414064227
         22       138813.414064227       867.580691139689       5666.15930886031       133147.254755367
         23       133147.254755367       832.167323905285       5701.57267609471       127445.682079272
         24       127445.682079272       796.532623928631       5737.20737607137       121708.474703201
         25       121708.474703201       760.675207884991       5773.06479211501       115935.409911086
         26       115935.409911086       724.593683803929       5809.14631619607        110126.26359489
         27        110126.26359489       688.286651015407       5845.45334898459       104280.810245905
         28       104280.810245905       651.752700094725       5881.98729990528       98398.8229459998
         29       98398.8229459998       614.990412808964       5918.74958719104       92480.0733588088
         30       92480.0733588088        577.99836206146       5955.74163793854       86524.3317208702
         31       86524.3317208702       540.775111834993       5992.96488816501       80531.3668327052
         32       80531.3668327052       503.319217138467       6030.42078286153       74500.9460498437
         33       74500.9460498437       465.629223949401        6068.1107760506       68432.8352737931
         34       68432.8352737931       427.703669156888       6106.03633084311         62326.79894295
         35         62326.79894295       389.541080506993       6144.19891949301        56182.600023457
         36        56182.600023457       351.139976543034       6182.60002345697                  50000
 
(36 row(s) affected)
 
Generate an amortization schedule for a 10,000 loan with 12 monthly payments of 869.95, made at the beginning of the period using CROSS APPLY.
 
SELECT k.*
FROM (
      SELECT 10000 as pv
      ,869.95 as pmt
      ,12 as numpmts
      ,0 as FV
      ,1 as pay_type
      ) n
CROSS APPLY wct.PMTSCHED(
       n.pv
      ,n.pmt
      ,n.numpmts
      ,n.fv
      ,n.pay_type
      ) k
 
This produces the following result
 
 
    num_pmt          amt_prin_init            amt_int_pay           amt_prin_pay           amt_prin_end
----------- ---------------------- ---------------------- ---------------------- ----------------------
          1                  10000  -2.00770955416374E-10       869.950000000201        9130.0499999998
          2        9130.0499999998       72.2834188150621       797.666581184938       8332.38341881486
          3       8332.38341881486       65.9682214653906       803.981778534609       7528.40164028025
          4       7528.40164028025        59.603026135944       810.346973864056        6718.0546664162
          5        6718.0546664162       53.1874369883037       816.762563011696        5901.2921034045
          6        5901.2921034045       46.7210550501361       823.228944949864       5078.06315845464
          7       5078.06315845464       40.2034781903524       829.746521809648       4248.31663664499
          8       4248.31663664499        33.634301094283       836.315698905717       3412.00093773927
          9       3412.00093773927       27.0131152381393       842.936884761861       2569.06405297741
         10       2569.06405297741       20.3395088640711       849.610491135929       1719.45356184148
         11       1719.45356184148       13.6130669540319       856.336933045968       863.116628795513
         12       863.116628795513       6.83337120448709       863.116628795513                      0
 

(12 row(s) affected)



Copyright 2008-2024 Westclintech LLC         Privacy Policy        Terms of Service