recommend_packages
Recommend mortgage packages
Rank live Singapore mortgage packages for one borrower and loan. Returns `recommended` (up to 3 picks with `reasoning`), `lowestRateIds` (cheapest eligible first), `isPersonalised` and `packages` (full details by id).
Required: `dealKind` (PURCHASE | REFINANCE), `propertyType` (HDB | PRIVATE | COMMERCIAL), `propertyStatus`, `loanAmount` (SGD); for REFINANCE also `currentBankId` from `list_banks`. Ask for missing facts; do not guess. Valid statuses: HDB: COMPLETED or BTO; PRIVATE: COMPLETED or BUC; COMMERCIAL: OWNEROCCUPIED, INVESTMENT or PERSONAL.
Optional: `ratesType` (FIXED | FLOATING), `userContext` (free-text priorities).
Call again with the full input set whenever anything changes. Not for what-if rates (use `calculate_mortgage_repayment`).
输入参数dealKind必填ratesTypeloanAmount必填userContextpropertyType必填currentBankIdcandidateLimitpropertyStatus必填lockInPeriodYrsfixedDurationYrs
compare_packages
Compare mortgage packages
Compare 2–3 specific mortgage packages side by side: average rate over the lock-in, benchmark index, effective rate and monthly instalment per year, interest paid per year, and flexibility terms (prepayment, free conversion, sale waiver, penalties, minimum loan).
Required: `packageIds` from `recommend_packages` and `loanAmount` (SGD). Optional: `tenureYears` (default 25); `dealKind`/`propertyType`/`propertyStatus` only label the comparison header.
Not for finding packages: it has no borrower context, so use `recommend_packages` for a personalised ranking. `verdicts`/`recommendedId` only carry over reasoning from a prior `recommend_packages` call; never author them.
输入参数dealKindverdictsloanAmount必填packageIds必填tenureYearspropertyTyperecommendedIdpropertyStatus
List active banks and lenders (id and name), sorted by name. Use it to resolve a borrower's current lender to the `currentBankId` that `recommend_packages` requires for refinance deals. Not a rate source.
无需输入参数。
get_property_valuation
Get indicative property valuation
Indicative valuation (SGD) for a Singapore residential unit from an external valuation source. Requires `postalCode` and `unitNumber` in FF-SS format (e.g. "04-02"). `propertyType` ("Condo" or "HDB") and `areaSqft` are optional; without `propertyType` both are tried and `propertyTypeUsed` says which valued the unit. `valued: false` means the unit could not be valued: a valid answer, not an error. An estimate, not a formal bank valuation.
输入参数areaSqftpostalCode必填unitNumber必填propertyType
calculate_package_schedule
Calculate package payment schedule
Compute the amortisation schedule for a specific mortgage package using that package's real effective rates. Returns loan facts (`context`), the per-tier breakdown (`periods`), rate structure, totals and the per-year schedule (`annual`).
Required: `packageId` from `recommend_packages`, `loanAmount` (SGD) and `tenureYears`. Optional: `includeMonthly: true` fills `monthly`; `firstPaymentDate` (YYYY-MM-DD, defaults to next month).
Not for hypothetical rates: use `calculate_mortgage_repayment` for a what-if rate the borrower holds no package for.
输入参数packageId必填loanAmount必填tenureYears必填includeMonthlyfirstPaymentDate
list_market_indices
List market indices
List market benchmark indices (id, slug, name, currency), sorted by slug. Use this to resolve a benchmark name like 'SORA' into the `marketIndexId` required by `get_index_quotes`.
无需输入参数。
get_index_quotes
Get market index quotes
Return historical quotes (rate by date) for a market benchmark index such as SORA. Requires `marketIndexId` from `list_market_indices`. Optional `startDate`/`endDate` (YYYY-MM-DD) narrow the range; results are paginated, newest first. Quote `rate` values are decimal fractions (0.0356 = 3.56% p.a.). Not a package rate: use `recommend_packages` for those.
输入参数pagelimitendDatestartDatemarketIndexId必填
calculate_affordability
Affordability calculator
Estimate the maximum loan and property price (SGD) a borrower can afford from monthly income, existing debt commitments and tenure, applying Singapore TDSR/MSR limits. Use this when you know the income and want the budget; for the income a target price needs, use `calculate_required_income`. For joint borrowers with assets and liabilities in detail, use `check_eligibility`.
输入参数agecpfOAcashSavingscitizenshipmonthlyDebtinterestRatepropertyTypestressTestRateloanTenureYearsexistingPropertymonthlyFixedIncome必填monthlyVariableIncome另有 1 个
calculate_required_income
Required-income calculator
Reverse affordability: work out the gross monthly income (SGD) needed to support a target property price under Singapore TDSR/MSR limits. Use this when you know the target price; for the budget a known income supports, use `calculate_affordability`.
输入参数agecpfOAcashSavingscitizenshipmonthlyDebtinterestRatepropertyTypepropertyPrice必填stressTestRateloanTenureYearsexistingPropertyexistingPropertiesOwned
calculate_mortgage_repayment
Mortgage repayment calculator
Compute the monthly repayment, total interest and total cost (SGD) for a hypothetical loan from a loan amount, tenure and an interest rate you supply (standard amortisation). Use this for what-if rates; for the real rates of a specific package, use `calculate_package_schedule` instead.
输入参数loanAmount必填tenureYears必填interestRate必填
calculate_refinance_savings
Refinance savings calculator
Compare a borrower's existing mortgage against a new rate and report monthly savings, total savings (SGD) and break-even months. Set `mode` to 'original' (supply the original loan amount, tenure and start date) or 'remaining' (supply the current outstanding balance and remaining tenure). Not for finding the new package: use `recommend_packages` for that.
输入参数mode必填newRate必填currentRate必填loanStartYearloanStartMonthnewTenureYearsremainingAmountrefinancingCostsoriginalLoanAmountoriginalTenureYearsremainingTenureYearsearlyRedemptionPenalty
calculate_residential_stamp_duty
Residential stamp duty (BSD + ABSD)
Compute Buyer's Stamp Duty (BSD) and Additional Buyer's Stamp Duty (ABSD) in SGD for a Singapore residential purchase, given the price or value, buyer type (singaporean | pr | foreigner | entity | trust) and the number of residential properties already owned. For the full upfront cost of a purchase, use `calculate_purchase_cost`.
输入参数price必填buyerTypepropertyTypepurchaseTypeexistingPropertiesOwned
calculate_rental_stamp_duty
Rental stamp duty
Compute the Singapore stamp duty (SGD) payable on a property lease or tenancy from the rent and lease term. Not for purchases: use `calculate_residential_stamp_duty` for BSD and ABSD.
输入参数hasPremiummonthlyRent必填premiumAmountleasePeriodMonths
calculate_mortgage_stamp_duty
Mortgage stamp duty
Compute the Singapore stamp duty (SGD) payable on a mortgage or loan facility from the loan amount. Not for purchases: use `calculate_residential_stamp_duty` for BSD and ABSD.
输入参数loanAmount必填
calculate_seller_stamp_duty
Seller's Stamp Duty (SSD)
Compute Singapore Seller's Stamp Duty (SSD, in SGD) from the sale price or value and how long the residential property has been held. For net cash from a sale, use `calculate_sales_proceeds`.
输入参数price必填saleDate必填purchaseDate必填
analyze_sell_one_buy_two
Sell-one-buy-two analysis
Analyse a 'sell one, buy two' plan where two co-owners sell their joint home. Returns the sale proceeds (cash after loan, CPF refunds, SSD and legal fees) and each buyer's resulting cash and CPF. With `buy1`, it compares buying one replacement jointly or under either buyer alone; with `buy2Property1` and `buy2Property2`, each buyer buying one property (both pairings). Every option is given at 30- and 35-year tenures with max loan, LTV, instalment, downpayment, stamp duties, cash/CPF shortfalls, TDSR used and an affordability verdict.
输入参数buy1buyer1必填buyer2必填valuation必填buyer1Sharesbuyer2Sharesbuy2Property1buy2Property2buyer1CpfUsagebuyer2CpfUsageoutstandingLoansellerStampDuty另有 1 个
check_eligibility
Eligibility checker (TDSR / MSR)
Run the regulatory affordability gate for one main borrower and up to three joint borrowers. Given each borrower's income, rental, pledged/unpledged assets and liabilities plus a proposed loan, returns the qualifying income (after MAS haircuts), the TDSR and MSR for the proposed loan, the income-weighted average age (IWAA), and the maximum loan under both HDB/EC and private property rules. Use this upstream of `recommend_packages` to confirm what a borrower can qualify for.
输入参数asOfDateborrowers必填propertyTypetargetLtvCapageConventionbenchmarkRateloanTenureYearscombinationSplittargetLoanAmountproposedLoanAmount必填targetPurchasePriceexistingHousingLoans
analyze_decoupling
Decoupling analysis
Analyse decoupling, where one co-owner of a Singapore property transfers their share to the other: the seller's cash proceeds (after loan, CPF refund, SSD and legal fees), the buyer's financing of the share, BSD and ABSD, and the cost of each option for a planned next purchase. All amounts in SGD.
输入参数buyer必填seller必填valuation必填outstandingLoannewPropertyPrice
calculate_sales_proceeds
Sales proceeds calculator
Work out what a seller walks away with when selling a property: cash proceeds after redeeming the outstanding loan, refunding each owner’s CPF (principal plus accrued interest, 1 to 4 owners), and paying agent commission (with 9% GST), legal and miscellaneous fees. Flags a negative sale when the deductions exceed the selling price.
输入参数owners必填legalFeessellingPrice必填agentFeePercentmiscellaneousFeesoutstandingLoanAmount
calculate_purchase_cost
Purchase cost & funding breakdown
Calculate the full upfront cost of purchasing a Singapore residential property (HDB or private resale), with each cost line attributed to its funding source (cash, CPF or bank loan). Returns option fee, exercise fee, stamp duties (BSD and ABSD), downpayment breakdown, and a sufficiency check against available funds.
输入参数ltvcpfFirstbuyerTypeloanAmountpropertyType必填availableCashpurchasePrice必填availableCpfOAlegalFeeFundinglegalFeeOverridestampDutyFundingminimumCashPercent另有 2 个
calculate_hdb_resale_timeline
HDB resale purchase timeline
Generate a step-by-step dated timeline for an HDB resale purchase, from securing the Option to Purchase through to completion and key collection. Returns the ordered steps (what happens, the date, any payment due and its CPF/cash split), a summary (total payments, CPF and cash totals, completion date, duration in days), BSD and ABSD, the funding split (LTV, downpayment, minimum cash, cash-or-CPF remainder, monthly instalment when a rate and tenure are given), the completion date used, and self-checks.
输入参数cpfUsagelegalFeebuyerTypeoptionFeeotherFeesloanAmountoptionDate必填exerciseFeetenureYearsexerciseDate必填interestRatepurchasePrice必填另有 3 个
calculate_private_resale_timeline
Private resale purchase timeline
Generate a step-by-step dated timeline for a private (non-HDB) resale purchase, with the 1% option fee, 4% exercise payment, stamp duties and completion payment at the right steps. Exercise date defaults to 14 calendar days inclusive of the option date if not entered.
输入参数cpfUsagelegalFeebuyerTypeotherFeesloanAmountoptionDate必填tenureYearsexerciseDateinterestRatepurchasePrice必填completionDateoptionExpiryDate必填另有 1 个
calculate_progressive_payment
Progressive payment (BUC) calculator
Model the monthly instalment profile of a Singapore Building Under Construction (BUC) property loan across progressive payment stages. Handles fixed and floating rate packages, per-stage cash/CPF/loan funding split, drawdown timing, rate stepping by year, and optional prepayments. Set includeSchedule to true for the full month-by-month amortisation schedule (summary is always included).
输入参数stagesotpDate必填topDate必填rateModeloanAmountloanQuantumprepaymentsratePerYear必填tenureYears必填lockInMonthspurchasePrice必填referenceRate另有 7 个