Skip to main content

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.

ObligationSourceCadence / deadlineWho feels it
Aqarat license for brokerage, PM, and property-maintenance companiesLaw 22/2017 + Real Estate Sector Regulation Law (activated 2025); licensing via the Real Estate Regulatory Authority (Aqarat)On registration + renewalThe agency/FM itself
Lease registration with the Municipality's Lease Contract Registration OfficeLaw 4/2008 art. 2030 days from lease start; fee 1% of annual rentLandlord/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 decisionsAnnual inspection + renewal; requires an active Annual Maintenance Contract with a QCDD-approved fire companyBuilding owner/FM. A lapsed cert blocks Commercial Registration renewal
Bilingual contracts — Arabic + English, Arabic prevailsLaw 4/2008Every leasePM 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 check14 days after vacating (typical lease term)PM/landlord
Personal-data transfers — tenant/owner data processed offshore needs safeguards; no blanket residency mandate for ordinary sectorsPDPPL (Law 13/2016) + Cloud Policy FrameworkPer transfer/systemUs + enterprise buyers (Stage 3.4)
Landlord maintenance duty — structural + major plant: central AC/chillers, elevators, water pumps, Kahramaa transformer roomsLaw 4/2008 (fit-for-use)Continuous; in practice annual servicingFM — this IS their job
Developer licensing + escrow — off-plan money into escrow, withdrawals gated at 20% completion, 10% minimum balanceLaw 6/2014 + QCB Circular 2/2025Per projectDevelopers
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–900Service-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

  • QA joined 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. Login demo@almarsa.demo / DohaDemo2026.

Stage 2 — on first paying pilot (weeks, not months)

  1. Lease-registration deadline engine SHIPPED — creating a lease now spawns a compliance task due lease start + 30 days (migration V30, GenerateLeaseTriggeredComplianceTasks hooked into lease creation). The QA LEASE_REGISTRATION rule 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.
  2. Deposit-return timer SHIPPED — recording a fixed-term lease schedules a deposit-return task due lease end + 14 days (standard lease practice; the statutory piece is the 2-month cap, art. 7 — citation corrected in V37; migrations V31/V32). The lease-triggered engine gained a trigger_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.
  3. QAR currency display SHIPPED — per-agency currency setting (AUD | QAR; migration V33, Settings page select, admin-only). Rendering only — money stays plain cents. The admin SPA formats via a module-level display currency loaded in AppShell; the public worker job page gets the agency currency in the magic-link response (a Doha worker sees QAR, not AUD). Validated in the Agency domain (SUPPORTED_CURRENCIES).
  4. APP_MARKET=QA App 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.)
  5. WhatsApp intake SHIPPED (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 (migration V34, 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)

  1. 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_id routing — zero ingestion-code changes; this is purely onboarding UX (a "Connect WhatsApp" button in Settings). Until then, our WABA hosts one number per agency.
  2. Arabic UI chrome + RTL layout — content translation shipped in Stage 0; this is the full UI. Bounded: Tailwind RTL + string extraction.
  3. Bilingual lease records — Arabic-prevails contract pairs, stored and rendered side-by-side (needed the moment documents face a Qatari court or the RDSC).
  4. RDSC dispute pack SHIPPED — 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 regime SHIPPED (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.
  5. Data residencyprepare the documentation once PACKAGE 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 at marketing/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 associations SHIPPED (pulled forward) — per-property, per-year service-charge ledger with category breakdown and automatic year-on-year comparison (unusual increases flagged at >15%). Migration V35, "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 tracking SHIPPED (pulled forward) — agencies.aqarat_license_number + aqarat_license_expires_on (migration V36), 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.