Cape Verde Real Estate Index

AREI’s 29 July 2026 snapshot contained 484 public property records, including 406 safely classified residential listings. Of those, 361 had usable asking…

Market research · 29 July 2026

From 484 Property Records to 311 €/m² Comparisons: Inside Cape Verde’s Listing Data

AREI’s 29 July 2026 snapshot contained 484 public property records, including 406 safely classified residential listings. Of those, 361 had usable asking prices, 353 supported bedroom comparisons and 311 also had the floor area required for price-per-square-metre analysis.

Published 5 Aug 2026 · Data as of 29 Jul 2026 · Published by AREI

Key takeaways

  • The frozen public feed contains 484 property records, of which 406 are safely classified as residential sale listings.
  • Different analyses use distinct cohorts: 361 for asking-price comparison, 353 for bedrooms and 311 for €/m².
  • Listings are marketing records first, so analytical fields such as floor area and normalized type require explicit quality gates.

Key market metrics

Listings tracked
484
Median asking price
€158K
Average €/m²
€1,707
Sources tracked
9

Island breakdown

IslandListingsEligibleMedianAvg €/m²Sources
Sal 213 199 €125K €1,858 7
Santiago 139 115 €227K €1,611 3
Boa Vista 87 64 €125K €1,538 5
Maio 16 8 €105K 3
São Vicente 11 11 €135K €1,266 3
São Nicolau 9 0 Withheld (n<5) Withheld (n<5) 1
Fogo 8 3 Withheld (n<5) Withheld (n<5) 2
Santo Antão 1 1 Withheld (n<5) Withheld (n<5) 1

Listing-based signal (asking prices), not transaction prices. Values are withheld for island samples below five eligible records.

Analysis

Counting homes for sale sounds simple: count the listings and publish the number. But different market questions require different fields.

AREI’s 29 July 2026 public snapshot contained 484 property records. After excluding land, commercial assets and records that could not safely be classified as residential, 406 remained. Of those, 361 had a usable asking price, 353 could support bedroom-level analysis and 311 also contained the floor area needed for a price-per-square-metre comparison.

Based on monitored asking-price listings. Not transaction prices or valuations.

What “for sale” means here

The 406 residential records are not every property advert in Cape Verde. They are the safely classified residential portion of AREI’s monitored public feed: active in the curated publication lifecycle, published, for sale, source-linked and represented as a canonical row.

The authorized public route begins after private hidden, removed, unpublished and no-source-URL records have been filtered. Their counts are not visible through this read-only route, so they are not mixed into the headline.

The 484-record entry population is still broader than “homes.” It includes 59 land listings, seven commercial properties and 12 records labelled only “property.” The generic category may contain residential assets, but it cannot be assumed. Excluding it is the conservative choice.

The data-quality funnel

StageListings retainedWhat the stage means
Records observed in the production public feed484Active, published public records across included Cape Verde islands
Active, published, canonical sale listings484The public contract already applies lifecycle and canonical-row gates
Safely classified residential sale listings406Apartments, duplexes, houses, penthouses, studios, townhouses and villas
General price-comparison listings361Residential cohort plus valid EUR asking price and known island
Suitable for bedroom comparison353General comparison cohort plus a non-negative integer bedroom count
Suitable for €/m² comparison311General comparison cohort plus positive advertised floor area

This sequence matters. “361 comparable homes” means comparable for a basic total asking-price analysis by island and normalized residential type. It does not mean 361 complete records for every analytical question.

Where records leave the comparison

ReasonCountScope
Land59Sequential exclusion from the 484 observed records
Commercial property7Sequential exclusion from the 484 observed records
Ambiguous generic “property” category12Sequential exclusion from the 484 observed records
Missing asking price45Sequential exclusion after the 406 residential listings
Missing bedroom count8Additional loss from the 361 general comparisons for bedroom analysis
Missing usable floor area50Additional loss from the 361 general comparisons for €/m² analysis

The last two rows are not additional removals from the general comparison cohort for all purposes. A home with no floor area can still support a count, a total asking-price range and an island comparison. It simply cannot support a price-per-square-metre result.

Duplicate listings: a quieter form of distortion

The same home can appear on an agency website, a portal and another broker’s site. Counting every appearance inflates inventory and can overweight one property in a median.

AREI’s public feed is a curated canonical layer: every exposed row has a canonical listing ID and is represented as non-superseded. That is why the 484 rows do not fall again at a separate exact-deduplication stage.

It would be wrong, however, to conclude that duplicates have been solved perfectly. AREI’s current methodology says cross-source deduplication remains incomplete. The public view does not expose enough matching evidence to rule out every near-duplicate with a changed price, title or description. “Canonical public rows” is the supportable claim; “zero duplicates in Cape Verde” is not.

Prices are often absent, not wrong

Among the 406 safely classified residential listings, 361 carry an asking price inside AREI’s existing €10,000-to-€5 million EUR bounds. The other 45 are price-on-request records. In other words, nearly nine in ten residential records support the general price comparison.

Those 45 homes remain useful inventory. They can show that a type of property is being marketed in a location. They cannot enter a median asking price, a budget share or a €/m² calculation. Assigning them a guessed price would create false precision.

Every record exposed in this snapshot was already denominated in EUR. AREI therefore performed no currency conversion for the editorial snapshot. The upstream feed normalizes currency, but it does not expose a per-record exchange-rate timestamp or conversion provenance. That is recorded as a limitation.

Location and property type are analytical fields

All 406 safely classified residential listings have a known island and one of the accepted residential types. That completeness is partly a consequence of the definition: an unresolved type cannot enter the residential cohort.

The 12 generic “property” records show why this matters. If they were silently treated as houses or apartments, they could change the type mix and any type-level price result. The safer outcome is a smaller sample with an explicit exclusion.

Listings were created to sell individual properties. A title such as “investment opportunity near the beach” may work for marketing while leaving a statistical system unsure whether the asset is an apartment, villa, development or mixed-use property. The mismatch is infrastructural, not evidence of bad intent.

Floor area changes the analysis most

FieldComplete in residential cohortCompleteness
Valid normalized asking price361 of 40688.9%
Known island406 of 406100.0%
Normalized residential type406 of 406100.0%
Bedroom count390 of 40696.1%
Usable advertised floor area347 of 40685.5%

Within the 361 general price-comparison listings, eight lack bedroom information and 50 lack usable floor area. Floor area therefore has the largest impact on the specialized comparisons: €/m² coverage falls to 311 of 361, or 86.1%.

That loss is analytically important. Total asking price mixes size and price. A €90,000 studio and a €90,000 two-bedroom apartment have the same ticket but not the same space proposition. Without area, a system cannot separate cheaper property from cheaper space.

Why AREI cleans the data

The purpose of cleaning is not to make the market look smaller. It is to make each number say exactly what it claims.

A listing count needs a stated population. A budget share needs valid prices. A bedroom comparison needs bedrooms. A space comparison needs floor area. A trend needs the same cohort definition over time. Each additional claim carries an additional evidence requirement.

This is why one universal “usable listing” number would mislead. There are 406 residential listings in the defined live population, 361 general price-comparison records, 353 bedroom-comparison records and 311 €/m² records. Each is correct for a different question.

Methodology

  • Data as of: 29 July 2026 at 23:42:25 UTC.
  • Snapshot: 29 July 2026, 23:42 UTC.
  • Source: AREI’s monitored Cape Verde public listing feed.
  • Residential cohort: 406 active, published, canonical residential sale listings with a safely normalized residential type.
  • General price-comparison cohort: 361 residential listings with a valid EUR asking price between €10,000 and €5 million and a known island.
  • Specialized cohorts: Bedroom count and positive advertised floor area are added separately.
  • Reproducibility: Every observed ID, field, eligibility flag and exclusion reason is frozen under the stated snapshot ID.

Sources

  • AREI Cape Verde listing snapshot, 29 July 2026.
  • Snapshot: 29 July 2026, 23:42 UTC.
  • Disclosure: Based on monitored asking-price listings. Not transaction prices or valuations.

Conclusion

AREI’s snapshot contained 406 safely classified residential sale listings. Of those, 361 supported general asking-price comparisons, 353 supported bedroom comparisons and 311 supported €/m² analysis. The changing counts are not evidence of a failed dataset. They show that different market questions require different levels of evidence.

Methodology note

Based on monitored asking-price listings. Not transaction prices or valuations. Read the methodology.