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
| Island | Listings | Eligible | Median | Avg €/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
| Stage | Listings retained | What the stage means |
|---|---|---|
| Records observed in the production public feed | 484 | Active, published public records across included Cape Verde islands |
| Active, published, canonical sale listings | 484 | The public contract already applies lifecycle and canonical-row gates |
| Safely classified residential sale listings | 406 | Apartments, duplexes, houses, penthouses, studios, townhouses and villas |
| General price-comparison listings | 361 | Residential cohort plus valid EUR asking price and known island |
| Suitable for bedroom comparison | 353 | General comparison cohort plus a non-negative integer bedroom count |
| Suitable for €/m² comparison | 311 | General 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
| Reason | Count | Scope |
|---|---|---|
| Land | 59 | Sequential exclusion from the 484 observed records |
| Commercial property | 7 | Sequential exclusion from the 484 observed records |
| Ambiguous generic “property” category | 12 | Sequential exclusion from the 484 observed records |
| Missing asking price | 45 | Sequential exclusion after the 406 residential listings |
| Missing bedroom count | 8 | Additional loss from the 361 general comparisons for bedroom analysis |
| Missing usable floor area | 50 | Additional 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
| Field | Complete in residential cohort | Completeness |
|---|---|---|
| Valid normalized asking price | 361 of 406 | 88.9% |
| Known island | 406 of 406 | 100.0% |
| Normalized residential type | 406 of 406 | 100.0% |
| Bedroom count | 390 of 406 | 96.1% |
| Usable advertised floor area | 347 of 406 | 85.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.