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 個