Saltar al contenido
AtalayaAtalaya
Back

Methodology

How we build every score, with no black box.

This page documents the sources, transformations and weights that produce the Atalaya Score. If an investment decision rests on a number, that number must be auditable. Here is the entire model.

Model · heuristic-v2026.04.23 · vision-v1

Sources

Four official sources, ingested directly.

We do not resell listings. Each asset is ingested from the original source, normalized to a single schema, and exposed with per-asset traceability. No data without provenance.

  • Solvia

    REST API · POST

    Ex-Banco Sabadell inventory managed by Cerberus. Hourly scrape, ~8,000 assets.

  • Aliseda

    REST API · GET

    Banco Santander + Blackstone. Provides cadastral reference, coordinates and possession state when available.

  • Altamira

    REST API · POST

    doValue (multi-bank). Out-of-court auctions and properties with publishedAt / lastPriceUpdate enrichment.

  • BOE

    HTML scrape + LLM

    Judicial auctions from the Spanish Official Gazette. Legal text parsed with LLM → procedural phase, creditor, deposit, vulnerable occupant.

0–100 Score

Five components, fixed weights, total 100.

Each asset gets an integer score from 0 to 100. Component weights sum to exactly 100; no hidden multipliers or boosts. An asset that doesn't max out a component literally loses those points.

ComponentWeightWhat it measures
Δ vs zone
30
Difference between asset €/m² and the median €/m² of its zone (postal→municipal cascade). Penalizes overpriced assets even with a high published discount.
Physical condition
25
Visual analysis of listing photos by Haiku model. States: optimal, habitable, refurbishable, ruin. Pending_vision if no photo processed (placeholder 14/25).
Possession
20
Free / occupied / surrendered / unclear. Source signals + BOE parsing + cross-referenced cadastral data.
Zone liquidity
15
Market activity in the asset's zone: new listings/30d, turnover, demand. High/medium/low zones.
Legal charges
10
Live mortgages, garnishments, marginal annotations. Three layers (A/B/C) with decreasing weight.
Total100Fixed sum. No boosts, no multipliers.

Score tiers

90100

Exceptional

7589

Excellent

6074

Good

4059

Average

2039

Below avg

019

Poor

Zonal cascade

Level-by-level resolution, explicit fallback.

The zone price used for Δ-zone is resolved cascadingly. Each level is attempted only if the previous one lacks sufficient sample (default 20 transactions). The resolved level is recorded in zoneRefUsed for later audit.

  1. 01

    01 · Postcode

    Median €/m² for the exact postcode. Most precise but requires sufficient sample. Source: Atalaya internal dataset.

  2. 02

    02 · Neighborhood

    When postcode lacks sample. For large cities, the neighborhood captures more variance than the municipality.

  3. 03

    03 · Municipality

    Median €/m² for the municipality from real transactions (not listings).

  4. 04

    04 · Province

    Last level of the internal dataset when the municipality lacks sample.

  5. 05

    05 · MITMA

    External official source: municipal indexes from Spain's Ministry of Transport. Independent from bank pricing — breaks the bank-vs-bank bias. Final fallback.

BOE legal parsing

Raw judicial text into structured fields.

Every BOE auction includes dense legal text. Atalaya extracts the key fields an investor would review manually using a proprietary LLM pipeline: debtor NIF, possession status, registered liens, opening bid, closing date. Versioned schema, graceful fallback if the model fails.

  • Procedural phase

    Mortgage foreclosure · insolvency · monetary execution · administrative. Defines procedural risk and timelines.

  • Creditor type

    Bank · servicer · administration · individual. Hints at process profile and willingness to negotiate.

  • Legal deposit

    Required deposit amount to bid in the auction and associated deadlines.

  • Vulnerable occupant

    Flag for protected occupancy (family with minors, dependent person). Material regulatory risk.

Computer vision

Physical condition inferred from listing photos.

For assets with processed photos, a Haiku subagent evaluates: kitchen, bathrooms, paint, floors, exterior. Structured output with quality score, observations and an alerts flag. If no photo is available or processing has not yet run, the asset is marked pending_vision with a 14/25 placeholder physical score — visible and traceable, never silenced.

Versioning

Per-asset traceability, no silent rewrites.

Each score carries the promptVersion of the model that generated it. When the model changes, prior scores are not silently rewritten: history is preserved and the new computation is tagged with the new version. History is auditable from each asset's detail page.

Start with auditable data, not promises.