Skip to content
Home Projects Housing Analysis
🏠 Real Estate Analysis Python Data Visualization 2024 Dataset

1,500 Asking Prices, And How Filipinos Actually Live

Two datasets that do not describe the same country. A portal scrape of 1,500 property listings, median ask ₱9.2M — and national figures showing 48.48% of households with drinking water that is safely managed and 59.5% cooking on clean fuel.

₱9.2M
Median asking price, 1,451 priced listings
3.57×
How far the mean sits above that median
48.48%
Households with safely managed drinking water, 2024
59.5%
Relying mainly on clean cooking fuel, 2023
Data Period
March 2024 Property Listings
Tech Stack
Python Pandas Chart.js HTML/CSS
Key Takeaways

The old version of this page led with an average asking price of ₱32.8M. That figure is arithmetically correct and descriptively useless: the mean is 3.57 times the median because 103 of the 1,451 priced listings ask ₱100M or more, one of them ₱2.50B.

  • Per square metre of floor area — the only measure that compares a Forbes Park mansion with a Cavite townhouse — the geography almost disappears. Across the 22 cities with at least 20 listings that state a floor area, asking prices span 13.01× and prices per square metre span 2.94×.
  • ₱92,587 per square metre in Cabanatuan against ₱85,058 in Quezon City — Cabanatuan is 1.09 times dearer per square metre while a whole house there costs a 4.15th of the Quezon City median.
  • Nationally, 95.86% of households have basic drinking water and only 48.48% have it safely managed — a 47.38-point gap between an improved source within half an hour and one on the premises, available when needed, free of contamination.
  • Clean cooking fuel reaches 79.8% of urban households and 39.9% of rural ones, a 39.9-point gap — the widest urban-rural split of any service here, and last of 6 in ASEAN.
  • The listings are asking prices with no dates and no weights. Nothing in the first half of this page is a national figure, and no trend can be computed from it.

What The Average Price Is Actually Measuring

The 1,451 priced listings distributed across price bands. The mean sits in the fifth band; three-quarters of the listings sit below it.

Priced listings by asking-price band

Median ask
₱9.2M

Half the listings ask less than this.

Mean ask
₱32.8M

3.57 times the median. The single highest listing asks ₱2.50B, and 103 ask ₱100M or more.

Cheapest listing
₱300,000

A check rejects anything below ₱100,000 as a parse failure rather than a house; this one is real.

The Geography Is Mostly A Size Difference

Median asking price and median price per square metre of floor area, for the 22 city tokens with at least 20 listings that state a floor area. The two rankings are barely related.

Median asking price and median price per m², by city

Asking-price spread
13.01×

Dearest of those 22 cities over cheapest, on median asking price.

Per-square-metre spread
2.94×

The same cities, the same listings, divided by floor area. Muntinlupa at ₱130,683 down to Mabalacat at ₱44,490.

Median floor area
142 m²

Across every listing that states one. Most of the price gap between an expensive city and a cheap one is this number changing, not the rate.

Cabanatuan Against Quezon City

One comparison from that chart, on its own, because it is the clearest thing in the scrape. Cabanatuan is in Nueva Ecija, about a hundred kilometres north of Metro Manila.

Median price per m², cities with at least 20 floor-area listings

Quezon City
₱22.5M

Median asking price, from 119 listings. Per square metre: ₱85,058.

Cabanatuan
₱5.4M

Median asking price, from 82 listings. Per square metre: ₱92,587.

Per-square-metre ratio
1.09×

Cabanatuan over Quezon City. On whole-house price the ratio runs the other way, 4.15 to one. The Quezon City listings are not priced at a higher rate; they are bigger.

Bedrooms, And Where The Sample Runs Out

Median asking price by bedroom count, with the listing count beside it. The medians rise cleanly to six bedrooms; past that the counts fall below 20 and the line starts jumping around on two or three listings.

Median asking price by bedroom count, with listing counts

Three bedrooms
₱8.0M

The most common size in the file, 469 listings.

Median per m²
₱78,688

Across the 1,416 listings that state both a price and a floor area.

Listings with no price
49

Excluded from every price figure rather than imputed. 90 further listings repeat an earlier row exactly.

Basic Access, And Safely Managed Access

This is where the page leaves the portal. The WHO/UNICEF Joint Monitoring Programme grades household water and sanitation in tiers, and the distance between two of them is the finding. “Basic” means an improved source within a 30-minute round trip. “Safely managed” means on the premises, available when needed, and free of contamination.

Basic and safely managed service levels, 2000 onward

Basic drinking water
95.86%

Of households, 2024.

Safely managed
48.48%

The same year. A 47.38-point gap, and a check asserts that the safely-managed figure never exceeds the basic one, because if it did the two indicator codes have been swapped.

Sanitation, basic
87.15%

The same two tiers for toilets: 62.17% safely managed, a 24.98-point gap.

Urban Against Rural

The same four services, split. Three of the four favour towns by the margin you would expect. The fourth does not, and cooking fuel is off the scale of the other three.

Urban and rural access by service, latest year available

Clean cooking gap
39.9 pts

79.8% urban against 39.9% rural — the widest split of any service here, by a factor of three.

Electricity gap
11.3 pts

Rural access is 88.5%, so roughly one rural household in nine still has no connection.

Basic sanitation gap
-0.66 pts

Negative: 87.47% rural against 86.81% urban. The only service on this page where the countryside is ahead, and small enough that the honest reading is that the two are level.

Twenty-Five Years Of Wiring And Plumbing

What has actually moved. Electricity and clean cooking both climbed steadily from 2000; the water and sanitation tiers moved much less, because the easy part was already done by then.

Electricity, clean cooking and water access, 2000 onward

Electricity
94.8%

Of households in 2024, up from 74.7% in 2000.

Clean cooking
59.5%

In 2023, up from 37.4% in 2000 — a gain of 22.1 points, and still the lowest in ASEAN.

Urban informal settlement
35.87%

Of the urban population, 2022. Published irregularly, so the year is stated rather than implied; 55.77% of Filipinos lived in urban areas in 2025.

Against The Neighbours

Clean cooking fuel and basic sanitation across ASEAN-5 and Singapore, 2023. Both are the basic tiers: safely managed drinking water is unpublished for Thailand and safely managed sanitation for Indonesia, and a six-country chart that quietly becomes a five-country chart reads as one that never had the sixth.

Clean cooking and basic sanitation, ASEAN-5 and Singapore, 2023

Clean cooking rank
1 of 6

59.5% in the Philippines. Last of the six.

Distance to the next country
24.3 pts

Malaysia is next up at 83.8%. The gap to fifth place is wider than the gap between second and sixth.

Basic sanitation rank
1 of 6

Also last, at 85.99% — though the six are within thirteen points of each other on this measure, which is not true of cooking fuel.

What This Page Does Not Claim

The first half of this page rests on a scrape, and a scrape has limits that no amount of analysis removes. They are listed here rather than left to be discovered.

There is no time dimension

Not one of the 1,500 listings carries a date. The previous version of this page had charts named for growth areas and price-volume trends; there is nothing in the file those could have been computed from. A check asserts the count of dated listings is zero, so a future column cannot quietly turn this into a time series.

These are asks, not sales

Every price is what a seller advertised, not what a buyer paid. Asking prices in a thin market run above transaction prices by an amount this data cannot measure, and the direction of that bias is known while its size is not.

It is not a sample of anything

138 listings sit in Muntinlupa and 22.6% of the file sits in three city tokens, while most of the Visayas has none. There are no survey weights, because a portal's inventory is not a survey. Nothing in the first half of this page scales to the Philippines.

The two halves are not comparable

The listings describe houses advertised for sale at a median of ₱9.2M. The national figures describe every household, including the 35.87% of the urban population in informal settlements. Nothing here connects an asking price to a service level, and the page does not try.

What a real house price index would need

Dated transactions, a consistent basket, and geographic weights. BSP publishes a residential real estate price index built on bank loan data; it is not in this analysis because bsp.gov.ph is not reachable from a script here. That is a gap, and naming it is better than filling it with a scrape.

Method

One fetcher, eight CSVs, two sources that are kept visibly apart.

The scrape is downloaded, not committed

The Kaggle mirror serves the archive without authentication. The fetcher unzips it in memory and writes the cleaned listings plus the derived tables. Two CSVs ship inside that archive and they are the same rows twice; merging them would double every listing, so only one is read.

Per square metre is the comparable measure

Median price per square metre of floor area, computed per listing and then medianed, on the 1,416 listings that state both. City medians are shown only above 20 such listings, because below that the median moves on one house.

Two outliers turned out to be real

A check bounding price per square metre first failed on a ₱250M beachfront villa on Siargao at ₱1.25M per square metre and a ₱300,000 installment house in Pagadian at ₱3,750. Both are genuine listings; the bounds were wrong and were widened to catch only a unit error. The 333× spread between them is now recorded as a warning rather than hidden.

Coverage is written to a CSV

ph_housing_coverage.csv records what the scrape reaches and what it does not, one row per property, including the three zeroes that matter: no dated listings, no transaction prices, no survey weights. Coverage that lives only in a log is coverage nobody can audit.

The national half comes through the World Bank

WHO/UNICEF JMP service levels and IEA/WHO clean cooking access, fetched from the World Bank WDI API rather than from the originating agencies, because that API is reachable and returns a clean error on a wrong indicator code instead of an empty success.

Tier ordering is asserted, not assumed

A check fails if safely-managed access ever exceeds basic access for water or sanitation. Safely managed is a strict subset of basic, so a crossing would mean two indicator codes had been swapped — which is not the kind of mistake that looks wrong on a chart.

Key Findings & Summary

  • The ₱32.8M average asking price this page used to lead with is 3.57 times the median of ₱9.2M, because 103 of 1,451 priced listings ask ₱100M or more.
  • Per square metre of floor area the geography nearly vanishes: 13.01× on asking price across the well-covered cities becomes 2.94× per square metre. Cabanatuan at ₱92,587 is dearer than Quezon City at ₱85,058.
  • 95.86% of households have basic drinking water; only 48.48% have it safely managed — a 47.38-point gap.
  • Clean cooking fuel reaches 79.8% of urban and 39.9% of rural households, a 39.9-point gap, and ranks 1 of 6 in ASEAN — 24.3 points behind Malaysia.
  • Basic sanitation is the one service where rural (87.47%) edges urban (86.81%), by -0.66 points.
  • The listings carry no dates, no transaction prices and no survey weights. Nothing in the first half of this page is a national figure.

Sources & Citations

Every figure on this page traces to one of these, through a CSV in data/ph-housing/. Each is checked against its source query on every build.

1,500 property listings scraped from a Philippine property portal: asking price, location, bedrooms, bathrooms, floor and land area, coordinates — Asking prices, not transactions. No listing carries a date and none carries a survey weight, so nothing here scales to the country and no trend can be computed.

Household drinking water and sanitation service levels for the Philippines, 2000-2024, at both the basic and safely-managed tiers, split urban and rural — The national counterweight to the listings. JMP distinguishes 'basic' access from 'safely managed'; the gap between the two is most of this page.

Share of population with primary reliance on clean cooking fuels and technologies, Philippines and ASEAN-5 plus Singapore, 2000-2023

Urban population share 1960-2025 and the share of that urban population living in informal settlements, 2000-2022 — The informal-settlement series is published irregularly; the page states its year rather than treating the last value as current.

Have Data But Need Help?

If you have raw data and want to transform it into meaningful insights like this analysis, I'd love to help! Whether it's business data, research datasets, or any information you want to visualize and understand better.

Have a dataset you'd like analyzed or need a mini AI project as a starter guide? Send me your suggestions!

Connect on LinkedIn Dev.to Articles 💬 Messenger

Prefer the plain-English version?

I wrote a companion post — “The Cheap City Is Not Cheap. It Is Just Smaller.” — in simple, everyday words.

Read the blog post →