Housing Analyser.
Wiki · sources

Where the data comes from.

The site is only as good as its inputs, so here's every one — the listing portals, the agency sites, and the two official Irish datasets — with what each gives us, how often it refreshes, and where it lags. The scrapes page shows their live status.

Listing sources

what's for sale right now
Daft.ielistings · sold · photos · coords

The largest Irish portal and our richest source — price, beds, baths, BER, floor area, property type, agent, coordinates, photos, plus a bidding/offers summary and view counts on the detail page. It also has its own sold-properties feed (Daft's data, not the official register). Daft sits behind aggressive Cloudflare bot protection, so fetching it needs a browser-emulating solver and rotating cookies; it's the only source with serious anti-bot defences.

MyHome.ielistings · coords (most) · no Eircode in feed

Ireland's #2 portal, owned by The Irish Times — roughly 820 Galway sale listings. No anti-bot at all; a plain request works. Eircodes never appear in the listing feed (only on the brochure page), and a minority of cards have no coordinates. Sale-agreed rows are skipped — for-sale inventory only.

O'Donnellan & Joyce (ODJ)listings · Eircode · coords · photos

Galway's largest local auctioneer — roughly 177 listings via an open WordPress API, no anti-bot. Eircode, coordinates, photos and floor plans all come in one payload, no detail-fetch needed. BER and floor area aren't in their API, so those are blank. Sale-agreed rows are tracked with a dedicated flag and left out of active stock by default. Currently run on demand rather than on a schedule.

DNG Galwaylistings · Eircode · coords · photos

DNG Maxwell Heaslip & Leonard — roughly 85 listings via a JSON backend. The one quirk: it needs a bearer token lifted from DNG's own website bundle, which rotates whenever they redeploy, so the scraper re-bootstraps the token each run. BER isn't in their data (blank); floor area is converted from square feet. Sale-agreed rows tracked the same way.

Seven 4property agencieslistings · BER · photos · coords (some)

A cluster of smaller Galway agencies on the same WordPress platform, all read by one generic scraper: Fair Deal Property, Colm Farrell, Collerans, KMS, Property Partners, Regan Auctioneering, and Mullery Auctioneers. These carry BER (unlike DNG/ODJ). Two run national feeds, so their non-Galway rows are filtered out. Together they add roughly 140–150 net-new Galway listings once duplicates are removed.

Official datasets

the historical backbone
Property Price Register (PPR)every sale since 2010

The state's official record of every residential sale in Ireland since January 2010, maintained by the PSRA from stamp-duty returns — this is the ground truth behind every “last sold” figure and the area price history. It's downloaded as CSV. Its limits are real: addresses are free-text and messy (the same street appears in three spellings), there are no coordinates, Eircodes are mostly empty in older years, and it carries price and date but not features like floor area or BER. It refreshes weekly.

Lag — a sale only lands on the register once the buyer's solicitor files the stamp-duty return, which can be weeks after the sale closes. So the most recent weeks of PPR data are always incomplete and keep filling in.

CSO house-price index (RPPI)the inflation adjuster

The CSO's official Residential Property Price Index. The site uses it to restate historic sale prices into today's money before comparing them — the foundation of every comp. The finest local cut available is the NUTS3 “West” region (Galway with Mayo and Roscommon), and only for houses; everything else falls back to a national-ex-Dublin series. It publishes monthly, mid-month, for two months prior — so it carries roughly a two-month lag, and very recent sales adjust off a slightly stale index.

The morning job ladder

daily, Europe/Dublin time

The sources don't all run at once — they're staggered through the early morning to keep the ingests from overlapping, and duplicates are reconciled after each. The PPR and CSO index refresh on their own (weekly and monthly).

07:00Daft ingest (then dedup)
07:20MyHome ingest (then dedup)
07:25DNG ingest (then dedup)
07:30Seven 4property agencies (then dedup once)
07:35Daft sold feed
07:40Sherry FitzGerald ingest (then dedup)
07:45ODJ ingest (then dedup)

Every run records whether it succeeded, stalled, or failed, visible on the scrapes page. A run whose heartbeat goes quiet for more than 15 minutes is shown as stalled.

One property, one row — deduplication

and “also listed on”

The same house often appears on several sources at once — Daft, MyHome, and its agency's own site. Showing it three times would be noise, so the site collapses each cluster to one canonical row and hides the rest.

Two listings are judged the same property by matching on Eircode plus a house-number / bed-count check, or — where there's no Eircode — by a strict fuzzy address match combined with matching beds, property type and a price within a few percent. The thresholds are deliberately cautious: merging two different houses is the dangerous error, so the tuning errs toward occasionally missing a true duplicate (a harmless double-listing) rather than wrongly fusing two properties.

Which row wins is fixed by source precedence — Daft always wins because it carries the most (offers, model features, the photo pipeline, value scores), then MyHome, ODJ, DNG, then the smaller agencies. The losing rows aren't thrown away: the canonical listing shows an “also listed on” note linking to each other source and its price there, so you can see the same property's asking price across portals at a glance.

Photos

served through a cache

Daft blocks its image URLs from loading on any other site, so the photos can't simply be embedded. Instead they're downloaded once and served from our own cache, at a size large enough that floor-plan room labels stay readable.

If a photo isn't cached yet, the carousel falls back to the original URL, and only shows “photo unavailable” if both fail — so a slow cache never leaves a blank.

Coordinates

geocoding fallback

Map pins need a latitude and longitude. Most sources supply them directly in the feed. When a listing has none but does have an Eircode, the site backfills the location by geocoding that Eircode through Nominatim (OpenStreetMap), paced at one request a second.

PPR addresses have no coordinates at all and are plain strings, so PPR sales are geocoded separately and matched to listings by address rather than position.