| name | property-calc |
| description | Thai NPA property financial calculator. Computes acquisition costs (transfer fee, SBT, WHT, stamp duty), rental yield, price per sqm/wah/rai, and break-even timeline. Use when evaluating any property's financials. |
Property Financial Calculator
Overview
Calculates all financial metrics for Thai NPA property evaluation. Handles Thai-specific transfer taxes, size unit conversions (rai/ngan/wah/sqm), and rental yield analysis.
Usage
Full Analysis with Rent Range (recommended)
python scripts/calc.py --price 1800000 --appraised 2500000 --sqm 35 \
--rent-low 9000 --rent-mid 10000 --rent-high 12000 \
--market-price 62800 --renovation 100000
Full Analysis (single rent)
python scripts/calc.py --price 2500000 --appraised 3500000 --rent 15000 --sqm 35
python scripts/calc.py --price 5000000 --appraised 8000000 --rai 0 --ngan 1 --wah 50 --rent 25000 --renovation 500000
Condo Example
python scripts/calc.py --price 1800000 --appraised 2500000 --sqm 28 --rent 12000 --common-fee 2000
Land Example
python scripts/calc.py --price 10000000 --appraised 15000000 --rai 2 --ngan 1 --wah 0
JSON output (for programmatic use)
python scripts/calc.py --price 2500000 --sqm 35 --rent 15000 --json
LED Auction Round Analysis
python scripts/calc.py --led-round 6 --led-appraised 2600000
python scripts/calc.py --price 1820000 --appraised 2600000 --led-round 6 --sqm 143.5 --rent 15000
python scripts/calc.py --led-round 3 --led-appraised 5000000 --json
LED Auction Price Reduction Rules (กรมบังคับคดี)
| นัด (Round) | Starting Price | Notes |
|---|
| 1st | 100% of appraised value | Full price |
| 2nd | 90% | -10% if unsold |
| 3rd | 80% | -20% if unsold |
| 4th+ | 70% (floor) | Won't go lower |
Key points:
- Floor is 70% — price never drops below this regardless of how many rounds fail
- All 6th-round Bangkok NPA condos are already at the floor
- If a property is at floor and still unsold after 6 rounds, the issue is the property itself, not the price
Parameters
| Param | Description |
|---|
--price | Purchase/auction price in baht (required) |
--appraised | Appraised value in baht (defaults to purchase price) |
--rent | Expected monthly rent in baht |
--sqm | Size in square meters (for condos) |
--rai | Size in rai |
--ngan | Size in ngan |
--wah | Size in square wah |
--renovation | Estimated renovation cost in baht |
--vacancy | Vacancy rate (default: 0.10 = 10%) |
--common-fee | Monthly common area fee in baht |
--held-over-5y | Flag if held >5 years (0.5% stamp duty instead of 3.3% SBT) |
--led-round | LED auction round number (shows price reduction analysis) |
--led-appraised | Appraised price for LED analysis (defaults to --appraised) |
--rent-low | Low rent estimate (baht/month) — use with --rent-mid and --rent-high |
--rent-mid | Mid rent estimate (baht/month) |
--rent-high | High rent estimate (baht/month) |
--market-price | Market price per sqm or wah (for discount sanity check) |
--market-unit | Unit for --market-price: "sqm" (default) or "wah" |
Thai Transfer Tax Rates
| Tax | Rate | When |
|---|
| Transfer Fee | 2% | Always (on appraised value) |
| Specific Business Tax (SBT) | 3.3% | Property held < 5 years |
| Stamp Duty | 0.5% | Property held >= 5 years (replaces SBT) |
| Withholding Tax (WHT) | 1% | Always |
NPA auction note: Buyer typically pays transfer fee (2%). SBT/WHT is usually seller's responsibility but varies by auction terms.
Size Conversions
| Unit | Square Meters |
|---|
| 1 rai | 1,600 sqm |
| 1 ngan | 400 sqm |
| 1 square wah | 4 sqm |