Skip to main content
method · 16 June 2026 7 min
Part of: How AI Grades

How marocain.investments scored one real listing, end-to-end

Every listing runs through the same four-pillar rubric: Window-View Score (Gemini 2.5 Flash vision over the listing's own photos), Structural Quality (deterministic build-era + finishes proxy), WC 2030 Catalyst (distance to the nearest of the six host venues + TGV + airport), and the M-Value AVM (district + typology + ±20% surface comparables). Fused into a {GIN} Quality verdict and a {GIN} Deal verdict — with the methodology label exposed at /api/public/listings/$id.

How marocain.investments scored one real listing, end-to-end

The rubric: 4 pillars + 2 verdicts

Every listing on marocain.investments runs through the same four-pillar rubric, then fuses into two verdicts. Here is the worked example, pillar by pillar, with what each score IS and what it is NOT.

  • Window-View Score — vision AI over the listing's actual photos.
  • Structural Quality Score — deterministic proxy from build-era + finishes.
  • WC 2030 Catalyst Score — proximity to host venues, TGV, airport.
  • M-Value AVM — district + typology + ±20% surface comparables.

The first three fuse into a {GIN} Quality verdict; M-Value plus a momentum signal fuse into a {GIN} Deal verdict. The full per-listing payload — every pillar, every methodology tag, every confidence label — is exposed at /api/public/listings/$id. That endpoint is the canonical "show your work" surface — nothing on a property page that isn't traceable to it.

Pillar 1 — Window-View Score

The ai-score-vision edge function sends up to 6 images from the listing to Gemini 2.5 Flash via the Vercel AI Gateway with a strict JSON response schema. The model returns a score and a best_image_index that drives cover selection on the kept (post-format-filter) URL list. Marginal cost per listing is ~$0 via the gateway.

A Window-View Score only counts as model-scored if its methodology tag is vision-v1* and not vision-skipped-*. Catalogue-wide context for confidence: at the last audit, 100% vision coverage across the live catalogue.

What it is NOT: not a view-from-window measurement — no LiDAR, no geometry. It is a vision-model judgment over the seller's own marketing photos and inherits any framing bias in them.

Pillar 2 — Structural Quality Score

Computed inside the deterministic compute_marocain_score RPC, combining build-era proxies and finish keywords from the enrichment pass. The methodology tag v1.deterministic means rule-based, not model-scored.

What it is NOT: not a structural engineering assessment. It is a text proxy from listing copy + enrichment, not a site survey.

Pillar 3 — WC 2030 Catalyst Score

A geometric input: distance from the property to the nearest of the six confirmed Morocco 2030 host venues — Grand Stade Hassan II (Casablanca-Benslimane), Stade de Marrakech, Stade Moulay Abdellah (Rabat), Grand Stade de Tanger, Stade Adrar (Agadir), Stade de Fès — plus the nearest TGV station and the nearest international airport.

Macro context the score is built around:

  • Morocco co-hosts the 2030 FIFA World Cup with Spain and Portugal.
  • Grand Stade Hassan II is planned at 115,000 seats for the final.
  • Al Boraq TGV (Tangier–Kenitra–Rabat–Casablanca) runs at 320 km/h today.
  • High-speed extension to Marrakech is targeted for 2029–2030 (official target, indicative until delivered).

What it is NOT: not a price forecast. It is a distance input — kilometres to catalyst — nothing more.

Pillar 4 — M-Value AVM

Comparables in the same district and typology, within a ±20% surface band of the subject's built surface, drawn from the live catalogue across mubawab, sarouty, agenz, yakeey, kensington and avito. (See the M-Value AVM under the hood deep-dive for the ≥3-comparables floor, the median-over-mean choice, and the ±1.5σ band.)

The price-vs-AVM delta, combined with a momentum signal, feeds the compute_gin_deal RPC to produce the {GIN} Deal verdict.

What it is NOT: not an appraisal, not a transacted-price index. It is a median of listed asking prices within district + typology + ±20% surface — Morocco has no public sold-price registry.

Confidence label

A single listing's confidence is high / medium / low, driven by how many pillars resolved against primary data: vision scored on real photos → high; vision-skipped → degraded; district comps missing → AVM low-confidence.

The honest ledger

What this proves: the scoring is reproducible — every pillar has an RPC or an edge function; every figure on a property page traces back to one of the four named inputs; the methodology tag tells you whether a number is model-scored or deterministic.

What it does NOT prove: that the property is a good buy; that prices will rise on WC 2030 proximity; that the photos represent the property fairly; that the asking-price comp median equals fair market value.

*Internal methodology document — this describes how marocain.investments' own scoring is built. Reasoning is platform-canonical. Decision-support, not a certified appraisal.*

Is the Window-View Score actually measuring the view out of the window?

No. It is a Gemini 2.5 Flash judgment over up to six of the listing's own marketing photos, returned as JSON via the Vercel AI Gateway. There is no LiDAR, no geometry, no site visit — it inherits any framing bias in the photos the seller chose.

Why is the Structural Quality score tagged 'v1.deterministic'?

Because it is rule-based — derived inside the compute_marocain_score RPC from build-era text proxies and finish keywords in the enrichment pass. It is explicitly not model-scored and not a structural engineering assessment.

What goes into the WC 2030 Catalyst score?

Distance from the property to the nearest of the six confirmed 2030 host venues (Grand Stade Hassan II, Marrakech, Rabat, Tanger, Agadir, Fès), the nearest TGV station on the 320 km/h Al Boraq line (with the Casablanca–Marrakech extension targeted for 2029–2030), and the nearest international airport. It is a distance input, not a price forecast.

How are M-Value AVM comparables chosen?

Same district, same typology, and built surface within ±20% of the subject property, drawn from the live catalogue across the major Moroccan portals. The output is the median of those asking prices — it is not an appraisal and not a transacted-price index (Morocco has no public sold-price registry).

What does the high / medium / low confidence label mean?

It reflects how many of the four pillars resolved against primary data. Vision-scored on real photos counts as high; vision-skipped counts as degraded; a district with too few comparables drops the AVM to low-confidence even if the other pillars are clean.