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
Eleven sources, ingested directly.
We do not resell listings. Each asset is ingested from the original servicer or official source, normalised to a single schema, and exposed with per-asset traceability. No data without provenance. Coverage: ~37,000 active assets across Spain.
Solvia
REST API · POST · hourly
Ex-Banco Sabadell inventory managed by Cerberus. Largest single source. ~8,200 assets.
Hipoges
REST API · daily
Independent servicer. 41 bank carteras including Sareb, Cibeles and Tramuntana. ~6,500 assets — second-largest source.
Aliseda
REST API · GET · hourly
Banco Santander + Blackstone. Provides cadastral reference, coordinates and possession status. ~3,100 assets.
Rural Inmobiliario
JSON POST · daily
Caja Rural Group: 7 cooperative banks (Cajasiete, Banco Cooperativo, Caixa Popular, Caja Viva, CR Jaén, CR Navarra, CR Extremadura). ~2,200 assets.
Servihabitat
SSR scrape · daily
CaixaBank's servicer. Full catalogue scraped daily via Railway. ~1,500 assets.
Unicaja Inmuebles
JSP listing · daily
Unicaja Banco's REO portal. Concentrated in Andalucía and Castilla-León. Prices on request. ~1,800 assets.
Cimenta2
Salesforce Aura · daily
Cajamar Caja Rural — largest caja rural in Spain. 54% land from post-Sareb residual portfolios. ~1,100 assets.
Altamira
REST API · POST · hourly
doValue (multi-bank). Out-of-court auctions with owner entity data and price-update enrichment. ~1,100 assets.
BOE
HTML scrape + LLM
Judicial auctions from Spain's Official Gazette. Legal text parsed with LLM → procedural phase, creditor, deposit, vulnerable occupant. ~760 assets.
Diglo
Drupal SSR · daily
Banco Santander / Yera spin-off. ~700 priced residential assets.
Escogecasa
JSP iframe · daily
ABANCA's REO portal. Northwest Spain focus: Galicia and Asturias represent 42% of catalogue. ~92 assets.
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.
| Component | Weight | What it measures |
|---|---|---|
| Δ vs zone | 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 | Visual analysis of listing photos by Haiku model. States: optimal, habitable, refurbishable, ruin. Pending_vision if no photo processed (placeholder 14/25). | |
| Possession | Free / occupied / surrendered / unclear. Source signals + BOE parsing + cross-referenced cadastral data. | |
| Zone liquidity | Market activity in the asset's zone: new listings/30d, turnover, demand. High/medium/low zones. | |
| Legal charges | Live mortgages, garnishments, marginal annotations. Three layers (A/B/C) with decreasing weight. | |
| Total | 100 | Fixed sum. No boosts, no multipliers. |
Score tiers
90–100
Exceptional
75–89
Excellent
60–74
Good
40–59
Average
20–39
Below avg
0–19
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.
- 01
01 · Postcode
Median €/m² for the exact postcode. Most precise but requires sufficient sample. Source: Atalaya internal dataset.
- 02
02 · Neighborhood
When postcode lacks sample. For large cities, the neighborhood captures more variance than the municipality.
- 03
03 · Municipality
Median €/m² for the municipality from real transactions (not listings).
- 04
04 · Province
Last level of the internal dataset when the municipality lacks sample.
- 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.
Mortgage foreclosure · insolvency · monetary execution · administrative. Defines procedural risk and timelines.
Bank · servicer · administration · individual. Hints at process profile and willingness to negotiate.
Required deposit amount to bid in the auction and associated deadlines.
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.