01 Dylemat - za wysoko traci czas, za nisko traci pieniądze
Dlaczego każda wycena rynkowa to tylko połowa odpowiedzi
Każdy pośrednik potrafi oszacować wartość rynkową. Ale pytanie właściciela brzmi inaczej: "Za jaką cenę mam wystawić?" Wartość rynkowa to prawdopodobna cena sprzedaży - cena ofertowa to decyzja strategiczna. Za wysoko → nieruchomość stoi, robi się "przeleżana", cena idzie w dół. Za nisko → szybka sprzedaż, ale prowizja oddana za darmo.
Optymalna cena ofertowa zależy od: Jak pilnie właściciel chce sprzedać? Jaki jest bieżący popyt? Ile porównywalnych nieruchomości jest na rynku? Żaden człowiek nie zoptymalizuje tego dla 15 nieruchomości jednocześnie. Model tak.
+3% ceny ofertowej powyżej optimum = +34 dni sprzedaży
A na końcu i tak cena zwykle spada do optymalnej - tylko ze stygmatem obniżki.
Baza wartości rynkowej
→
Kontekst popytu
→
Krzywa cena-czas
→
Cena optymalna
→
Doradztwo dla właściciela
02 Model - krzywa cena-czas dla każdej mikrolokalizacji
Indywidualna krzywa elastyczności dla każdej dzielnicy × typu nieruchomości
import numpy as np
import xgboost as xgb
from scipy.optimize import minimize_scalar
# Dla każdej nieruchomości: symuluj czas sprzedaży przy różnych cenach
# i znajdź cenę maksymalizującą stopę prowizji
def provision_rate(preis_faktor, model, objekt_features, provision_satz=0.036):
"""
Oblicza: prowizja / czas sprzedaży = €/dzień
Cel: maksymalizuj €/dzień → cena optymalna
"""
features = objekt_features.copy()
features['preis_abweichung_%'] = (preis_faktor - 1.0) * 100
features['preis_ueber_10pct'] = int(preis_faktor > 1.10)
# Prognozowany czas sprzedaży
tage = model.predict(features.values.reshape(1,-1))[0]
tage = max(14, tage)
# Oczekiwana cena sprzedaży (rabat negocjacyjny)
verhandlung = 0.97 if preis_faktor <= 1.05 else 0.94
verkaufspreis = objekt_features['marktwert'] * preis_faktor * verhandlung
provision = verkaufspreis * provision_satz
return provision / tage # €/dzień jako cel optymalizacji
# Znajdź optymalny współczynnik ceny dla każdej nieruchomości
for obj in objekte:
result = minimize_scalar(
lambda f: -provision_rate(f, model, obj),
bounds=(0.92, 1.20), method='bounded'
)
obj['optimaler_faktor'] = result.x
obj['optimaler_preis'] = obj['marktwert'] * result.x
print(f"Śr. optymalna nadwyżka: {np.mean(opt_faktoren)*100-100:+.1f}%")
print(f"Zakres: {np.min(opt_faktoren)*100-100:+.1f}% do {np.max(opt_faktoren)*100-100:+.1f}%")
▸ Output
Śr. optymalna nadwyżka: +3.2%
Zakres: -2.1% do +8.4%
(Silnie zależne od lokalizacji i popytu)
Krzywa cena-czas: mieszkanie przy uniwersytecie vs. dom na zachodnich przedmieściach
↳ Dwa zupełnie różne rynki
W dzielnicy uniwersyteckiej (wysoki popyt) optymalna nadwyżka to +5,8% - tu można wyceniać agresywniej, bo popyt uniesie wyższą cenę. Na zachodnich przedmieściach (słaby popyt) optimum leży -1,2% poniżej wartości rynkowej - szybka sprzedaż jest tu warta więcej niż ostatnie euro. Ten sam model, przeciwna rekomendacja.
Prowizja dziennie (€/dzień) - optimum vs. typowa praktyka
↳ Paradoks obniżki ceny
28% wszystkich nieruchomości przechodzi obniżkę ceny po średnio 78 dniach. Szkoda: nie tylko stracony czas - nieruchomość jest postrzegana jako "przeleżana", kupujący podejrzewają wady, a finalna cena sprzedaży jest 4,2% niższa od ceny, którą osiągnęłaby poprawna wycena początkowa. Model zapobiega dokładnie temu scenariuszowi.
03 Business impact - więcej prowizji w krótszym czasie
Podwójny efekt: szybsza sprzedaż + wyższy przychód netto
Dodatkowy przychód dzięki optymalnemu doradztwu cenowemu
€445 800
Dodatkowy przychód / rok
| Kategoria | Kwota/rok | Mechanizm |
| Unikniete obniżki cen | €198 200 | Poprawna wycena początkowa 118 nieruchomości → bez stygmatu "przeleżenia" |
| Szybsza rotacja mocy przerobowych | €162 400 | Śr. 22 dni krótsza sprzedaż → 19 dodatkowych transakcji |
| Wyższy przychód netto na szybko rotujących | €85 200 | W lokalizacjach o wysokim popycie: optymalna nadwyżka zamiast "bezpiecznej" wyceny |
↳ Efekt doradczy
Model czyni pośrednika doradcą opartym na danych: "Rozumiem, że chcą Państwo €380 000. Nasza analiza pokazuje: przy €380 000 liczymy się ze 112 dniami. Przy €365 000 to 48 dni - a przychód netto po negocjacjach jest niemal identyczny, bo unikają Państwo rabatu za 'przeleżenie'." To rozmowa, która buduje zaufanie.