Any change to ranking rules is documented here with a plain-language explanation.
- 2026-07-30
Commune listing pages now suppress exact and confirmed duplicates before applying an agency-diversity guardrail. Where enough alternative inventory exists, one agency can occupy at most 3 of 24 positions. The limit relaxes only when needed to fill the page, and newer additions remain first within each agency.
- 2026-08-31
Public-data facts used in search and listing calculations must now come from a current, authoritative ingestion with verifiable provenance. Stale, retired, manually invented or unverified values provide no ranking evidence; unavailable coverage is shown as unknown instead of being guessed.
- 2026-08-29
Nearby-place searches now apply a geographic radius around the named destination. Homes proven outside that radius are excluded even when travel-time data is unavailable; missing route or location evidence remains clearly Partial rather than being treated as a match.
- 2026-08-28
Search result pages now collapse confirmed duplicate listings for the same home and limit any one agency to three results per page. The highest-ranked copy is kept, materially different offers remain separate, and unused slots are backfilled in ranking order.
- 2026-08-27
Search now uses one production planning and execution path. A missing required fact no longer hides a home in a separate evidence-gap group: the home remains visible as Partial and names the missing proof; only a proven contradiction is excluded or presented as an alternative. Retired legacy comparison paths and unsupported-preference blocker prompts have been removed.
- 2026-08-24
When fewer than ten homes meet every requirement, search now fills the page with the closest proven alternatives available. Each remains clearly labelled and keeps a Relevance score reduced by the measured size of every required-need miss; an unknown or unmeasured fact never becomes a scored alternative. Numeric wishes are represented as typed limits or targets instead of manufactured phrase-specific bands. If fewer than ten proven homes remain, the page offers one optional, evidence-backed limit adjustment without withholding the results already found.
- 2026-08-23
A home is no longer removed from your results over a disagreement about a fact you never asked for and the card never shows. Searching for a house in Arlon returned 12 homes when 25 matched: thirteen distinct houses, from €175,000 to €720,000 in the villages around the town, were dropped because our search index recorded a lift in the building and the listing itself did not. Nothing about a lift had been asked, and nothing on the card mentions one. A disagreement about anything you can actually see — the price, the transaction, the place, bedrooms, bathrooms, rooms, floor area, energy class, pets or any accessibility fact — still withholds the home, because we will not show you a figure we cannot stand behind. Every disagreement is still recorded either way. Search-quality plumbing only: no change to which homes are found, how they are scored, or the order they appear in. The internal check for whether a location was stated now goes through one shared function instead of two copies that could drift apart; the ranking hint that reads it behaves exactly as before. Published because the file that produces ranking hints was touched, and this changelog is meant to be complete about that file rather than only about changes we judge interesting.
- 2026-08-11
Vibe Search now preserves measured semantic distances through final ranking. Homes outside the bounded semantic window keep explicit uncertainty instead of gaining from a missing signal. Proven accessibility results stay ahead of unknown fallbacks. The badge is now a fixed-scale Fit against the stated criteria, not a probability or market percentile. An explicitly requested energy class is matched exactly across A–I. A strict search no longer silently drops budget, bedroom or property-type requirements. Confirmed cross-agency duplicate clusters are now revalidated against current membership, agency ownership, price and area before any result is collapsed; uncertain or stale clusters show every listing.
- 2026-08-10
Search now rechecks each home's location against certified agency copy before it can enter results. A home whose source contradicts its stored commune is excluded from both classic and Vibe search, and totals, criteria and telemetry are recalculated from the homes that remain. Certified source text is fetched only for the bounded final result window; unverified retained text is never treated as agency evidence. When mandatory parking or conditional tax makes the headline price incomplete, derived affordability, monthly-cost and price-per-square-metre claims are withheld.
- 2026-08-09
Search totals now exclude near-miss homes that belong only in the separate alternatives section. The results page also states the visible range and the size of the ranked window, so a total can no longer sit beside five pages without explaining that only the top 120 ranked matches are available.
- 2026-08-08
Named-place proximity now uses bounded evidence tied to the current place data and measured from the home's privacy-preserving cell, with location uncertainty included. Stale or out-of-coverage evidence stays unverified, and straight-line distance never becomes a driving or public-transport time. Requests to avoid major renovation now use only explicit source-backed renovation evidence, never photo or model scores. A travel-time search no longer comes back empty because of a word you did not say. Asking for a home within twenty minutes of Esch returned nothing at all — we hold the travel times and the homes exist — because the request never said whether you drive, take the train or cycle, and the search threw the whole destination away rather than ask for it. It now asks. Destination names are also read from the same place data the rest of the site uses, so the short names people actually type — Esch, Belval, Hamilius, Cloche d'Or — are recognised, instead of only the handful that had been written into the search by hand. We hold measured travel times to three places: Kirchberg, Luxembourg City and Belval/Esch. Naming anywhere else now says so plainly and offers those three, and we are adding more; before, it simply ended the search. A place close to a hub we have never measured is no longer answered as though it were that hub — a question about Cloche d'Or used to be answered quietly with travel times to Luxembourg City, about three kilometres away. Naming two workplaces in one sentence now asks which you meant instead of choosing one of them for you. Travelling by bike is now an answer that survives all the way to the results. And the page that said it could not run your search, offering only to drop the requirement or start over, has been removed: a search we cannot run now asks the one question that would let it run. Travel time to a workplace is now measured from the home's own position, wherever we have published that measurement, instead of from the middle of its commune, and a driving time is a weekday morning rather than a quiet hour. A home outside the area we have measured is reported as not measured instead of being given an estimated time. Where the measurement is not published yet, the commune figure is still used.
- 2026-08-07
Filtered search now uses the words you type. The search box sent them somewhere the search never read, so typing “house Strassen” returned the same nationwide list as typing nothing at all, in the same order. Every word you type must now be present in a home for it to be shown, instead of any single one of them, and narrowing an existing search no longer throws the words away. Luxembourg City districts — Kirchberg, Limpertsberg, Belair, Bonnevoie and the rest — are now recognised as places in filtered search, where before they matched nothing. The match percentage on a filtered result was the same number on every card, which measured nothing; it now reflects where your words were found, and is not shown at all when you typed none. Where a search stopped counting once it had enough homes to show you, the total now says so instead of presenting a partial figure as the whole market. Two lines on the results page that described the same thing were counting differently and now agree. Beside each result, a feature we cannot confirm is no longer reported as never mentioned when the agency's own description names it — it now says the agency states it and we have not verified it, which is a different claim and a true one. A stated plot size that cannot be true — a house on seven square metres, or on eight hectares — is no longer shown at all; those were the same measurement error in opposite directions. A bedroom count is now taken from the agency's own headline when the two disagree, so a home advertised as having two bedrooms no longer appears in a search for five or more. Dates on the Luxembourgish pages were being written in the wrong language entirely, and English dates were written in American order; both now read the way they are written in Luxembourg. Finally, an unrecognised setting in a shared or saved search link used to replace the whole results page with an error; the setting is now ignored, the search runs, and the page names what it left out.
- 2026-08-06
Vibe search now runs exclusively on the versioned V2 engine. It resolves Greater Region locations before retrieval, requires proof for every hard constraint, separates homes with unknown facts into explicit includable groups, and combines canonical structured retrieval with semantic recall. Required commute limits now use the stored weekday-morning locality travel-time matrix; if no home meets every commute, only safe commute-only near misses within ten minutes are offered as alternatives and receive no match score. Bounded nearby-school requests use precise stored address evidence, while unknown or approximate positions remain unverified. Unrequested nearest-school, rail and transit facts are no longer shown as criteria that were not applied. Homes with unverified wheelchair-access facts remain pursuable but their score is capped below a strong match; proven access contradictions are still excluded. An explicit bedroom count is exact unless the wording says at least or more, consistently across all five languages. Reposts of the same agency page reached through navigation or campaign parameters are collapsed. When the bounded search window cannot prove the whole market size, the page now describes only the top ranked matches and makes no estimated-total claim. The previous Vibe execution path has been removed; classic search is unchanged. Three further corrections in this release. When a search names a district rather than a commune — Limpertsberg, Belair — the results are drawn from the whole commune, and the page now states how many of them are actually in the district you named; previously the district was presented as a requirement every result had met, and nothing had checked it. Every search now states how many homes it found. A budget the size of a monthly rent is now read as a rental search, and a search that returns nothing while the buy-or-rent setting was never chosen by you now counts the homes available under the other setting and offers to switch to it. Classic search now reads the words typed into its box — place, property type, bedroom count and budget — instead of ignoring them and returning homes from across the country; filters you set yourself still take precedence, and when the text cannot be read as a filter the page says so rather than showing unrelated results.
- 2026-08-05
Primary Vibe results now contain only homes whose complete hard-requirement ledger is proven matched. Missing evidence is shown separately from matches; the closest safe near-misses form a second alternative tier ranked by the number and size of their misses. A forbidden location, wrong transaction, hazard conflict, or proven-false pet, furnishing or access policy is never offered as an alternative. Flood, noise, school and amenity checks now read the home's versioned stored evidence locally instead of making a search-time grounding request; missing or approximate evidence remains unknown. Every alternative shows each failed or unverified requirement. This release also removes price ceilings invented from room counts, applies multilingual flood exclusions as hard requirements, reconciles displayed lift evidence with stored facts, deduplicates repeated wishes, and displays rent plus charges when that combined figure is the applied budget. A second search engine now runs alongside the current one and can be switched on per deployment. It resolves a place name against the whole Greater Region gazetteer before searching, and refuses to answer when the question cannot be settled honestly — two towns share the name, the place is recognised but we list nothing there, or a requirement such as a travel time or an energy class cannot be checked on every home. In those cases it returns no homes and says which detail it needs, instead of a page that quietly ignored part of the request. It is off by default while both engines are compared.
- 2026-08-04
Homes across the border are now measured against their own country's data. A school in another country is no longer offered as a home's nearest school — enrolment does not cross the border — and the French and Belgian school registers are now held, so those homes are measured against schools their children could actually attend. Germany publishes no open school register with locations, so a school requirement there is reported as something we could not check, never as a home with no school nearby. Almost 33,000 bus and tram stops from the French, Belgian and German networks are now held too, so a home's nearest stop is a stop near it rather than the closest Luxembourgish one across the border; nothing claims how often those stops are served, because we have not counted. Nearby train stations are no longer claimed outside Luxembourg at all, rather than counting a bus interchange as a station. Flood exposure is now checked at the address with each country's own authority — Géorisques in France, Wallonia's hazard map, and the Rhineland-Palatinate water administration, which also publishes how often water is expected to reach that address, so a flagged German home says whether that is roughly once a decade or only in an extreme event. Germany maps flooding state by state and Saarland publishes no frequent-flood layer, so a Saarland address stays unchecked rather than being understated. Separately, an address containing an accented letter was failing to resolve to a position at all — the accent was deleted rather than converted, so “Am Hölzchen” was searched for as “am hlzchen” — which left about a thousand homes pinned to the middle of their commune instead of to their street; those now carry their real position, which changes every walking distance measured from them. Finally, the cross-border assessment shown for German and Belgian homes no longer scores an unmeasurable factor as zero: it is calculated from what could actually be checked, so those homes are no longer ranked below comparable French ones because of a gap in our data rather than anything about the property.
- 2026-08-03
Homes are now judged on their own surroundings rather than their commune's average. Where we can measure it, the walking distance from that address to the nearest school, creche, park and transport stop is used directly; homes we have not measured keep the older commune figure rather than being scored as though nothing were nearby. Property across the border is now ranked on location and travel time like any other home — it was previously left unscored on both, which meant a cross-border search returned homes that were never judged on the very thing being asked for. Room counts and bedroom counts are now treated as the different things they are: "2 pieces", "3 Zimmer" and "assoalhadas" count habitable rooms including the living room, and are no longer read as a number of bedrooms, so a request for a small flat no longer returns a size class larger. Access requirements — a lift, step-free entry — are applied where the listing proves them and reported as unverified where it does not; a missing lift record is never read as a lift. Finally, homes left out because something could not be checked are now counted and named, with a one-tap way to include them, instead of disappearing silently.
- 2026-08-02
Nearby schools, parks, shops and sports facilities are now measured from canonical POI data and used for ranking. Monthly charges, bathrooms, floor, heating and source-stated gross yield now also affect ranking when requested; unknown values stay eligible and are never presented as facts. Vibe search now uses the richer neighbourhood, lifestyle, amenity, commute, market and energy tags already available for each home. When a requested quality is not recorded, the home stays in the results with a small uncertainty penalty instead of being treated as a negative; only confirmed evidence earns the match boost. Pet and furnishing data now keep this unknown state, and classic amenity filters are applied instead of being silently dropped. Where a search names another country to live in - "a house in France" - that country now counts as a complete answer to where you want to live, so the follow-up questions no longer ask which Luxembourg commune you meant, and choosing a Luxembourg place properly replaces the foreign one instead of combining the two into a search nothing can match. A search scoped to a town across the border is now sent to the database as that scope, rather than fetching a broad set and discarding most of it afterwards, and when such a search finds nothing the page names the town and offers its country instead of offering Luxembourg. When one destination is mentioned more than once in a request, its travel time is now proved once rather than twice, so a journey that was measured and met can no longer be overwritten by a second, blank copy of itself. A place asked for both as a locality and as a commune is named once instead of twice. Where a home's country was used to select it, the checks beside the result now say so instead of reporting it as unstated, and a request to avoid a particular floor now reports what the filter actually did when the floor is unrecorded, instead of implying the requirement was ignored. A room count stated together with the property type - "apartamento T2", "3 Zimmer Wohnung" - is recognised as applied when both halves were applied. Property types, features and lists of criteria now read in the language of the page rather than falling back to English or German wording, a parking wish is no longer shown twice in two languages, and agency names are repaired for display wherever they appear. Search results are also lighter to load: information no result page displays is no longer sent with it. A wish already met by the search is no longer listed as unmet, and a single wish written in two languages is shown once rather than twice. Homes in Luxembourg that had been mistaken for property abroad are back in search. A check meant to keep foreign property out of a Luxembourg marketplace was reading ordinary words as place names: Luxembourg villages whose names also exist across the border - Belval, Hagen, Pontpierre, Bettborn - and everyday phrases such as a large house, a large plot or a bathroom, written in French, were enough for a home to be treated as though it stood in France or Germany and withheld from results. A street named after another town had the same effect, so an address on rue Emile Metz or rue de Chiny in Luxembourg City counted against the home. About a hundred and fifty Luxembourg homes were hidden this way and are shown again; property genuinely across the border is still withheld. Separately, homes whose exact position was never known had been given the coordinates of Luxembourg City centre. That invented point sits a few minutes from Kirchberg, so those homes were winning journey-time comparisons they had not earned, and their map pin claimed a precision we did not have. The invented coordinate has been removed from the homes with no address or district to support it; they now show no position at all rather than a confident wrong one. Homes that genuinely are in the capital keep theirs. Three properties outside the country, including one in Dubai advertised as being in Luxembourg and two in Germany, have been withdrawn.
- 2026-08-01
When a search asks for somewhere reachable on foot — "near the station", "walking distance to the tram" — nearness is now held to about two kilometres even when the search is also confined to a town or city. Previously the general fifteen-kilometre radius applied, which at city scale meant the request changed nothing and homes well beyond walking distance could still be returned. A search named after a commune now also accepts the villages that belong to it, so asking for Mersch includes Moesdorf instead of leaving it out. A request for a room or a shared home now includes room rentals rather than filtering them away. A wish the ranking did apply — a garden, a terrace, parking, pets, furnishing — is no longer also listed as something we could not apply. And the checks shown beside each result only claim a distance or property-type requirement is met when the underlying facts prove it. A required travel time is now a promise the results keep. A home whose coordinates are only a town or city centre — not the building — is no longer accepted for a short walking or cycling requirement, because a centre point cannot decide whether somewhere is ten minutes away; before this, homes spread across a whole city, several kilometres from the requested landmark, were returned as matches. A home whose travel time could not be measured at all no longer counts as meeting the requirement either, and both cases are now named as their own reason instead of being blamed on distance. The requirement itself appears in the summary alongside every other criterion, with the estimate behind it labelled as an estimate. A request to avoid a particular floor is now decided on the floor number recorded for the home rather than on a descriptive label alone, so a ground-floor home without that label can no longer pass "not on the ground floor". Asking to be near the tram, a train station or a bus stop is now recognised as a transport requirement in all five languages instead of being noted and ignored. A bedroom count already applied as a filter is no longer also listed as something we could not apply. A place named in the search is never turned into a different town when the query is rewritten internally. And where a home’s transaction type or location was used to select it, the checks beside the result now say so instead of reporting it as unstated. A stated travel time is now recognised whatever the destination is called. Only five destinations used to be understood, so "within 10 minutes’ walk of Hamilius" or "of Luxembourg Gare" quietly became an ordinary search for a home in that neighbourhood, with no travel-time requirement applied at all. Each part of a request also keeps its own means of travel and its own limit, so "10 minutes on foot of the station and 15 minutes by tram of Kirchberg" is no longer collapsed into one rule applied to both. A place named only as somewhere you travel to — your workplace — no longer also restricts where the home itself may be; asking for somewhere within reach of two different workplaces previously returned nothing at all. Each required journey is now explained on its own beside the result instead of the first one standing in for all of them. Finally, a requirement that was applied is no longer also listed as one we could not apply, and a price, bedroom count or property type that the filter itself read is now shown as matching rather than as unstated.
- 2026-07-29
Commute time is now matched to a listing's exact locality instead of to its commune name. Name matching could confuse places that share a first word: a home in Esch-sur-Sûre, in the north, could inherit the commute time measured for Esch-sur-Alzette and be ranked on it. Listings are now joined to travel-time data through a unique place identifier, so there is no name fragment left to collide on. A listing without that identifier now receives no commute signal at all instead of a name-matched guess; as before, a home with no measured journey time is not removed by a commute filter. A listing whose locality has no measured journey now also receives no commute score from a straight-line distance estimate; its ranking continues on the other available signals. The commute reason shown next to a result describes the same journey the ranking used.
- 2026-07-26
Follow-up refinements now apply atomically: a request is either fully understood and validated or leaves the ranking plan and results unchanged. Empty, no-op, conflicting, unsupported or oversized refinements are explained precisely instead of partially changing results. Combined bedroom-and-budget requests retain every supported criterion, transport wording cannot become a price constraint, and a location answer clears incompatible location filters. Find My Fit now ranks only active residential listings in the chosen buy or rent mode, within a disclosed sample limit. Search explanations now count only requirements proven by source-bound facts; unknown, dropped or unapplied criteria are shown instead of being called a complete match, and model-only lifestyle scores no longer contribute to public ranking reasons.
- 2026-07-25
A place extracted as a proximity or commute destination now consistently uses its explicit or default travel radius instead of also restricting results to that place as a residence. This prevents nearby qualifying homes from being hidden and removes language-specific keyword shortcuts from the decision. When a search explicitly asks for a dwelling subtype such as a penthouse, the listing must now provide evidence of that subtype instead of matching through its broader parent category alone. Property type is now applied when the database selects candidates, rather than afterwards, so a search for houses draws on every matching house instead of filtering a mixed sample — many more qualifying homes now reach the results. Filtered searches can also be sorted, including by price; homes without a published price are left out of price-sorted views rather than grouped at one end. The result count now describes how many homes match in total, shown as an approximate figure, instead of how many were examined. A search broad enough to match a large part of the market now offers a few narrowing questions first.
- 2026-07-24
Explicit requirements such as energy class, minimum bedrooms, home type, space, condition, commute and all-in rental budget are now applied as verified constraints where evidence exists. Affordability is grounded in the buyer's stated finances, and missing or contradictory evidence is disclosed instead of treated as a match. Search now distinguishes Luxembourg the country from Luxembourg City and commute destinations from residence filters, retrieves more homes that meet price and bedroom constraints, and respects the ranking priority order stated by the user.
- 2026-07-21
Searches that look like a specific listing reference, an agency name, or a street now run an exact-match lookup, so a pasted reference or a precise name surfaces the exact home at the top of the results. Ordinary descriptive searches are unaffected.
- 2026-07-14
Confirmed cross-agency copies now occupy one place per result set and the representative rotates between requests. Distinct units from the same agency remain visible and are labelled as related; a shared origin identifier alone never hides them.
- 2026-07-13
Trust guardrails tightened: implausible market comparisons no longer influence scores, low-relevance padding is removed once enough relevant homes exist, and locality membership is explained as membership rather than as distance to a commune centre.
- 2026-07-11
Searches with several required commutes now evaluate every required journey: the weakest required commute determines commute fit instead of whichever journey looks best.
- 2026-07-07
Vibe ranking now prioritises confirmed quarter matches, scores commute continuously, calibrates displayed match percentages, moves near-duplicates down, and adjusts semantic versus keyword retrieval weight to the query's specificity.
- 2026-06
Personalisation added: listings a user has dismissed rank lower in that user's results only. No effect on agency ranking or other users.