Tamleek Plus · Confidential
Phase 1 Architecture & Delivery Plan
Consumer-first real estate intelligence for The Pearl Island, Doha.
Scope, complexity, cost, team — for Jim's decision.
Confidential — mutual NDA in force (ERARTA FZE, signed 2026-05-06)
Not for distribution without Jim Briggs written consent
Slide 02 — What we are building
Two surfaces. One data layer. Consumer-first.
Consumer experience and agent workspace ship together — neither works without the other. The Pearl Island only at launch.
Consumer experience
Free at launch
Search · Listing Valuation Tool · Intelligence Card
Sale-primary, rental yield-derived
Agent workspace
QAR 499 / seat / mo
Building profiles · HITL queue · Card review
Broker license verified vs Aqarat on first login
Investor off-market
QAR 2,500–3,500 / mo
PDF deal memo · Email delivery only · No dashboard UI
"Phase 1 is a consumer-first real estate intelligence platform powered by MoJ sale data, agent-maintained building intelligence, and yield-derived rental context. Consumer experience is the north-star. Agent workspace is what makes it trustworthy. Neither works without the other. Build this. Ship it. Prove the quality gates. Then expand."
— PRD v1.0 §15 (binding)
| Phase 1 target outcome | Target | Status framing |
| Consumer users in genuine decision context | 5 | Quality gate |
| Paying broker seats | ≥ 3 | Primary revenue |
| Paying investor subscribers | ≥ 2 | Gated subscription |
| Daily report recipients | ≥ 20 | Free email |
| Pearl buildings with approved Intelligence Cards | ≥ 20 | Drafter gate |
Slide 03 — Architecture
Five layers on a single governed data platform
All compute in GCP me-central2 (Doha) — mandatory for Qatar PDPPL Article 13 data residency.
Applications
Consumer web
Agent workspace
WhatsApp Task OS (Phase 2)
B2B Intelligence API (Phase 2)
Intelligence — Phase 1 subset
Assessment Drafter (Gemini 2.0 Flash)
Anchor Confidence Engine
Daily Report Generator
text-embedding-005 (tiebreaker)
Graph RAG (Phase 2)
GCP Data Platform — me-central2
BigQuery (system of record)
Cloud SQL Postgres (T-class PII)
Firestore (hot cache)
Cloud Run
Pub/Sub
Cloud Scheduler
Document AI Custom Extractor
Firebase Auth + Custom Claims
Data Sources — Tier 1 Core (governing)
MoJ Weekly Bulletin
Agent Building Profiles
Aqarat Broker Registry
PSA / QCB REPI
Google Maps Platform
Portal listings (enrichment only)
Aqarat Lease Records (T2, conditional)
Trust + Control Plane (cross-cutting)
Source Registry
PDPPL Vault (vault_id FK)
HITL Queue
Audit Logs (1yr+)
Day-one infra deliverable
Qatar-egress proxy VM
Compute Engine in me-central2, static Qatari IP.
Replaces remote desktop into Jim's machine.
Dual use: production MoJ scraping + developer VPN.
Three-ID system (replaces QPID)
listing_id — raw record, at ingestion
property_cluster_id — probabilistic unit grouping
market_anchor_id — benchmark context
QPID formally deferred to Phase 3 per PRD §15
Not in Phase 1
QPID · B2B API · ADK multi-agent · BigQuery Graph · AVM · Lusail / West Bay · Mortgage processing · Native mobile · Consumer premium · Investor dashboard UI
Slide 04 — Current prototype audit
What exists today: a Proof of Intelligence, not a product
Live FastAPI demo on Railway, audited 2026-05-11. Concept validated. Production architecture still to build.
What works — real data, just queried
| MoJ records | 8,654 tx |
| Date range | Jan 2025 — Feb 2026 (14 mo) |
| Municipalities · districts | 18 · 167 |
| Avg deal value | 3.12M QAR |
| Avg PSM (all stock) | 27,367 QAR/m² |
| The Pearl Island | 44,188 QAR/m² · 1,106 tx |
| Tests passing | 63 unit · 13 integration · 7/9 E2E |
| API endpoints live | 19 |
What carries over (preserves Jim's investment)
- 8,654 MoJ records → BigQuery
raw.moj_transactions
- PSM-aggregation SQL → BQ Scheduled Query
- 10%-below-market threshold — matches PRD §8.3
- ROI / yield formula — net yield correct per PRD §9.3
- Investor profile schema → consumer/investor model
- SSE "Agent Thinking" UX — reuse for Drafter live status
D1 gate — likely viable for common buckets. The Pearl Island shows 1,106 transactions over 14 months. At a 6-way sub-precinct split this averages ~150-200 per subzone — encouraging for mainstream categories (Porto Arabia × 1-2BR, Viva Bahriya × 2-3BR). Once split by bedroom count, thin tail buckets (Fox Hills × 4BR × villa, Qanat Quartier × studio) may fall below the ≥5 threshold and need Branch B fallback. Pivot table needed before claiming the gate is closed — Week-1 BigQuery query against raw.moj_transactions.
| What is broken / out of spec | Severity |
| Four different Pearl PSM values coexist in the DB: 13,947 (AI Analyst SQL using ILIKE '%Pearl%' AVG of all property types) · 44,188 (chart, by district) · 58,164 (listings, district="The Pearl") · 62,285 (applied to mis-tagged "Doha" Pearl listings). 3.16× spread — data governance failure, not benchmark tuning. |
Critical |
| No subzone anchoring · No Three-ID system · No confidence levels (every verdict "100/100") |
High |
| No Assessment Drafter (match-reasons templated, not LLM-generated) |
High |
Hosted on Railway — violates PDPPL Article 13 for any real PII. Must move to me-central2 before consumer launch. |
Compliance |
| Auth = shared HTTP Basic password · No Firebase · No broker license check vs Aqarat |
RE-Law |
Google Maps API key returned by /api/config — exposed to any authenticated client. Rotate. |
Security |
| Listings are Polish-language LuxuryEstate scrapes — won't pass Qatar consumer UX |
UX |
| No agent workspace · No off-market pipeline · No daily report · No HITL queue |
Scope gap |
Slide 05 — Source governance
Only Tier 1 Core sources may govern verdicts
Section 2 Supremacy (PRD §2): any source not in PRD §2 is invalid on its face. Verdicts, confidence labels, cited comparables — Tier 1 Core only.
| Source | Tier & Role | What it can do | Phase |
| MoJ Weekly Bulletin |
T1 Core |
Governs sale benchmarks, transaction volume |
1A |
| Agent Building Profiles |
T1 Proprietary |
Governs building intelligence — proprietary moat |
1A |
| Aqarat Broker Registry |
T1 Enrichment |
Broker authentication only |
1A |
| PSA · QCB REPI · Google Maps · Schools |
T1 Enrichment |
Context, no verdict changes |
1A |
| Portal listings (scraped) |
T5 Enrichment |
Listing velocity, asking/sold spread — enrichment only |
1A stretch |
| Aqarat Lease Records |
T2 conditional |
Building rental benchmarks IF unit-level schema confirmed |
1B conditional |
| MoJ REGIS · Kahramaa · CGIS |
T3–T4 Blocked |
Do not engineer against in Phase 1 |
Phase 3 |
Binding rule (PRD §1)
Only Tier 1 Core sources determine product verdicts. Enrichment sources add context — they do not change a confidence label or create a cited claim.
Agent Building Profiles — the moat
No public scraper can replicate this. HITL-maintained by licensed Pearl brokers. Every profile is human-reviewed before a building gets an Intelligence Card.
Source Promotion Protocol
Tier 2 → Tier 1 promotion requires: data agreement + schema review + 30-day quality assessment + bilateral co-founder sign-off. A recorded human decision, never a code change.
Slide 06 — The Pearl decomposition
6 sub-precincts · broker-validated yield matrix
All Pearl buildings mapped to a sub-precinct. Yield matrix populates only after validation with ≥3 Pearl brokers.
| Sub-Precinct | Gross Yield Range | Launch Midpoint | Confidence |
| Porto Arabia |
5.2 – 5.8% |
5.5% |
High |
| Viva Bahriya |
5.5 – 6.0% |
5.75% |
High |
| Medina Centrale |
5.8 – 6.2% |
6.0% |
Medium |
| Qanat Quartier |
5.5 – 6.0% |
5.75% |
Medium |
| Abraj Quartiers |
6.0 – 6.5% |
6.25% |
Medium |
| Fox Hills |
6.5 – 7.2% |
6.85% |
Low — validate first |
Yield formula (Phase 1A): Annual Rent = Median_PSM(subzone, bedrooms) × Area_sqm × Yield_Midpoint(subzone)
Displayed as monthly range ±10%. Labeled DERIVED until Phase 1B Aqarat data is confirmed.
Anchor confidence hierarchy
-
HIGH Building (≥3 leases) — Phase 1B only
-
PROBABLE Subzone (MoJ ≥5 tx) — Branch A
-
LOW Zone (MoJ ≥10 tx) — Branch B, range only
-
DERIVED Yield-derived, no comps
-
UNKNOWN Verdict suppressed
Confidence suppression rule
Enforced at the data layer, not the UI layer. When anchor_level = zone or yield_derived, the Drafter verdict paragraph is suppressed.
D1 gate update
With 1,106 Pearl transactions in the prototype DB across 14 months, Branch A (subzone primary) is highly likely viable. Confirm with one BQ query Week 1.
Slide 07 — Scope by workstream
Five tracks · graded by complexity, not by week
Phase 1 timeline is "build as we go" per Jim's direction. What matters is which workstreams carry the most engineering risk — they need senior attention, peer review, and quality gates.
GCP project setup · IAM · Workload Identity Federation · BigQuery + Cloud SQL schema · Pub/Sub topics · Cloud Scheduler crons · Terraform IaC · me-central2 region pinning
Qatar-egress proxy VM (production scraper + dev VPN) · MoJ Bulletin ingest · Document AI ar-QA fine-tuning (≥92% accuracy target) · Listing normalization · Cluster matching (Three-ID assignment) · Anchor computation · Yield derivation BQ Scheduled Query
Drafter prompt v1 against golden card set · 75% agreement merge gate · Auto-rollback on production agreement drop · Confidence suppression rules at data layer · text-embedding-005 for tiebreaker · Gemini 2.0 Flash via Vertex AI
Consumer experience (React, 3-column workspace per PRD Visual 2) · Search + Listing Valuation Tool + Intelligence Card · Agent workspace (admin UI, HITL queue, building profile form) · Off-market submission form + WeasyPrint PDF · Daily report HTML email pipeline
PDPPL Article 13: T-class field separation · vault_id FK pattern · CMEK on Cloud SQL · T-class never in BigQuery (continuous trip-wire test) ·
RE-Law 22/2017: Aqarat broker license check at first login · Firebase Custom Claims · workspace ACL ·
Security baseline: Cloud Armor · VPC Service Controls · IAP-only SSH · audit logs 1yr+
Observability (Grafana + Prometheus + Loki) · QA agent for PRs and live infra · GA4 + privacy-safe analytics · Playwright E2E suite as merge gate. See next slide.
Slide 08 — Production quality plane
Four systems that turn a demo into a product
Neither PRD nor SoftKraft brief specify how the platform stays operable after it ships. This is the gap. These four systems are non-negotiable for Phase 1.
Observability — Grafana stack
Prometheus on every Cloud Run service · Loki for structured JSON logs · OpenTelemetry traces · Grafana dashboards · Telegram alerts in @ErartaServicesBot
Dashboards: Pipeline health · Drafter quality (75% gate live) · Consumer surface p50/p95 · Broker workspace activity · Business KPIs for Jim
Critical alerts: Drafter agreement < 75% (auto-rollback) · HITL backlog > 48h · DocAI confidence drop > 5pp
Pattern reused from Luna · Zer0 · Aidi production stacks
Testability — QA agent
Two layers: PR QA agent (per-commit diff review) + Infra QA agent (daily live audit)
PR layer: Schema · IAM · Firestore rules · Drafter prompt diff vs golden cards · BQ Row Access Policies · source registry promotion checks. Emits qa:pass / needs-work / review labels + Telegram.
Infra layer: All services in me-central2? · Any T-class in BigQuery? · Proxy VM IP unchanged? · CMEK rotation SLA? · Drafter prod version matches tagged?
Replaces ~10-15h/month of Evgeniy's review time
Analytics — Google Analytics 4 + PostHog backup
GA4 on consumer surface · self-hosted PostHog/Plausible on me-central2 for broker workspace (compliance-sensitive data stays in Qatar)
Event taxonomy designed against PRD verdict thresholds:
intelligence_card_view (slug, anchor_level, verdict) · verdict_clicked (drilldown to comparables) · consult_broker_clicked (handoff to broker workspace = monetization loop) · daily_report_opened
Privacy: IP anonymization · no PII in dimensions · PDPPL Art. 22 consent banner · T-class fields never sent
E2E test suite — Playwright as merge gate
Pytest + pytest-playwright + pytest-asyncio (stack already validated in prototype: 7/9 PASS)
Mandatory flows (block launch if failing):
• Consumer search → card view → anchor_level + verdict suppression
• Consumer ROI calc — all mortgage scenarios match PRD §9.3
• Broker workspace login + Aqarat license claim check
• Building Profile form → HITL queue → no card until approval
• Drafter golden card eval ≥ 75% — this is the merge gate
• Off-market PDF generation + email delivery
• Daily report cron + Gemini commentary coherence
• PDPPL trip-wire: try inserting T-class into BigQuery → must be denied
Slide 09 — Tech stack
Stack locked by PRD §6.1 — these are not choices
The region (me-central2, Doha) is mandated by Qatar PDPPL Law 13/2016 Article 13. All components follow from this constraint.
| Component | Choice | Rationale |
| Region | GCP me-central2 Doha | PDPPL Article 13 data residency — non-negotiable |
| Warehouse | BigQuery | System of record. Analytics + vector search + ML in one engine. |
| Compute | Cloud Run + Cloud Scheduler | Stateless, scale-to-zero, inspectable |
| Event bus | Pub/Sub | Native GCP. Connects all pipeline stages. |
| Operational DB | Cloud SQL Postgres | HITL queue, auth, subscription state, audit logs |
| Hot cache | Firestore | Pre-assembled Intelligence Cards. Low-latency consumer reads. |
| Doc extraction | Document AI Custom Extractor | MoJ Arabic PDF. ar-QA locale. Target ≥92% accuracy on price/sqm. |
| LLM | Gemini 2.0 Flash (Vertex AI) | Assessment Drafter. Temperature 0.3. Price/performance. |
| Embeddings | text-embedding-005 | Building-name similarity. HITL tiebreaker only. |
| Auth | Firebase Auth + GCP Identity | Custom claims. Broker license verification on first login. |
| Backend | Python 3.12 + FastAPI | Already in prototype. Carries over. |
| Frontend | React | Migration from prototype static HTML/JS |
Critical BQ constraint (PRD §6.2)
BigQuery Continuous Queries cannot use UDFs, EXISTS subqueries, recursive CTEs, external tables, or materialized views.
Yield derivation and anchor aggregations run as Scheduled Queries, not CQs.
Proxy VM dual use
Compute Engine e2-medium, static Qatari IP.
Prod: Squid HTTP proxy for Cloud Run MoJ scraper.
Dev: Tailscale subnet router — Evgeniy, Monika, Igor access MoJ portal without Jim's desktop.
SSH via IAP only.
PromptOps discipline
Drafter prompt versioned with semantic versioning. Eval against 5-card golden set on every merge.
Merge blocked if agreement < 75%.
Auto-rollback if running rate drops.
Slide 10 — Compliance
Two laws. Non-negotiable. Built into data model.
Compliance is enforced at the data layer — not UI flags, not developer self-discipline. QA agent monitors live infra for violations continuously.
Qatar PDPPL Law 13/2016 — Article 13
QAR 1,000,000 – 5,000,000
All personal data must be processed on Qatar-territory infrastructure.
This is why all compute is in me-central2 (Doha) — not a preference.
T-class (PII) fields — implementation
| Field class | Storage | BigQuery |
| P — Public |
BQ + Firestore |
Allowed |
| S — Sensitive |
Cloud SQL (RLS) |
Role-gated |
| T — PII |
Cloud SQL CMEK
vault_id FK only |
NEVER in BigQuery |
T-class: buyer/seller names, tenant PII, landlord personal details — pseudonymized at ingestion via vault_id FK pattern.
RE Brokerage Law 22/2017
Agent workspace accessible only to actively licensed brokers.
On first login: license number verified against Aqarat registry.
License status written to Firebase Custom Claims.
All workspace routes check claims.broker_license_active == true.
Expired license = instant workspace lockout, no manual override.
Security baselines
- Secrets in Google Secret Manager — never git, never CI logs
- Workload Identity Federation for GitHub Actions — no JSON keys
- Cloud Armor in front of public endpoints with MoJ-derived data
- VPC Service Controls for me-central2 BigQuery datasets
- Cloud Audit Logs retained 1 year minimum, weekly review
- SSH to VMs via IAP only — no public port 22
- Continuous PDPPL trip-wire test in E2E suite
Slide 11 — SoftKraft vendor audit
Who SoftKraft is · what they have shipped · what is first-time territory
Public research compiled 2026-05-11 from SoftKraft's own site, their Clutch profile, and LinkedIn. Three guardrails recommended before commitment.
Company snapshot
| Founded | 2015 |
| HQ | Bielsko-Biała, PL |
| Team (own claim) | 50+ engineers |
| Team (Clutch verified) | 10-49 |
| Clutch rating | 4.9/5 · 24 reviews |
| Hourly rate | $50-99/h (Clutch) |
| Project minimum | $10,000+ |
| Clients | 60+ · 70% USA |
Leadership
- Marek Petrykowski — CEO
- Błażej Kosmowski — CTO
- Mateusz Gołuch — Head of Service Delivery
- Justyna Kopeć — Operations Manager
- Tomasz Bąk — Product Manager
Tamleek team — confirm before signing
- Michał Nowak · PM
6 yrs PM + 1 yr QA, Kraków. Mid-level, not in published leadership. OK for Phase 1, no escalation channel through him.
- "Monika" · AI Engineer (per brief)
A "Monika Sadlok" appears on softkraft.co — but as a DevOps engineer, not AI. Critical: confirm full name + AI/ML background before Phase 1 sign-off.
What SoftKraft has actually shipped (verified)
- eBillity (2025): AI microservice — time-tracking parsing, Python + APIs
- Paperplanes (2024-now): AWS migration + Dagster ETL
- SaaS MVP for data analytics (anonymized client, 2023-now)
- Tech stack: Python · React · AWS-heavy · DevOps · BI dashboards
First-time territory for Phase 1
| PRD §6.1 requirement | Public evidence |
| GCP me-central2 production | None — all reviews AWS |
| Vertex AI / Gemini 2.0 Flash | None published |
| Document AI Arabic (ar-QA) | None — no Arabic NLP |
| BigQuery production scale | None — listed but no case study |
| Qatar / MENA project | Zero |
| PDPPL / data-residency work | Zero |
They are competent and well-reviewed — but this stack and region are first-time territory, not a repeat pattern.
Three guardrails before commitment
- Confirm Monika's identity, role, AI specialization — if she is DevOps not AI, the 200-250h estimate is doubly suspect
- Evgeniy is technical reviewer on Document AI accuracy, Drafter prompts, PDPPL design — Erarta covers SoftKraft's weakest areas via LUNA / ZER0 / AIDI experience
- Scope-clarity contract — D0.2 must state which PRD features are inside 200-250h vs deferred. No silent scope reduction.
Slide 12 — Data Engineer role
What the Data Engineer owns · do we still need an AI Engineer?
Jim's instinct to hire a dedicated Data Engineer is correct. The data pipeline is the platform foundation — without it, no Drafter, no Intelligence Cards, no product. But the AI Engineer role does not disappear; it narrows.
Data Engineer owns (Phase 1) — all pipeline workstreams
| Workstream | Complexity |
Qatar-egress proxy VM · Day-1 prerequisite All MoJ/Aqarat traffic must originate from Doha IP. GCE + nginx tunnel. |
Medium |
MoJ Bulletin ingest Weekly PDF download → Document AI Custom Extractor ar-QA → BigQuery write |
High |
Listing normalization + Three-ID assignment Source registry · dedup · listing_id + property_cluster_id + market_anchor_id |
High |
Anchor computation pipeline BQ Scheduled Query: median PSM per sub-precinct × type × bedrooms × trailing 12m |
High |
Yield derivation gross_yield · net_yield_ltr · net_yield_str per anchor — BQ pipeline |
Medium |
Geo-enrichment batch Schools · transit · F&B density · flood zone — Cloud Run batch |
Medium |
Daily report pipeline Aggregate signals → Cloud Scheduler → Firestore → consumer app |
Medium |
Infrastructure-as-code Terraform: Cloud SQL CMEK · Cloud Run services · Pub/Sub · IAM · GCS |
Medium |
Skills required: BigQuery · Cloud Run · Cloud Scheduler · Pub/Sub · Cloud SQL Postgres · Document AI Arabic tuning · Python 3.12 + FastAPI · Terraform GCP · PDPPL T/S/P classification guidance from Evgeniy
Monika — role mismatch
SoftKraft proposed Monika as the AI engineer. Based on public LinkedIn: DevOps / cloud background, no visible LLM or prompt-engineering work. DevOps ≠ PromptOps. She would be productive on infra tasks only — not on Drafter quality or the evaluation harness.
Do we still need an AI Engineer?
Yes — but the scope is narrower and more specialist than "AI engineer" implies:
- Assessment Drafter prompt engineering (Gemini 2.0 Flash · ar/en bilingual · structured JSON output)
- Golden card set — ≥5 reference cards per sub-precinct × property type
- Evaluation harness — 75% agreement gate on every merge · auto-rollback
- PromptOps: semantic versioning · A/B testing · Vertex AI prompt registry
- Drafter quality monitoring — running rate dashboards · regression detection
This is not data engineering. It requires LLM eval methodology and Qatar RE appraisal domain knowledge — not AWS DevOps experience.
Recommended split
- Data Engineer (Evgeniy's candidate) — owns all 8 pipeline workstreams above. Covers 60–70% of total Phase 1 engineering effort.
- PromptOps (Evgeniy, fractional) — Drafter prompts + golden cards + 75% gate. Feasible in Phase 1: Erarta already runs Gemini Flash in Luna.AI, Zer0, and Aidi.
- Fallback: junior PromptOps hire at Week 3–4 if Evgeniy's CTO load exceeds capacity.
- Monika: if retained — scope to infra / DevOps support only. Not Drafter, not AI.
Slide 13 — Team & structure
Four team configurations · Jim chooses
SoftKraft CTO Brief (May 2026) recalibrates the original 2-engineer PRD baseline. Four options now that a dedicated Data Engineer hire is on the table.
| Configuration | Engineering team | Total labor | Speed | Risk |
| A — All SoftKraft, 2 FTE PRD baseline |
SoftKraft data + SoftKraft product engineer · Monika 50% on AI · Michał PM |
~480-800h |
Fastest |
Polish summer holidays · single vendor lock-in |
| B — Hybrid |
SoftKraft data engineer · Erarta product engineer (TBD named) · Monika 50% AI · Michał PM |
~480-800h |
Fastest |
Erarta engineer must be named · multi-vendor coordination |
| C — SoftKraft single AI-assisted engineer Brief's actual proposal |
One AI-assisted engineer (Monika? Igor?) · Michał PM lighter touch |
200-250h (brief) 290-480h (bottom-up scope check) |
Slower calendar |
Single point of failure · "build as we go" · Monika role mismatch risk |
| D — DE hire + Erarta CTO Jim's preferred path |
Evgeniy's DE candidate (pipeline) · Evgeniy CTO/Tech Lead · Michał PM · Evgeniy covers PromptOps fractional |
DE 300–400h · Evgeniy 50h/mo |
Parallel data + AI tracks |
No SoftKraft single-point-of-failure · Erarta coverage on three critical paths: data, PromptOps, PDPPL |
Honest disclosure: Scenario D includes Evgeniy's DE candidate and an Evgeniy CTO retainer. Both are in Erarta's commercial orbit. Jim should evaluate on engineering quality and risk mitigation against the first-time-territory gaps in the SoftKraft audit, not on Erarta's financial interest.
Brief's labor math vs PRD baseline: brief proposes 200-250h for one AI-assisted engineer (20-25h/wk × 10-12 wk). PRD baseline is 480h (2 engineers × 6 weeks). That is a 2.0-2.4× reduction. A bottom-up scope check across the brief's own migration table gives 290-480h minimum. SoftKraft sits below this floor.
AI productivity evidence (2025-2026): Microsoft 2025 field study +26% completed tasks. METR 2025 open-source −19% for experienced developers with AI. DORA 2025: throughput up and instability up. 2.0-2.4× labor reduction is not a normal AI-assistance outcome. The brief likely implies (a) hidden scope reduction, (b) more prototype-code reuse than admitted, or (c) underpricing of hardening, review, and rework. Jim should ask SoftKraft which.
Slide 14 — Cost
Four configurations · honest ranges
Rates are working assumptions; SoftKraft fixed-price quote at D0.10 supersedes. GCP run-rate identical across all four. Evgeniy CTO retainer terms TBD.
A — All SoftKraft, 2 FTE
~EUR 95–103K
2 FTE × 400h × EUR 90/h + Monika 50% + Michał PM + GCP + legal
B — Hybrid
~EUR 85–95K
SoftKraft data + Erarta product (EUR 70/h, requires named engineer)
C — SoftKraft single AI-assisted
~EUR 25–55K
200-250h brief / 290-480h scope check · Monika role mismatch risk
D — DE hire + Erarta CTO Jim's path
~EUR 55–80K
Evgeniy's DE candidate + Erarta CTO retainer + Michał PM + Evgeniy covers PromptOps
| Line item | A — All SoftKraft | B — Hybrid | C — Single | D — DE + CTO |
| Data Engineer |
400h × €90 = €36K |
400h × €90 = €36K |
included |
350h × €80 = €28K (candidate) |
| Product / AI Engineer |
400h × €90 = €36K |
400h × €70 = €28K |
included |
Evgeniy fractional (in CTO retainer) |
| Combined engineering (C only) |
— |
— |
200-480h × €90-110 = €18-53K |
— |
| Evgeniy CTO retainer |
— |
— |
— |
$8K/mo × 3mo + bonus = ~€25K |
| Michał — PM |
120h × €75 = €9K |
120h × €75 = €9K |
80h × €75 = €6K |
80h × €75 = €6K |
| Labor subtotal |
~€94K |
~€86K |
€24-59K |
~€59-72K |
| GCP run-rate (2.5-3 months) |
$300-700 |
$300-700 |
$300-700 |
$300-700 |
| Legal + Quality Plane setup |
€3-8K + 30-50h |
€3-8K + 30-50h |
€3-8K + 30-50h |
€3-8K + 30-50h |
| Grand total |
~€99-105K |
~€91-97K |
~€30-65K |
~€65-82K |
* Rate basis: EUR 90/h = top of SoftKraft Clutch band ($50-99/h). EUR 80/h for Evgeniy's DE candidate is an assumption until CV reviewed. EUR 110/h for Monika defensible only as specialist AI premium — role mismatch makes this moot. SoftKraft fixed-price quote at D0.10 supersedes labor-rate math.
* Scenario D vs C: D costs more (~€65-82K vs €30-65K) but has dedicated pipeline ownership, no single-point-of-failure, and Erarta coverage on three critical first-time-territory tracks.
* Phase 1B (Aqarat Branch A activation): +~25-40% across all scenarios if it triggers.
* Evgeniy CTO retainer: Scenario A terms $8K/mo, Scenario B1 $5K/mo + 1.5-2% equity — see separate retainer proposal.
Slide 15 — Commercial model
Broker subscriptions are Phase 1 primary revenue
Consumer monetization is Phase 2. Phase 1 proves the product works for brokers — that's what pays for Phase 2.
| Surface | Model | Price | Launch target | Phase |
| Consumer experience |
Free |
QAR 0 |
5 real users, genuine decision context |
1 |
| Broker / agency workspace |
Subscription |
QAR 499 / seat / mo |
≥ 3 paying seats |
1 |
| Investor off-market memo |
Gated |
QAR 2,500–3,500 / mo |
≥ 2 paying investor subscribers |
1 |
| Daily market report |
Free email |
— |
≥ 20 recipients |
1 |
| Consumer premium intelligence |
Future |
TBD |
— |
2 |
| B2B Intelligence API |
Future |
Enterprise |
— |
2 |
| Mortgage / transaction referral |
Future |
— |
— |
2+ |
Phase 1 minimum revenue at launch (if all targets hit):
QAR 499 × 3 seats = QAR 1,497/mo broker + QAR 3,000–7,000/mo investor
This is not the point of Phase 1. The point is proof that brokers will pay and consumers will use.
Why QAR 499 / seat
Anchored to broker commission economics (single Pearl transaction = tens of thousands QAR commission).
QAR 499 = <0.5% of one deal.
Validation: survey first 10 subscribers post-launch for willingness-to-pay data.
Phase 2 triggers (not Phase 1)
- Consumer premium — sufficient usage to gate premium intelligence
- B2B API — first paying enterprise customer committed
- WhatsApp full OS — agent workflow patterns validated from Phase 1
- Native mobile — responsive web patterns validated
- Lusail / West Bay — Pearl operational for 90+ days
Quality gates — launch condition
Operational gate first: 10 listings × 2 brokers → 8 of 10 cards must pass review.
Consumer gate second: 5 real users in genuine decision context.
Both gates must pass. No synthetic substitutes.
Slide 16 — Risks & what we need from Jim
Phase 0 must close before any build starts
Invoice settlement is the formal trigger. Phase 0 discovery runs in parallel so no calendar time is lost.
Jim's action items
- Provision Tamleek GCP organization in
me-central2
Evgeniy needs org owner + dev project Editor before any infra work
- The Pearl reference dataset (70 towers per CTO Brief)
Hard blocker: alias-table seeding, district normalization, three-PSM-values fix
- Three Pearl brokers committed for D3 Yield Matrix validation
- MoJ legal opinion from Qatari counsel
Required before consumer experience publishes derived intelligence
- Aqarat outreach status — schema delivery ETA for D2
- Workspace accounts on final domain (
tamlickplus.com or alt)
- GCP cost ceiling / billing alert
- Finalize NDA jurisdiction (UAE Courts vs Qatar Courts)
- Choose team configuration A / B / C / D — see Slide 13
- Rotate the leaked Google Maps API key in
/api/config
High severity risks
High
Document AI <92% accuracy on MoJ Arabic PDFs
Annotate 20 samples before training. HITL queue mandatory. Do not skip.
High
Assessment Drafter <75% agreement at first eval
Begin prompt drafting against golden cards early — not at end.
High
Aqarat delivers aggregate only (D2 Branch B)
Phase 1A is a complete product. Phase 1B is upside, not critical path.
High
Scenario C single-engineer fails (sick / blocked / leaves)
Mitigation: weekly check-in with Michał. Erarta on standby for product track.
Medium
Brief 200-250h estimate vs 290-480h bottom-up scope check
Ask SoftKraft to disclose: scope reduction or AI-productivity assumption?
Medium
Polish summer holidays — SoftKraft capacity drop
Capacity calendar at Phase 0 kickoff. Hybrid B option mitigates on product track.
Medium
Invoice not settled — Phase 1 build delayed
Phase 0 discovery + GCP provisioning runs in parallel; no calendar lost.
Medium
Railway prototype mistaken for production-ready
Migration to me-central2 is a Phase 1 launch precondition (PDPPL Art. 13).