

Financial Loan Amortization Calculator
Function
Available ActionsEach successful request consumes credits as outlined below.
calculate_payment5crcalculate_loan_principal5crcalculate_term5crsimple_interest5crcompound_interest5cramortization_schedule5crcompare_loans5craffordability_analysis5crrefinance_break_even5crpayoff_acceleration5crrate_conversion5cr
Details
Full-featured financial loan calculator supporting 11 operations: payment calculation, principal estimation, term calculation, simple and compound interest, amortization schedules with CSV export, side-by-side loan comparison, DTI-based affordability analysis, refinance break-even evaluation, payoff acceleration modeling with extra and lump-sum payments, and APR-to-effective-rate conversion. Handles mortgages, auto loans, personal loans, and investment growth scenarios with configurable compounding, payment frequencies, interest-only periods, and balloon terms.
Use Cases
Mortgage payment planning,Auto loan payment estimation,Amortization schedule download,Debt payoff acceleration analysis,Refinance break-even evaluation,Simple and compound interest projection,Debt-to-income affordability checks,Balloon payment scenario modeling,Interest-only period planning,Loan comparison analysis
Connect Your Agent In 5 Min
Watch the setup guide for your platform
Or Install Locally
STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to https://api.agentpmt.com/mcp. All tool execution happens in the cloud and the server cannot edit any files on your computer.
npm install -g @agentpmt/mcp-routeragentpmt-setupActions(11)
calculate_payment5cr8 params(3 required)Compute the periodic payment for an amortizing loan. Supports interest-only periods, balloon payments, and configurable payment/compounding frequencies.
calculate_payment5cr8 params(3 required)Compute the periodic payment for an amortizing loan. Supports interest-only periods, balloon payments, and configurable payment/compounding frequencies.
principalrequirednumberLoan principal amount
Range: 0 - ...
annual_raterequirednumberNominal annual interest rate in percent
Range: 0 - 100
yearsrequirednumberLoan term in years
Range: 0 - 100
payments_per_yearintegerPayment frequency per year
Default:
12Range: 1 - 365
compounding_per_yearintegerCompounding frequency per year
Default:
12Range: 1 - 365
future_valuenumberTarget future value after final payment
Default:
0Range: 0 - ...
balloon_paymentnumberBalloon amount due at maturity
Default:
0Range: 0 - ...
interest_only_periodsintegerNumber of interest-only payment periods at the start
Default:
0Range: 0 - ...
calculate_loan_principal5cr8 params(2 required)Calculate the maximum loan principal supported by a given periodic payment amount.
calculate_loan_principal5cr8 params(2 required)Calculate the maximum loan principal supported by a given periodic payment amount.
payment_amountrequirednumberPeriodic payment amount
Range: 0 - ...
annual_raterequirednumberNominal annual interest rate in percent
Range: 0 - 100
yearsnumberLoan term in years (provide years or target_periods or both)
Range: 0 - 100
target_periodsintegerTarget number of payment periods (alternative to years)
Range: 1 - 12000
payments_per_yearintegerPayment frequency per year
Default:
12Range: 1 - 365
compounding_per_yearintegerCompounding frequency per year
Default:
12Range: 1 - 365
future_valuenumberTarget future value
Default:
0Range: 0 - ...
balloon_paymentnumberBalloon due at maturity
Default:
0Range: 0 - ...
calculate_term5cr5 params(3 required)Calculate the number of periods and years required to pay off a loan given principal, rate, and payment amount.
calculate_term5cr5 params(3 required)Calculate the number of periods and years required to pay off a loan given principal, rate, and payment amount.
principalrequirednumberLoan principal
Range: 0 - ...
annual_raterequirednumberNominal annual interest rate in percent
Range: 0 - 100
payment_amountrequirednumberPeriodic payment amount
Range: 0 - ...
payments_per_yearintegerPayment frequency per year
Default:
12Range: 1 - 365
compounding_per_yearintegerCompounding frequency per year
Default:
12Range: 1 - 365
simple_interest5cr3 params(3 required)Calculate simple (non-compounded) interest totals for a given principal, rate, and duration.
simple_interest5cr3 params(3 required)Calculate simple (non-compounded) interest totals for a given principal, rate, and duration.
principalrequirednumberPrincipal amount
Range: 0 - ...
annual_raterequirednumberAnnual interest rate in percent
Range: 0 - 100
yearsrequirednumberDuration in years
Range: 0 - 100
compound_interest5cr7 params(3 required)Calculate compound interest growth over time, optionally with periodic contributions. Supports configurable compounding frequency and contribution timing.
compound_interest5cr7 params(3 required)Calculate compound interest growth over time, optionally with periodic contributions. Supports configurable compounding frequency and contribution timing.
principalrequirednumberInitial principal amount
Range: 0 - ...
annual_raterequirednumberAnnual interest rate in percent
Range: 0 - 100
yearsrequirednumberInvestment duration in years
Range: 0 - 100
compounding_per_yearintegerCompounding frequency per year
Default:
12Range: 1 - 365
periodic_contributionnumberAmount added each contribution period
Default:
0Range: 0 - ...
contribution_frequency_per_yearintegerHow often contributions are made per year
Default:
12Range: 1 - 365
contribution_timingstringWhether contribution is made at period end or beginning
Values:
endbeginning
Default:
endamortization_schedule5cr16 params(3 required)Build a full amortization table with support for extra payments, one-time lump sums, interest-only periods, balloon payments, and optional CSV file export to cloud storage.
amortization_schedule5cr16 params(3 required)Build a full amortization table with support for extra payments, one-time lump sums, interest-only periods, balloon payments, and optional CSV file export to cloud storage.
principalrequirednumberLoan principal
Range: 0 - ...
annual_raterequirednumberNominal annual interest rate in percent
Range: 0 - 100
yearsrequirednumberLoan term in years
Range: 0 - 100
payments_per_yearintegerPayment frequency per year
Default:
12Range: 1 - 365
compounding_per_yearintegerCompounding frequency per year
Default:
12Range: 1 - 365
future_valuenumberTarget future value
Default:
0Range: 0 - ...
balloon_paymentnumberBalloon due at maturity
Default:
0Range: 0 - ...
interest_only_periodsintegerInterest-only period count
Default:
0Range: 0 - ...
extra_paymentnumberRecurring extra principal each period
Default:
0Range: 0 - ...
extra_payment_start_periodintegerPeriod to begin recurring extra payments
Default:
1Range: 1 - ...
one_time_extra_paymentsarrayList of one-time extra principal payments
Array of: object
start_datestringSchedule start date in YYYY-MM-DD format; adds date column to each row
return_schedulebooleanInclude schedule rows in response
Default:
truemax_schedule_rowsintegerMaximum amortization rows to return
Default:
5000Range: 1 - 50000
store_schedule_filebooleanUpload schedule as CSV to cloud storage and return file metadata
Default:
falseexpiration_daysintegerCloud file expiration in days
Default:
7Range: 1 - 7
compare_loans5cr2 params(1 required)Compare multiple loan scenarios side-by-side and rank by selected metric (lowest payment, lowest interest, or lowest total cost).
compare_loans5cr2 params(1 required)Compare multiple loan scenarios side-by-side and rank by selected metric (lowest payment, lowest interest, or lowest total cost).
compare_scenariosrequiredarrayLoan scenarios to compare (minimum 2 required)
Array of: object
comparison_metricstringHow to rank scenarios
Values:
lowest_paymentlowest_interestlowest_total_cost
Default:
lowest_total_costaffordability_analysis5cr13 params(3 required)Estimate affordable monthly payment, maximum loan principal, and maximum home price based on income, debts, and DTI ratios.
affordability_analysis5cr13 params(3 required)Estimate affordable monthly payment, maximum loan principal, and maximum home price based on income, debts, and DTI ratios.
annual_incomerequirednumberGross annual income
Range: 0 - ...
annual_raterequirednumberExpected mortgage rate in percent
Range: 0 - 100
yearsrequirednumberLoan term in years
Range: 0 - 100
monthly_debtsnumberRecurring monthly debt obligations
Default:
0Range: 0 - ...
monthly_expensesnumberAdditional recurring monthly expenses
Default:
0Range: 0 - ...
front_end_rationumberMaximum housing expense ratio to gross income
Default:
0.28Range: 0 - 1
back_end_rationumberMaximum total debt ratio to gross income
Default:
0.36Range: 0 - 1
property_tax_monthlynumberEstimated monthly property tax
Default:
0Range: 0 - ...
insurance_monthlynumberEstimated monthly insurance
Default:
0Range: 0 - ...
hoa_monthlynumberEstimated monthly HOA fees
Default:
0Range: 0 - ...
down_paymentnumberDown payment amount (added to max principal for max home price)
Default:
0Range: 0 - ...
payments_per_yearintegerPayment frequency per year
Default:
12Range: 1 - 365
compounding_per_yearintegerCompounding frequency per year
Default:
12Range: 1 - 365
refinance_break_even5cr7 params(6 required)Estimate payment savings, break-even period, and net lifetime benefit of refinancing a loan.
refinance_break_even5cr7 params(6 required)Estimate payment savings, break-even period, and net lifetime benefit of refinancing a loan.
current_balancerequirednumberCurrent remaining loan balance
Range: 0 - ...
current_raterequirednumberCurrent annual interest rate in percent
Range: 0 - 100
current_remaining_term_monthsrequiredintegerRemaining months on current loan
Range: 1 - 1200
new_raterequirednumberNew annual interest rate in percent
Range: 0 - 100
new_term_monthsrequiredintegerNew loan term in months
Range: 1 - 1200
closing_costsrequirednumberRefinance closing costs
Range: 0 - ...
current_paymentnumberCurrent monthly payment (if omitted, calculated automatically from balance/rate/term)
Range: 0 - ...
payoff_acceleration5cr12 params(3 required)Model interest and term savings from recurring and one-time extra payments by comparing baseline vs accelerated payoff scenarios.
payoff_acceleration5cr12 params(3 required)Model interest and term savings from recurring and one-time extra payments by comparing baseline vs accelerated payoff scenarios.
principalrequirednumberLoan principal
Range: 0 - ...
annual_raterequirednumberNominal annual interest rate in percent
Range: 0 - 100
yearsrequirednumberOriginal loan term in years
Range: 0 - 100
payments_per_yearintegerPayment frequency per year
Default:
12Range: 1 - 365
compounding_per_yearintegerCompounding frequency per year
Default:
12Range: 1 - 365
extra_paymentnumberRecurring extra principal each period
Default:
0Range: 0 - ...
extra_payment_start_periodintegerPeriod to begin recurring extra payments
Default:
1Range: 1 - ...
one_time_extra_paymentsarrayOne-time extra payments
Array of: object
future_valuenumberTarget future value
Default:
0Range: 0 - ...
balloon_paymentnumberBalloon due at maturity
Default:
0Range: 0 - ...
interest_only_periodsintegerInterest-only period count
Default:
0Range: 0 - ...
start_datestringOptional start date in YYYY-MM-DD format
rate_conversion5cr3 params(1 required)Convert a nominal annual percentage rate (APR) into effective annual, payment-period, and daily effective rates.
rate_conversion5cr3 params(1 required)Convert a nominal annual percentage rate (APR) into effective annual, payment-period, and daily effective rates.
annual_raterequirednumberNominal annual interest rate in percent
Range: 0 - 100
compounding_per_yearintegerCompounding frequency per year
Default:
12Range: 1 - 365
payments_per_yearintegerPayment frequency per year
Default:
12Range: 1 - 365
curl -X POST "https://api.agentpmt.com/products/purchase" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ********" \
-d '{
"product_id": "69858a60269243768b447d61",
"parameters": {
"action": "calculate_payment",
"principal": 0,
"annual_rate": 0,
"years": 0,
"payments_per_year": 12,
"compounding_per_year": 12,
"future_value": 0,
"balloon_payment": 0,
"interest_only_periods": 0
}
}'import requests
import json
url = "https://api.agentpmt.com/products/purchase"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
}
data = {
"product_id": "69858a60269243768b447d61",
"parameters": {
"action": "calculate_payment",
"principal": 0,
"annual_rate": 0,
"years": 0,
"payments_per_year": 12,
"compounding_per_year": 12,
"future_value": 0,
"balloon_payment": 0,
"interest_only_periods": 0
}
}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())const url = "https://api.agentpmt.com/products/purchase";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
};
const data = {
product_id: "69858a60269243768b447d61",
parameters: {
"action": "calculate_payment",
"principal": 0,
"annual_rate": 0,
"years": 0,
"payments_per_year": 12,
"compounding_per_year": 12,
"future_value": 0,
"balloon_payment": 0,
"interest_only_periods": 0
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));const axios = require('axios');
const url = "https://api.agentpmt.com/products/purchase";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
};
const data = {
product_id: "69858a60269243768b447d61",
parameters: {
"action": "calculate_payment",
"principal": 0,
"annual_rate": 0,
"years": 0,
"payments_per_year": 12,
"compounding_per_year": 12,
"future_value": 0,
"balloon_payment": 0,
"interest_only_periods": 0
}
};
axios.post(url, data, { headers })
.then(response => {
console.log(response.status);
console.log(response.data);
})
.catch(error => {
console.error("Error:", error.message);
});Login to view your API and budget keys. The example above uses placeholder values. Sign in to see personalized code with your bearer token.
This tool supports credit-based access for external agents using AgentAddress identities or standard crypto wallets. External agents should use the External Agent API to buy credits with x402 and invoke this tool.
1. Buy Credits
Purchase credits via x402 payment (500 credit minimum, 100 credits = $1).
# Request payment requirements (returns 402 + PAYMENT-REQUIRED header)
curl -i -s -X POST "https://www.agentpmt.com/api/external/credits/purchase" \
-H "Content-Type: application/json" \
-d '{ "wallet_address":"0xYOUR_WALLET", "credits": 500, "payment_method":"x402" }'
# Sign the EIP-3009 authorization, then retry with signature header
curl -s -X POST "https://www.agentpmt.com/api/external/credits/purchase" \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64-json>" \
-d '{ "wallet_address":"0xYOUR_WALLET", "credits": 500, "payment_method":"x402" }'2. Create a Session Nonce (nonce used in signed balance/invoke)
curl -s -X POST "https://www.agentpmt.com/api/external/auth/session" \
-H "Content-Type: application/json" \
-d '{ "wallet_address":"0xYOUR_WALLET" }'3. Invoke This Tool
Sign the message with your wallet (EIP-191 personal-sign), then POST to the invoke endpoint.
# Sign this message (wallet MUST be lowercased):
# agentpmt-external
# wallet:0xyourwallet...
# session:<session_nonce>
# request:<request_id>
# method:POST
# path:/external/tools/financial-loan-calculator/actions/<actionSlug>/invoke
# payload:<sha256(canonical_json(parameters))>
curl -s -X POST "https://www.agentpmt.com/api/external/tools/financial-loan-calculator/actions/<actionSlug>/invoke" \
-H "Content-Type: application/json" \
-d '{
"wallet_address": "0xYOUR_WALLET",
"session_nonce": "<session_nonce>",
"request_id": "invoke-uuid",
"signature": "0x<signature>",
"parameters": {
"your_param": "value"
}
}'Usage Instructions
Usage guidance provided directly by the developer for this product.
Financial Loan Calculator - Tool Instructions
Overview
Comprehensive financial loan calculator supporting mortgage, auto, and personal loan calculations. Provides 11 actions covering payment computation, principal calculation, term determination, simple and compound interest, full amortization schedules with CSV export, multi-scenario loan comparison, home affordability analysis, refinance break-even analysis, payoff acceleration modeling, and interest rate conversion. All calculations support configurable payment and compounding frequencies, interest-only periods, balloon payments, and extra payments.
Actions
calculate_payment
Compute the periodic payment for an amortizing loan. Supports interest-only periods and balloon payments.
Required Parameters:
action(string):"calculate_payment"principal(number, >0): Loan principal amountannual_rate(number, 0-100): Nominal annual interest rate in percentyears(number, >0): Loan term in years
Optional Parameters:
payments_per_year(integer, default: 12, range: 1-365): Payment frequency per yearcompounding_per_year(integer, default: 12, range: 1-365): Compounding frequency per yearfuture_value(number, default: 0): Target future value after final paymentballoon_payment(number, default: 0): Balloon amount due at maturityinterest_only_periods(integer, default: 0): Number of interest-only payment periods at the start
Example:
{
"action": "calculate_payment",
"principal": 350000,
"annual_rate": 6.25,
"years": 30,
"payments_per_year": 12,
"compounding_per_year": 12
}
Response fields: payment_per_period, interest_only_payment_per_period, periodic_rate_percent, total_periods, amortizing_periods
calculate_loan_principal
Calculate the maximum loan principal supported by a given payment amount.
Required Parameters:
action(string):"calculate_loan_principal"payment_amount(number, >0): Periodic payment amountannual_rate(number, 0-100): Nominal annual interest rate in percentyears(number, >0) ortarget_periods(integer, >=1): Loan term (one or both required)
Optional Parameters:
payments_per_year(integer, default: 12)compounding_per_year(integer, default: 12)future_value(number, default: 0)balloon_payment(number, default: 0)
Example:
{
"action": "calculate_loan_principal",
"payment_amount": 2200,
"annual_rate": 6.1,
"years": 30
}
Response fields: max_principal, periods, periodic_rate_percent
calculate_term
Calculate the number of periods required to pay off a loan given principal, rate, and payment.
Required Parameters:
action(string):"calculate_term"principal(number, >0): Loan principalannual_rate(number, 0-100): Nominal annual rate in percentpayment_amount(number, >0): Periodic payment amount
Optional Parameters:
payments_per_year(integer, default: 12)compounding_per_year(integer, default: 12)
Example:
{
"action": "calculate_term",
"principal": 42000,
"annual_rate": 7.9,
"payment_amount": 850
}
Response fields: required_periods, required_years, periodic_rate_percent
Note: Returns an error if the payment amount is too low to amortize the loan (i.e., less than or equal to the interest-only payment).
simple_interest
Calculate simple (non-compounded) interest totals.
Required Parameters:
action(string):"simple_interest"principal(number, >0): Principal amountannual_rate(number, 0-100): Annual interest rate in percentyears(number, >0): Duration in years
Example:
{
"action": "simple_interest",
"principal": 10000,
"annual_rate": 5,
"years": 3
}
Response fields: principal, interest, total_amount, annual_rate_percent, years
compound_interest
Calculate compound interest growth, optionally with periodic contributions.
Required Parameters:
action(string):"compound_interest"principal(number, >0): Initial principal amountannual_rate(number, 0-100): Annual interest rate in percentyears(number, >0): Investment duration in years
Optional Parameters:
compounding_per_year(integer, default: 12): Compounding frequencyperiodic_contribution(number, default: 0): Amount added each contribution periodcontribution_frequency_per_year(integer, default: 12, range: 1-365): How often contributions are madecontribution_timing(string, default:"end"):"end"or"beginning"of each period
Example:
{
"action": "compound_interest",
"principal": 15000,
"annual_rate": 7,
"years": 10,
"compounding_per_year": 12,
"periodic_contribution": 300,
"contribution_frequency_per_year": 12,
"contribution_timing": "end"
}
Response fields: future_value, principal_growth_component, contribution_growth_component, total_contributions, interest_earned, effective_annual_rate_percent, contribution_rate_percent
amortization_schedule
Build a full amortization table with support for extra payments and optional CSV file export.
Required Parameters:
action(string):"amortization_schedule"principal(number, >0): Loan principalannual_rate(number, 0-100): Nominal annual rate in percentyears(number, >0): Loan term in years
Optional Parameters:
payments_per_year(integer, default: 12)compounding_per_year(integer, default: 12)future_value(number, default: 0)balloon_payment(number, default: 0)interest_only_periods(integer, default: 0)extra_payment(number, default: 0): Recurring extra principal each periodextra_payment_start_period(integer, default: 1): Period to begin recurring extra paymentsone_time_extra_payments(array): List of one-time extra payments, each withperiod(integer, >=1) andamount(number, >0)start_date(string): Schedule start date inYYYY-MM-DDformat; adds date column to each rowreturn_schedule(boolean, default: true): Include schedule rows in responsemax_schedule_rows(integer, default: 5000, range: 1-50000): Maximum rows to returnstore_schedule_file(boolean, default: false): Upload schedule as CSV to cloud storageexpiration_days(integer, default: 7, range: 1-7): Cloud file expiration in days
Example:
{
"action": "amortization_schedule",
"principal": 280000,
"annual_rate": 6.4,
"years": 30,
"extra_payment": 200,
"store_schedule_file": true,
"expiration_days": 7
}
Response fields: summary (object with principal, rates, periods, payment, totals, paid_off_early flag), schedule (array of period rows with payment/principal/interest/extra_payment/balance/cumulative fields), schedule_truncated (boolean). When store_schedule_file is true: schedule_file with file_id, signed_url, expiration_date, size_bytes.
Each schedule row contains: period, date (if start_date provided), payment, principal, interest, extra_payment, balance, cumulative_interest, cumulative_paid.
compare_loans
Compare multiple loan scenarios side-by-side and rank by a selected metric.
Required Parameters:
action(string):"compare_loans"compare_scenarios(array, minimum 2 items): Each scenario object requires:name(string): Scenario labelprincipal(number, >0): Loan principalannual_rate(number, 0-100): Annual rate in percentyears(number, >0): Term in years
Optional per-scenario fields: payments_per_year (default: 12), compounding_per_year (default: 12), extra_payment (default: 0), balloon_payment (default: 0), interest_only_periods (default: 0)
Optional Parameters:
comparison_metric(string, default:"lowest_total_cost"): Ranking method. One of:"lowest_payment","lowest_interest","lowest_total_cost"
Example:
{
"action": "compare_loans",
"comparison_metric": "lowest_total_cost",
"compare_scenarios": [
{"name": "30Y Fixed", "principal": 320000, "annual_rate": 6.5, "years": 30},
{"name": "15Y Fixed", "principal": 320000, "annual_rate": 5.8, "years": 15}
]
}
Response fields: comparison_metric, ranked_scenarios (array sorted by metric, each with name/principal/annual_rate_percent/years/payment_per_period/total_interest/total_paid/actual_periods), best_scenario
affordability_analysis
Estimate affordable monthly payment, maximum loan principal, and maximum home price based on income and debts.
Required Parameters:
action(string):"affordability_analysis"annual_income(number, >0): Gross annual incomeannual_rate(number, 0-100): Expected mortgage rate in percentyears(number, >0): Loan term in years
Optional Parameters:
monthly_debts(number, default: 0): Recurring monthly debt obligationsmonthly_expenses(number, default: 0): Additional recurring monthly expensesfront_end_ratio(number, default: 0.28, range: 0-1): Maximum housing expense ratioback_end_ratio(number, default: 0.36, range: 0-1): Maximum total debt ratioproperty_tax_monthly(number, default: 0)insurance_monthly(number, default: 0)hoa_monthly(number, default: 0)down_payment(number, default: 0): Down payment amount (added to max principal for max home price)payments_per_year(integer, default: 12)compounding_per_year(integer, default: 12)
Example:
{
"action": "affordability_analysis",
"annual_income": 145000,
"monthly_debts": 850,
"annual_rate": 6.2,
"years": 30,
"down_payment": 60000
}
Response fields: monthly_income, front_end_limit, back_end_limit, gross_housing_budget, net_housing_budget_for_pi, max_loan_principal, max_home_price_with_down_payment, assumptions
Note: Returns an error if deductions (taxes, insurance, HOA, expenses) exceed the available housing budget.
refinance_break_even
Estimate payment savings, break-even period, and net lifetime benefit of refinancing.
Required Parameters:
action(string):"refinance_break_even"current_balance(number, >0): Current remaining loan balancecurrent_rate(number, 0-100): Current annual rate in percentcurrent_remaining_term_months(integer, >=1): Remaining months on current loannew_rate(number, 0-100): New annual rate in percentnew_term_months(integer, >=1): New loan term in monthsclosing_costs(number, >=0): Refinance closing costs
Optional Parameters:
current_payment(number, >0): Current monthly payment. If omitted, calculated automatically from balance/rate/term.
Example:
{
"action": "refinance_break_even",
"current_balance": 295000,
"current_rate": 7.1,
"current_remaining_term_months": 312,
"new_rate": 6.1,
"new_term_months": 360,
"closing_costs": 5500
}
Response fields: current_payment, new_payment, monthly_savings, closing_costs, break_even_months, current_remaining_interest, new_total_interest, interest_savings, lifetime_net_benefit_after_costs, recommendation ("favorable" or "not_favorable")
The recommendation is "favorable" when break-even occurs within the remaining term and the lifetime net benefit is positive.
payoff_acceleration
Model interest and term savings from recurring and one-time extra payments by comparing baseline vs accelerated scenarios.
Required Parameters:
action(string):"payoff_acceleration"principal(number, >0): Loan principalannual_rate(number, 0-100): Nominal annual rate in percentyears(number, >0): Original loan term in years
Optional Parameters:
payments_per_year(integer, default: 12)compounding_per_year(integer, default: 12)extra_payment(number, default: 0): Recurring extra principal each periodextra_payment_start_period(integer, default: 1): Period to begin extra paymentsone_time_extra_payments(array): One-time extra payments, each withperiodandamountfuture_value(number, default: 0)balloon_payment(number, default: 0)interest_only_periods(integer, default: 0)start_date(string): Optional start date inYYYY-MM-DD
Example:
{
"action": "payoff_acceleration",
"principal": 250000,
"annual_rate": 6.0,
"years": 30,
"extra_payment": 300,
"one_time_extra_payments": [{"period": 24, "amount": 5000}]
}
Response fields: baseline (summary without extra payments), accelerated (summary with extra payments), periods_saved, years_saved, interest_saved
rate_conversion
Convert a nominal annual percentage rate (APR) into effective annual and payment-period rates.
Required Parameters:
action(string):"rate_conversion"annual_rate(number, 0-100): Nominal annual rate in percent
Optional Parameters:
compounding_per_year(integer, default: 12): Compounding frequencypayments_per_year(integer, default: 12): Payment frequency
Example:
{
"action": "rate_conversion",
"annual_rate": 8.0,
"compounding_per_year": 12,
"payments_per_year": 26
}
Response fields: nominal_annual_rate_percent, effective_annual_rate_percent, payment_period_rate_percent, daily_effective_rate_percent, assumptions
Workflows
- Home Purchase Planning - Use
affordability_analysisto determine budget, thencalculate_paymentto see exact payments, thenamortization_schedulewithstore_schedule_file: truefor a downloadable payment plan. - Loan Comparison Shopping - Use
compare_loanswith multiple scenarios (e.g., 15Y vs 30Y, different rates) ranked bylowest_total_costorlowest_payment. - Refinance Decision - Use
refinance_break_evento see if refinancing makes sense, checkrecommendationfield andbreak_even_months. - Early Payoff Strategy - Use
payoff_accelerationto model the impact of extra payments on term and interest savings. - Investment Growth Projection - Use
compound_interestwithperiodic_contributionto project savings/investment growth over time. - Rate Analysis - Use
rate_conversionto compare APR vs effective rates across different compounding frequencies.
Notes
- All monetary results are rounded to 2 decimal places. Rate percentages are rounded to 6 decimal places.
- The
interest_only_periodsvalue must be less than the total number of payment periods. - When
compounding_per_yeardiffers frompayments_per_year, the tool correctly converts the nominal rate to the appropriate periodic rate using the effective rate method. - Amortization schedules can be very large. Use
max_schedule_rowsto cap output size (default 5000, max 50000). If truncated,schedule_truncatedis true. - Set
return_schedule: falseto get only the summary without period-by-period rows. - CSV file uploads via
store_schedule_fileexpire in 1-7 days (configurable viaexpiration_days). - The
calculate_termaction will error if the payment is too low to amortize the loan (payment <= interest-only amount). - For
refinance_break_even, ifcurrent_paymentis not provided, it is automatically calculated from the current balance, rate, and remaining term. - The
compare_loansaction requires at least 2 scenarios. - All date fields use
YYYY-MM-DDformat. Invalid formats return a validation error.









