Dax Function: PPMT
Category: Financial Functions
The PPMT function in Power BI calculates the principal portion of a payment for a specific period of an investment or loan. It is particularly useful for breaking down payments into principal and interest components.
Purpose
To calculate the portion of a payment that reduces the loan’s principal balance during a specific period.
Used in financial modeling, amortization schedules, and loan analysis.
Type of Calculations
Computes only the principal portion of a payment based on a fixed interest rate, total periods, and loan amount.
Complements the IPMT function, which calculates the interest portion.
Practical Use Cases
Amortization Schedules: Break down loan payments into principal and interest for each period.
Loan Balance Monitoring: Track the reduction in principal over time.
Budget Planning: Analyze the impact of principal payments on cash flow.
PPMT(rate, per, nper, pv, [fv], [type])
| Parameter | Type | Description |
|---|---|---|
rate | Scalar | The interest rate per period (e.g., monthly, yearly). |
per | Scalar | The specific period for which to calculate the principal payment. Must be an integer between 1 and nper. |
nper | Scalar | Total number of payment periods (e.g., months, years). |
pv | Scalar | Present value, or the total amount of the loan or investment. |
[fv] | Scalar | Optional. The desired future value at the end of the periods. Defaults to 0 if omitted. |
[type] | Scalar | Optional. Payment timing: 0 for end of the period (default), 1 for start of the period. |
How Does PPMT Dax Works
Mathematical Principle
The PPMT function is derived from the payment formula:
![]()
Where:
PMT: Total payment amount (calculated using the PMT function).
IPMT: Interest portion for the specified period (calculated using the IPMT function).
For a specific period (per):
Where:
r: Interest rate per period
PV: Present value
n: Total number of periods
per: Current period
What Does It Return?
Scalar Value: The principal portion of the payment for the specified period.
Sign Convention: Returns a negative value to represent outgoing cash flow.
When Should We Use It?
Loan Amortization: Create detailed schedules showing the breakdown of principal and interest payments.
Interest vs. Principal Analysis: Determine how much of each payment is reducing the principal.
Debt Tracking: Monitor how principal payments impact the outstanding balance.
Examples
Basic Usage :
Calculate the principal payment for the 5th month of a $10,000 loan at an annual interest rate of 5% over 5 years:
PPMT(0.05 / 12, 5, 5 * 12, -10000)
Result: $150.25 (Principal portion for the 5th month).
Column Usage
Create an amortization table for multiple loans:
| LoanID | Rate | Periods | PresentValue | Period |
|---|---|---|---|---|
| 1 | 0.05 | 60 | 10000 | 5 |
| 2 | 0.03 | 36 | 15000 | 10 |
| 3 | 0.06 | 48 | 20000 | 20 |
Add a calculated column for the principal payment:
Principal = PPMT(Loans[Rate] / 12, Loans[Period], Loans[Periods], -Loans[PresentValue])
Advanced Usage
Combine PPMT with IPMT to show both principal and interest for a payment period:
PrincipalPayment = PPMT(0.04 / 12, 6, 12 * 10, -5000)
InterestPayment = IPMT(0.04 / 12, 6, 12 * 10, -5000)
Result: Outputs the respective components for the 6th period.
Tips and Tricks
Ensure consistent units for
rateandnper(e.g., monthly rate with monthly periods).Use negative values for
pvto indicate outgoing cash flow.Forgetting to specify the
perparameter or using values outside the valid range.Not converting annual interest rates to period-specific rates.
Performance Impact of PPMT DAX Function:
Ideal for scalar calculations and periodic analysis.
For large datasets, precompute static parameters like
rateandnperto improve performance.
Related Functions You Might Need
| Function | Description |
|---|---|
PMT | Calculates the total periodic payment for a loan or investment. |
IPMT | Determines the interest portion of a payment for a specific period. |
NPER | Calculates the number of payment periods required for a loan or investment. |
RATE | Determines the interest rate per period. |
Want to Learn More?
For more information, check out the official Microsoft documentation for PPMT You can also experiment with this function in your Power BI reports to explore its capabilities.
Unlock the full capabilities of Power BI and elevate your data insights with our specialized consulting services. Whether you need guidance on advanced DAX functions like those highlighted here, support in designing interactive dashboards, or expertise in optimizing data models for enhanced performance, our experienced Power BI consultants are equipped to deliver customized solutions for your business. Explore our Power BI Consulting Services page to discover how we can help your organization make smarter, data-driven decisions.
The PPMT function calculates the portion of a payment that goes toward reducing the principal of a loan or investment.
Yes, ensure the interest rate is divided by 12 to reflect monthly periods.
The function will return an error. Ensure per is an integer between 1 and the total number of periods.
The PMT function calculates the total payment (principal + interest), while PPMT isolates the principal portion.
Yes, the optional type parameter specifies whether payments occur at the beginning or end of each period.