Qatar Market Roadmap
Single repo, config-driven — not a fork. Qatar is a market variant of the
core product: the QA jurisdiction selects Qatar compliance rules exactly the
way an AU state selects its state rules. Everything below is sequenced by the
"no build until paying signal" rule from the market analysis: Stage 0/1 are
live because they're cheap and reusable; Stages 2–4 are gated on real revenue.
The regulatory ground truth (what a Qatar PM/FM actually must do)
Researched July 2026. These drive both the rule-set that shipped and the feature gaps below.
| Obligation | Source | Cadence / deadline | Who feels it |
|---|---|---|---|
| Aqarat license for brokerage, PM, and property-maintenance companies | Law 22/2017 + Real Estate Sector Regulation Law (activated 2025); licensing via the Real Estate Regulatory Authority (Aqarat) | On registration + renewal | The agency/FM itself |
| Lease registration with the Municipality's Lease Contract Registration Office | Law 4/2008 art. 20 | 30 days from lease start; fee 1% of annual rent | Landlord/PM. Unregistered lease ⇒ fines and the Rental Dispute Settlement Committee refuses the case — no legal recourse against the tenant |
| QCDD fire safety certificate (Civil Defence) | Law 9/1993 + NFPA-based ministerial decisions | Annual inspection + renewal; requires an active Annual Maintenance Contract with a QCDD-approved fire company | Building owner/FM. A lapsed cert blocks Commercial Registration renewal |
| Bilingual contracts — Arabic + English, Arabic prevails | Law 4/2008 | Every lease | PM back office |
| Deposit return — itemized; deposit capped at 2 months' rent (art. 7) | Cap: Law 4/2008 art. 7. The 14-day return is standard lease practice, not statutory — corrected after primary-source check | 14 days after vacating (typical lease term) | PM/landlord |
| Personal-data transfers — tenant/owner data processed offshore needs safeguards; no blanket residency mandate for ordinary sectors | PDPPL (Law 13/2016) + Cloud Policy Framework | Per transfer/system | Us + enterprise buyers (Stage 3.4) |
| Landlord maintenance duty — structural + major plant: central AC/chillers, elevators, water pumps, Kahramaa transformer rooms | Law 4/2008 (fit-for-use) | Continuous; in practice annual servicing | FM — this IS their job |
| Developer licensing + escrow — off-plan money into escrow, withdrawals gated at 20% completion, 10% minimum balance | Law 6/2014 + QCB Circular 2/2025 | Per project | Developers |
| Common property / owners associations — Civil Code arts. 884–900 regulate common parts, cost apportionment by ownership share, and owners associations — but standardisation is inconsistent across towers (no detailed WEG/Dubai-style strata regulation; practice varies by developer — The Pearl already runs annual owner approval, a reserve fund, and external audit) | Qatar Civil Code arts. 884–900 | — | Service-charge transparency remains inconsistent → a clear owner ledger is a differentiator, especially for foreign landlords |
Stage 0 — SHIPPED: worker task translation (the wedge)
One-click translation of the work-order scope on the magic-link job page (Hindi, Urdu, Malayalam, Tamil, Bengali, Nepali, Tagalog, Sinhala, Arabic; RTL-aware; English fallback). This is the feature the Qatar contact said reception does by hand today, and it ships to AU too. See Magic-Link Dispatch.
Stage 1 — SHIPPED: QA jurisdiction + Qatar compliance rule-set + Doha demo
QAjoined the jurisdiction enum end-to-end (address accepts Qatar zone numbers instead of AU postcodes).- Platform compliance rules for QA (migration
V29): QCDD fire-cert annual, lease-registration audit, elevator preventive maintenance, central AC/chiller service, Kahramaa electrical, insurance, routine inspections. Generated per property like any AU state's rules. Same disclaimer as AU: reminders, not legal guarantees. - Arrears/entry notice drafters produce RDSC-appropriate wording for QA (no statutory forms in Qatar; disputes go to the Rental Dispute Settlement Committee).
- Doha demo agency (
deploy/seed-qatar.sh): Pearl/Lusail/West Bay tower stock, expat tenant mix, FM-style contractors with CR numbers, an AC-down summer emergency dispatched for the translate demo, one request submitted in Hindi. Logindemo@almarsa.demo/DohaDemo2026.
Stage 2 — on first paying pilot (weeks, not months)
Lease-registration deadline engineSHIPPED — creating a lease now spawns a compliance task duelease start + 30 days(migrationV30,GenerateLeaseTriggeredComplianceTaskshooked into lease creation). The QALEASE_REGISTRATIONrule flipped from an annual property-level audit to lease-triggered (trigger_deadline_days = 30); the property-level generator skips lease-triggered rules. Idempotent per (rule, property, due date), so re-posting a lease doesn't duplicate but a renewal gets its own countdown. Already-ended backdated leases get none — the window is long gone.Deposit-return timerSHIPPED — recording a fixed-term lease schedules a deposit-return task duelease end + 14 days(standard lease practice; the statutory piece is the 2-month cap, art. 7 — citation corrected inV37; migrationsV31/V32). The lease-triggered engine gained atrigger_event(LEASE_START|LEASE_END); periodic leases (no end date) get no deposit timer; a recently-ended imported lease still gets a live countdown if the 14-day window is open. One-shot — no roll-forward. Docs are now split per market: Qatar defaults vs Australia state defaults.QAR currency displaySHIPPED — per-agencycurrencysetting (AUD | QAR; migrationV33, Settings page select, admin-only). Rendering only — money stays plain cents. The admin SPA formats via a module-level display currency loaded inAppShell; the public worker job page gets the agency currency in the magic-link response (a Doha worker sees QAR, not AUD). Validated in theAgencydomain (SUPPORTED_CURRENCIES).APP_MARKET=QAApp Runner service — same image, own env + demo data. (The timezone caveat that lived here is closed: compliance clocks now tick in the property's own jurisdiction — Asia/Qatar for QA.)WhatsApp intakeSHIPPED (dormant until Meta credentials are set) — Cloud API webhook (/api/v1/internal/whatsapp/webhook, HMAC-authenticated, fail-closed) → messages ride the inbound-email pipeline: same inbox, same AI classification, tenant matched by phone digits,phone_number_id→ agency routing (migrationV34,PUT /api/v1/whatsapp/config). Text-only in v1; media (tenant photos) and outbound replies need a Cloud API access token — moved to Stage 3. Setup: WhatsApp Intake.
Stage 3 — on a scale commitment (an Ezdan/Capstone-sized signature)
- WhatsApp media + replies — download tenant photo messages (feeds the
photo-triage pipeline) and send auto-confirmations; needs a Cloud API
access token and Meta business verification.
0b. WhatsApp Embedded Signup (tech-provider model) — at multi-agency
scale, agencies connect their own WhatsApp Business Account to our Meta
app via Embedded Signup, keeping ownership of their number and billing.
Same webhook, same
phone_number_idrouting — zero ingestion-code changes; this is purely onboarding UX (a "Connect WhatsApp" button in Settings). Until then, our WABA hosts one number per agency. - Arabic UI chrome + RTL layout — content translation shipped in Stage 0; this is the full UI. Bounded: Tailwind RTL + string extraction.
- Bilingual lease records — Arabic-prevails contract pairs, stored and rendered side-by-side (needed the moment documents face a Qatari court or the RDSC).
RDSC dispute packSHIPPED — the existing case-pack assembler is now jurisdiction-aware: QA packs are framed for the Rental Dispute Settlement Committee (Law 4/2008 terminology — "the Committee", "security deposit", no invented statutory forms) and carry a Lease & registration evidence section drawn from PMFriend's own records: lease terms + the Municipality-registration status, with a prominent CAUTION when no completed registration is recorded (the RDSC generally refuses unregistered leases). Disclaimer explicitly makes no guarantee about admissibility or outcome, and flags that RDSC documents may be required in Arabic. AU packs are unchanged. 3b.QA notice drafting on the verified regimeSHIPPED (pulled forward — no gate needed once the art. 19/RDSC research existed): QA arrears ladder now cites art. 19 and escalates to an RDSC eviction application (fee + 15-day appeal window stated); entry notices phrase "per the lease terms"; both Claude prompts gained a QATAR block with a never-invent-forms rule; and every QA arrears draft carries a "Before you file" RDSC checklist (registration check, fee, appeal window). Compliance clocks also now tick in the property's own timezone (Asia/Qatar vs Australia/Sydney) — the roadmap's standing timezone caveat is closed.- Data residency —
prepare the documentation oncePACKAGE PREPARED: the transfer-impact summary is live at Data Protection & Residency (Qatar / PDPPL) — roles, data inventory, region map (AWS Frankfurt primary + Sydney email intake + Anthropic/Resend US subprocessors), the per-feature AI data-minimisation table (enforced in code), safeguards, rights/breach terms, and the per-deal deliverables list (DPA, questionnaires, NCSA support). A printable A4 version lives atmarketing/qatar-data-onepager.html. What remains per deal: the buyer's own counsel review and, at scale commitment, a costed GCC/in-country hosting option. Side effect of this work: the business privacy page's outdated "all data lives in Sydney" claims were corrected to the actual architecture.
Stage 4 — expansion bets (explicitly not committed)
Service-charge transparency for owners associationsSHIPPED (pulled forward) — per-property, per-year service-charge ledger with category breakdown and automatic year-on-year comparison (unusual increases flagged at >15%). MigrationV35, "Service charges" tab on the property page. Legal framing corrected: Civil Code arts. 884–900 DO regulate common property and owners associations — the gap is inconsistent standardisation across towers, which is exactly what a clear ledger addresses for a foreign landlord. Next steps live in the ledger's own doc: attach contractor invoices/documents per line, owner share for co-owned assets, and surfacing the ledger in the owner digest.- Developer escrow reporting (Law 6/2014 / QCB Circular 2/2025) — only if a developer customer pulls for it; different buyer, different product.
Aqarat license-renewal trackingSHIPPED (pulled forward) —agencies.aqarat_license_number+aqarat_license_expires_on(migrationV36), editable in Settings (shown for QAR-currency agencies), with an app-wide warning banner from 60 days before expiry (and a harder one once expired). Contractor-insurance-expiry pattern applied to the agency's own license to operate (Law 22/2017).
What we deliberately did NOT build
- No Arabic UI before a paying signal (Stage 3).
- No Qatar-specific fork — every fix ships to both markets or it doesn't ship.
- No compliance "legal guarantee" claims — same reminder-not-legal-advice stance as AU, and the bilingual/Arabic-prevails rule means a human Arabic legal review gates anything contract-adjacent.