marvin-mitterlehner.com
48.1°N 13.9°E·--:--:--
← back

Project · 2026–now

Real Estate Analyzer

A private tool that saves apartment listings every night, keeps a history of each one and shows them on a map, with prices that can be compared.

01The premise

A listings site mostly shows the present. Sellers can pay to push a listing back to the top, and then it looks as new as one posted today. In the first four weeks of data, at least 61% of the listings had already been pushed back up, and one showed "today" after six months online. Price cuts are hard to follow too, because a listing shows at most one earlier price.

So the tool's first job is to keep that history itself: when a listing first appeared, every price change and when it disappeared.

02Capturing the market

Every night at 2:30, one slow run collects the apartments for sale and for rent in the regions I care about. It only reads public pages, waits a few seconds between requests, and the data is for my own use.

A missed night cannot be filled in later, because the site only shows the current state. So every night's new and changed listings are also saved as plain text files and backed up off the server.

03The map

The front end is a map. Listings can be filtered by price, size, rooms, price per square meter and features, and each one shows its price history and the day it first appeared. About one in five listings only comes with a rough location; those get a dashed label and a circle of about 500 meters instead of a pin. A feature a listing does not mention is saved as not specified. Only an explicit "no" counts as missing.

04Comparing prices

Base rent, operating costs, VAT, deposit, commission: every agency labels them a bit differently. The same "net rent" field includes operating costs for one agency and leaves them out for another, and for about 2 in 5 rentals it is unclear what the rent covers. So the tool keeps two figures: the asking price, which every comparison uses, and the full monthly cost where a listing states it, marked as stated, confirmed by the description, or unclear. A price that is missing stays not specified and is never counted as zero.

05What the history shows

From the nightly runs the tool knows when a listing first appeared, every price change and status changes like reserved, which is as close to a completed deal as public data gets: of 100 listings that went reserved, 95 later disappeared.

A listing that disappears is only marked "no longer observed," never "sold" or "rented," and only a complete night run can mark listings as gone, so one failed run does not look like a wave of deals. Of the apartments online at the time, those for sale had been listed for a median of 107 days, rentals for 24.

06The opportunity score

Each listing gets an opportunity score based on how cheap it is compared with other listings in the same postcode, how new it is, whether the price was cut, and how quickly apartments in that area usually disappear. Area figures always show how many listings they are based on.

The score is a simple formula that can be followed step by step, and it always comes with a note that it is based on asking prices.

07What is next

About 140 new listings come in every day, and about as many disappear. The next step is the personal part: so far there are only like and dislike buttons. The plan is a score based on those ratings and a short daily list of new listings worth a look.