Sources and refresh cadence
The active asking-price sample uses public residential advertisements from Fincaraíz and Metrocuadrado. The pipeline runs daily incremental updates and a full weekly reconciliation. Selected-neighborhood new-build data comes from La Galería Inmobiliaria’s licensed monthly census. Google Trends remains a separate search-interest signal, never buyers or transactions.
Observed fields
When available, we retain source, external identifier, DIVIPOLA municipality, neighborhood, operation, type, original and current price, area, bedrooms, bathrooms, new-build and furnished status, amenities, agency, photo count, source publication date, first and last observation, price changes, removal, relisting, and coordinates. Rows predating lifecycle tracking start from the price and observation timestamp already held; we do not reconstruct earlier changes without evidence. We publish anonymous aggregates, not individual listings.
Activity, duplicates, and outliers
Only rows observed within a 30-day active window enter aggregates. A likely cross-portal duplicate shares municipality, operation, neighborhood, normalized type, exact price, and rounded area. We exclude areas below 18 m² or above 2,000 m²; sale values outside COP 1–45 million/m²; and rents outside COP 8,000–350,000/m² per month.
Neighborhoods and sample floors
Neighborhood names are standardized within each municipality; same-named areas in different cities are never merged. A listing without a stated neighborhood remains in the municipality-level group and counts in the city sample, but not as a neighborhood. General aggregates publish from 5 observations; bedroom, new-build, and resale segments from 4. Published rankings require at least 30 sale and 15 rental observations.
Medians and the typical 2-bedroom
We publish medians, not averages. A typical 2-bedroom is the median total asking price among advertisements marked as two bedrooms, rolled up across neighborhoods with sample-size weighting. It is a comparable asking-price indicator, not an appraisal of a specific unit.
Indicated gross asking yield
Formula: median monthly rent per m² × 12 ÷ median sale asking price per m². It compares a neighborhood or city market and does not necessarily pair the same unit. It excludes administration, property tax, insurance, maintenance, vacancy, management, financing, and tax.
Days listed and trends
Active-listing age is the median number of days since publication among still-active advertisements with a publication date and requires at least 5 observations. It does not measure time to a completed sale. The trend compares dated cuts of the weighted asking-price-per-m² index and publishes only after 28 days; every result displays its exact period.
Currency and count scope
Data is stored in COP. USD conversions use the Superintendencia Financiera’s daily TRM when available; other currencies use a timestamped market-rate service with a backup rate identified as stale. Counts are aggregate listing observations, not unique properties.
Versions, corrections, and reuse
Each refresh publishes a dated cut. A material correction preserves the affected cut, documents the change, and updates the modification date. Aggregate statistics may be reused with attribution and a link while retaining date, geography, sample, unit, and limitations. Individual advertisements may not be republished or presented as deeds or closing prices.