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 nowThe 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.
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.
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 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.
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 backboneThe 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.
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 timeThe 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).
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 cacheDaft 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 fallbackMap 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.