Skip to content

Property: LTV (Loan-to-Value) Limits Enforcement #174

@jcleow

Description

@jcleow

Summary

Add Loan-to-Value (LTV) limit enforcement based on Singapore's MAS regulations. LTV limits vary by property count and loan status, significantly affecting downpayment requirements.

Why This Matters

  • LTV determines minimum downpayment (e.g., 75% LTV = 25% downpayment required)
  • Second and subsequent properties have much stricter LTV limits
  • Directly affects affordability and cash/CPF required upfront

Singapore LTV Limits (MAS Regulations)

For Individuals

Property Outstanding Loans Max LTV (Bank) Max LTV (HDB)
1st property 0 75% 80%
1st property ≥1 45% N/A
2nd property 0 45% N/A
2nd property ≥1 25% N/A
3rd+ property Any 25% N/A

Additional Adjustments

  • If loan tenure + age > 65 (HDB) or 65/75 (Private): LTV reduced by 5%
  • EC from developer: 75% max LTV

Proposed Data Fields

interface LTVConfig {
  propertyCount: number            // How many properties does buyer own?
  hasOutstandingLoan: boolean      // Any existing housing loan?
  loanType: 'hdb' | 'bank'
}

// Computed
interface LTVConstraints {
  maxLTV: number                   // e.g., 0.75 for 75%
  minDownpaymentPercent: number    // 1 - maxLTV
  minCashPercent: number           // Minimum cash portion (usually 5%)
  maxCPFPercent: number            // Maximum CPF for downpayment
}

Calculation Logic

function getMaxLTV(propertyCount: number, hasOutstandingLoan: boolean, loanType: string): number {
  if (loanType === 'hdb') return 0.80  // HDB loan always 80%
  
  if (propertyCount === 1) {
    return hasOutstandingLoan ? 0.45 : 0.75
  } else if (propertyCount === 2) {
    return hasOutstandingLoan ? 0.25 : 0.45
  } else {
    return 0.25
  }
}

UI Integration

  • Input for property count (or derive from user's property portfolio)
  • Toggle for "Do you have outstanding housing loans?"
  • Display maximum LTV and minimum downpayment
  • Warning if loan amount exceeds LTV limit
  • Auto-calculate minimum cash vs CPF split

Acceptance Criteria

  • Property count input available
  • Outstanding loan status tracked
  • Correct LTV limit applied based on rules
  • Minimum downpayment calculated from LTV
  • Warning shown if loan amount exceeds limit
  • Age-based LTV reduction applied when applicable (links to Property: Age-Based Loan Tenure Restrictions #173)

References

Labels

property, enhancement, P2

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions