FINANCE PPMT Function

Computes the payment on the principal for an investment for a specified period.

Category:Financial
Returned data type:DOUBLE

Syntax

FINANCE('PPMT', rate, period, nper, pv, [fv], [type]);

Required Arguments

rate

specifies the interest rate.

RequirementRate is provided as a numeric value and not as a percentage.
Data typeDOUBLE

period

specifies the period.

Range: 1–nper

Data typeDOUBLE

nper

specifies the number of payment periods.

Data typeDOUBLE

pv

specifies the present value or the lump-sum amount that a series of future payments is worth currently. If pv is omitted, it is assumed to be 0 (zero), and you must include the fv argument.

Data typeDOUBLE

Optional Arguments

fv

specifies the future value or a cash balance that you want to attain after the last payment is made. If fv is omitted, it is assumed to be 0 (for example, the future value of a loan is 0).

Data typeDOUBLE

type

specifies the number 0 or 1 and indicates when payments are due. If type is omitted, it is assumed to be 0.

If payments are due at the end of the period, then either omit the type argument or set it to 0. If payments are due at the beginning of the period, then set type to 1.

Data typeDOUBLE

Example: Computing Description: PPMT

The following program computes the payment on the principal for an investment for a specified period.

Note: In this example, DS2 statements are sent to SAS using PROC DS2.
proc ds2;
data test(overwrite=yes);
   dcl double rate period nper pv fv type r;
   method init();
      rate=0.08;
      period=10;
      nper=10;
      pv=200000;
      fv=0;
      type=0;
      r=finance('ppmt', rate, period, nper, pv, fv, type);
      put r=;
   end;
enddata;
run;
quit;

SAS writes the following output to the log:

r=-27598.0534624213
Last updated: September 2, 2026