Transparenz first. Diese Seite erklärt was die Zahlen auf immobeat.at bedeuten, wo die Daten herkommen und welche Limitationen sie haben — damit du selbst kalibrieren kannst wie viel Vertrauen du in eine Aussage haben solltest.
Alle Marktdaten stammen aus öffentlichen Inseraten von willhaben.at. Pro Wiener Bezirk werden täglich die ersten ~10 Such-Seiten (= ~300 aktuelle Inserate) für Kauf und Miete gescraped. Bilder, Inseratstexte und Verkäufernamen werden nicht gespeichert — nur Bezirk, Preis, Fläche, Zimmer, Koordinaten und der Link zum Originalinserat. Klicks auf „willhaben →" führen direkt zum vollen Inserat.
Der Scraper läuft täglich um 04:00 UTC. Das Daten-Frische-Badge oben rechts auf der Hauptseite zeigt den Zeitstempel des letzten erfolgreichen Imports plus die Anzahl der Einträge die in den letzten 24h hinzugekommen sind.
Beachte: willhaben re-listet manchmal ältere Inserate auf den ersten Seiten
(Bumping). Solche Re-Sightings setzen das interne last_seen-Feld auf
den heutigen Tag — das ist gewollt, weil das Inserat de facto noch aktiv ist.
Bevor Inserate in Statistiken einfließen, werden Tippfehler und Sondertypen ausgefiltert:
Diese Schwellen werden in app.py über die Konstante STATS_FILTER
gesetzt und überall konsistent angewendet.
Alle €/m²-Vergleiche und Bezirks-Werte sind Mediane, keine arithmetischen
Mittelwerte. Der Median ist robuster gegen Ausreißer (ein einzelnes Luxus-Penthouse
zieht den Mittelwert hoch, den Median nicht). Konkret: PERCENTILE_CONT(0.5)
in Postgres.
Mediane werden nur berechnet wenn ein Bezirk pro Slice mindestens 5 Inserate hat. Sehr dünne Slices werden mit n=12 klar markiert, damit du siehst dass die Zahl nur grob orientierend ist.
willhaben listet Brutto-Mieten (inkl. Betriebskosten + ggf. Heizung). Wir
speichern diese als typ='miete_brutto'. Für die Anzeige als „Kaltmiete pro m²"
ziehen wir eine pauschale BK-Schätzung von 3 €/m²/Monat ab — das ist der
österreichische Durchschnitt; pro Wohnung schwankt's typisch zwischen 2-5 €/m²
je nach Baujahr, Größe und Heizungstyp.
Heißt konkret: bei einer Brutto-Miete von 22 €/m² zeigen wir ~19 €/m² Kalt (= 22 − 3). Im Bezirks-Median glättet sich die ±15%-Ungenauigkeit pro Inserat raus. Für Einzelwohnungs-Vergleiche sollte man die echte BK in der Inseratsbeschreibung prüfen.
Beim ersten Sehen eines Inserats wird created_at = jetzt gesetzt. Bei
jedem späteren Re-Sighting durch den täglichen Scrape wird last_seen
aktualisiert. Inserate die 21+ Tage nicht mehr im Scrape auftauchen werden als
archived = TRUE markiert — sie sind dann mit hoher Wahrscheinlichkeit
verkauft/vermietet/gelöscht.
Aktuelle Marktdaten (Karte, Median, Schätzer, Verweildauer, Reduktions-Anteil, Bezirks-Profile) werden ausschließlich über aktive (nicht-archivierte) Inserate berechnet. Historische Trends (12-Monats-Preisentwicklung, Volumen-Trend, Altbau-/Außenflächen-Premium) nutzen die ganze History inklusive archivierter Inserate — sonst würde z.B. der Preis-Trend nur die letzten 21 Tage zeigen.
21 Tage statt 7 sind bewusst gewählt: willhaben re-promoted Inserate oft erst nach ~2 Wochen, und unser Scraper sieht nur die obersten ~300 Treffer pro Bezirk-Kategorie. Mit 7 Tagen würden wir Inserate vorzeitig archivieren die zwischenzeitlich nur auf Seite 11+ gerutscht sind.
Die Klassifikation ist heuristisch:
FREE_AREA_TYPE_NAME (Balkon /
Loggia / Terrasse / Garten).
Bei rund 50% der Inserate ist building_type nicht detektierbar —
die fließen dann nicht in die Altbau-/Neubau-Premium-Berechnung ein. Premium-Werte
sind also über jene Inserate gerechnet wo eine eindeutige Klassifikation vorlag.
Überall wo eine Median-Zahl angezeigt wird, steht ein farbiges Sample-Size-Badge daneben. Bedeutung:
| Badge | Anzahl Inserate | Aussagekraft |
|---|---|---|
| silent | ≥ 100 | Robust — Median ist statistisch gut belegt. |
| n=42 | 30 – 99 | Solide aber begrenzt; einzelne Ausreißer können den Median nach links/rechts ziehen. |
| n=12 | < 30 | Vorsicht. Median nur grob orientierend — bitte als Einzelfall behandeln. |
Klare Grenzen — wir täuschen nichts vor was wir nicht haben:
Code, Scraper-Logik und Datenfilter sind nicht öffentlich, aber die Methodik hier ist vollständig dokumentiert. Fragen, Fehlerberichte oder Vorschläge gerne an die Kontakt-Adresse.
← Zurück zur App