npa-alerts

star 0

NPA property alert system. Scans ALL provider databases (LED, SAM, BAM, JAM, KTB, KBANK) for newly added properties, price drops, best deals, properties near BTS/MRT, and upcoming auctions. Can generate daily reports and run on schedule.

Arsapol By Arsapol schedule Updated 4/6/2026

name: npa-alerts description: NPA property alert system. Scans ALL provider databases (LED, SAM, BAM, JAM, KTB, KBANK) for newly added properties, price drops, best deals, properties near BTS/MRT, and upcoming auctions. Can generate daily reports and run on schedule.

NPA Alerts

Automated alert system for NPA property opportunities across all 6 providers.

Commands

All commands run from scripts/ directory:

New Properties (last N hours) — ALL 6 PROVIDERS

python alert.py new --hours 24                           # Last 24h across all providers
python alert.py new --hours 48 --source bam              # BAM only, last 48h
python alert.py new --source jam                         # JAM only
python alert.py new --source ktb                         # KTB only
python alert.py new --source kbank                       # KBANK only
python alert.py new --json                               # JSON output

Sources: all (default), led, sam, bam, jam, ktb, kbank

Price Drops — ALL 5 PROVIDERS WITH HISTORY

python alert.py drops --hours 24 --min-drop 5            # ≥5% price drops in last 24h
python alert.py drops --hours 168 --min-drop 10 --limit 20  # ≥10% drops in last 7 days
python alert.py drops --json                             # JSON output

Sources: SAM (sam_price_history), BAM, JAM, KTB, KBANK (all via price_history tables)

Price Increases — UNUSUAL, WORTH INVESTIGATING

python alert.py increases --hours 24 --min-increase 5    # ≥5% price increases in last 24h
python alert.py increases --hours 168 --min-increase 10   # ≥10% increases in last 7 days
python alert.py increases --json                         # JSON output

Why it matters: NPA prices normally only go DOWN. A price increase signals something changed — re-appraisal, encumbrance removed, market shift, or area gentrification. Worth investigating the reason.

Best Deals (biggest discount vs enforcement officer appraisal)

python alert.py deals --min-discount 30 --limit 20   # >30% below appraisal
python alert.py deals --max-price 5000000            # Under ฿5M

Near BTS/MRT — ALL 5 PROVIDERS WITH GPS

python alert.py bts --meters 500 --limit 20           # Within 500m of any station
python alert.py bts --meters 1000 --max-price 3000000  # Under ฿3M within 1km
python alert.py bts --source bam                       # BAM only near transit

Sources: all (default), sam, bam, jam, ktb, kbank (LED has no GPS data)

Upcoming Auctions (LED)

python alert.py upcoming --days 14            # Next 2 weeks
python alert.py upcoming --days 30 --province "กรุงเทพ"  # Bangkok only

Full Daily Report

python alert.py report                        # All sections combined

Alert Sections

Section Sources Description
New Properties LED + SAM + BAM + JAM + KTB + KBANK Properties added in last 24h (by first_seen_at / created_at)
Price Drops SAM + BAM + JAM + KTB + KBANK Price drops ≥5% detected via price_history tables
Price Increases SAM + BAM + JAM + KTB + KBANK Price increases ≥5% — unusual for NPA, investigate why
Best Deals LED Properties >30% below enforcement officer appraisal
Near BTS/MRT SAM + BAM + JAM + KTB + KBANK Properties within 500m of transit (has GPS)
Upcoming Auctions LED Properties with auction dates in next 30 days

Data Sources

Provider Count Price Field GPS Price History Notes
LED (กรมบังคับคดี) 17,705 satang (÷100) Court auctions, created_at
SAM (บสส.) 4,707 baht ✅ sam_price_history Best data quality, first_seen_at
BAM (BAY) 6,798 baht (discount_price) ✅ bam_price_history Grade A/B properties, first_seen_at
JAM (IMC) 38,820 baht (discount) ✅ jam_price_history 2nd largest NPA source, first_seen_at
KTB (Krungthai) 2,671 baht (price) ✅ ktb_price_history Biggest discounts, first_seen_at
KBANK 13,361 baht (promotion_price) ✅ kbank_price_history Thin condo inventory, first_seen_at

Transit Stations

Hardcoded BTS/MRT stations for distance calculations. Covers:

  • BTS Sukhumvit Line (สยาม → สมุทรปราการ)
  • BTS Silom Line (สยาม → สำโรง + กรุงธนบุรี extension)
  • BTS Northern Extension (หมอชิต → สายหยุด)
  • MRT Blue Line (สวนจตุจักร → แบริ่ง + ลุมพินี → สามย่าน)
  • MRT Purple Line connection (บางซื่อ)

Notes

  • LED properties don't have GPS coordinates — transit alerts exclude LED
  • LED next_auction_date is stored as varchar (not date) — queries cast to date
  • Enforcement officer price (enforcement_officer_price_satang) serves as the appraisal baseline for LED deals
  • Very high discounts (>90%) are normal for properties that have gone through many auction rounds
  • Price drop detection uses change_type = 'price_drop' in price_history tables (recorded by scrapers)
Install via CLI
npx skills add https://github.com/Arsapol/agent-npa-guy --skill npa-alerts
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator