ARU Metodologija

Apylinkės Rinkos Unikalumas — skaičiavimų aprašymas

MiniRecall
Pagrindinis rodiklis

ARU — Apylinkės Rinkos Unikalumas

ARU yra sudėtinis rinkos paklausos rodiklis, kuris įvertina potencialų klientų skaičių tam tikrame spindulyje, atsižvelgdamas į esamus konkurentus ir planuojamą plėtrą. Aukštesnis ARU reiškia didesnį nepatenkintos paklausos potencialą.

ARU
punktai
// Pagrindinė formulė
ARU = (konkurentų_svoriniai_butai + nauji_butai × 0.2 + pipeline_butai × 0.8) × paskutinės_stotelės_koef.

1. Duomenų šaltiniai

NTR — Registrų Centras127 776 pastatų
buildings lentelė DB
→ Butų skaičius kiekviename pastate
→ Statybos metai, adresas
→ Pastato geometrija (PostGIS)
Naudojama: aru_ntr skaičiavimui
Regia sistema89 857 taškų
has_red_point laukas pastatuose
→ Aktyvūs klientai kiekviename pastate
→ Tikri (patvirtinti) klientai, ne tik registracija
Naudojama: aru_regia, aru_fact skaičiavimui
Konkurentų DB994 objektai
competitors lentelė DB
→ Maxima, Lidl, RIMI, Norfa, IKI, Šilas...
→ Kiekvieno prekybos vietos koordinatės
→ Subtipas (Maxima X / XX / XXX)
Naudojama: svorių skaičiavimui
Naujų projektų API — Plėtros pipeline35 projektai
Šaltinis: citify.eu komercinė API
→ Miestai: Vilnius (ID:13), Kaunas (ID:16), Klaipėda (ID:39)
development_pipeline lentelė DB
→ Projekto statusas: planuojamas / statomas / baigtas
→ Žemėlapyje: violetiniai statybų žymekliai
Svoris formulėje: × 0.8 (80% patikimumas)
Sklypai pardavimui552 skelbimaiŽemėlapis: geltonos žymės
Duomenų šaltinis:
→ Scraperiais surinkta iš aruodas.lt
→ Saugoma land_plots lentelėje Plesk DB
Automatinis scraping kas 6 val. (cron: 0 6,12,18,0 * * *)
→ Nauji skelbimai → Telegram bot pranešimas
Kiekvienas skelbimas turi:
Plotas — arais (a)
Kaina — EUR ir EUR/a
Paskirtis — pramonės, komercinė ir kt.
Regionas — Kaunas / Kauno raj.
Koordinatės — lat/lng žemėlapiui
Nuoroda — į originalų skelbimą
Filtrai žemėlapyje: Galima filtruoti pagal plotą (min/max arais) ir kainą (min/max EUR). Sklypai rodomi kaip geltonos spalvos taškai. Paspaudus — rodomas plotas, kaina, paskirtis ir nuoroda į aruodas.lt.
Kauno rajonas
380
69% visų sklypų
Kaunas miestas
172
31% visų sklypų
Vaistinės
Šaltinis: OpenStreetMap Overpass API
→ Skriptas: fetch_pharmacies.py
→ Tinklai: Eurovaistinė, BENU, Camelia, Gintarinė, Mano vaistinė
→ Saugoma: competitors lentelė (subtype=pharmacy)
→ Žemėlapyje: žalios piktogramos su filtru
Paštomatai
Omniva, DPD, LP Express, Itella: Overpass API
Venipak: fetch_venipak.py (HTML data atributai)
→ Saugoma: competitors lentelė (subtype=parcel_locker)
→ Žemėlapyje: pilkos dėžučių piktogramos su filtru
Gemini Flash 3 — AI analizės santraukosAutomatinis
Kaip veikia:
→ Kiekvienai analizuotai lokacijai generuojama tekstinė santrauka
→ Įvestis: ARU, pastatų skaičius, konkurentų sąrašas, pipeline duomenys
→ Išvestis: lietuviškas rekomendacinis komentaras
→ Modelis: gemini-3.0-flash-prev (konfigūruojamas)
Triggeris:
→ Automatiškai po kiekvienos lokacijos analizės
→ Rodoma ResultsDrawer dešiniajame panelē
→ API: POST /api/v1/ai-summary
→ Backend: services/ai_service.py
Koordinačių sistema: Įvestis EPSG:4326 (WGS84 lat/lng) → Apdorojimas EPSG:3346 (LKS-94 lietuviška metrinė) → tikslus atstumų skaičiavimas PostGIS pagalba

2. Skaičiavimo žingsniai

1

Pastatai ir butai spinduliu (PostGIS)

PostGIS erdvinė užklausa suranda visus pastatus nurodytu spinduliu (numatyta: 500 m).

Filtruojami pastatai su apartments > 0.

ST_DWithin(geom::geography, ST_Point(lng, lat)::geography, radius)
2

ARU variantų skaičiavimas

Skaičiuojami 3 ARU variantai:

aru_ntrNaudoja visus NTR butus (Registrų Centras)
aru_regiaTik Regia patvirtinti pastatai (has_red_point=true)
aru_fact ★Pagrindinis — Regia pastatai su min. 1 buto garantija. Rodomas vartotojui.
3

Konkurentų svorių taikymas

Kiekvienas konkurentas turi svorį pagal prekės ženklą ir dydį:

Maxima XXX1.0
Maxima XX0.8
Maxima X0.6
Lidl0.8
RIMI Hypermarket1.0
RIMI Super0.7
RIMI Mini0.3
Norfa XL1.0
Norfa0.7
IKI0.4–0.7
Šilas / Aibė0.3–0.5
Vidinis tinklas0.0

Pastatai, kuriuos dengia konkurentas, gauna 50% mažinimą:butai × (1 − maks_svoris × 0.5)

4

Naujų butų premija

Butai pastatyti 2010 m. ir vėliau skaičiuojami papildomai su × 0.2 koeficientu.

Tai atspindi didesnę tikimybę pritraukti klientus naujose gyvenvietėse.

5

Pipeline premija

Planuojami butai iš development_pipeline lentelės pridedami su × 0.8 koeficientu.

20% nuolaida taikoma dėl statybų neapibrėžtumo.

6

Paskutinės stotelės koeficientas

Galutinis ARU daugiklis pagal specialias sąlygas (šiuo metu = 1.0).

Ateityje gali būti koreguojamas pagal klientų parametrus.

3. Gyvybingumo vertinimas

ARU vertė lyginama su slenksčiu, kuris priklauso nuo apylinkės tipo:

Nauji daugiabučiai
>30% naujų, pipeline>100
750 pt. slenkstis
Nauji namai
Naujų gyvenamųjų namų kvartalas
715 pt. slenkstis
Seni daugiabučiai
Sovietiniai mikrorajonai
970 pt. slenkstis
Seni namai
Senų individualių namų zona
900 pt. slenkstis
Siekiamybė (Aukštas)
ARU ≥ slenkstis · Vietos potencialas pilnai realizuojamas
100 pt.
Perspektyvu (Vidutinis)
ARU ≥ 85% slenksčio · Gera perspektyva, tačiau ribota
75 pt.
Nepakanka (Žemas)
ARU < 85% slenksčio · Nepakankama paklausa
~50 pt.

4. Parduodami sklypai — kaip veikia

Sklypų sluoksnis rodo aktyvius pardavimo skelbimus iš aruodas.lt. Tai padeda įvertinti, ar aplink analizuojamą vietą yra laisvo žemės potencialui plėtrai.

🌐
aruodas.lt
Šaltinis
🤖
Scraper
Playwright
☁️
Plesk DB
land_plots
FastAPI
/land-plots
🗺️
Žemėlapis
Geltonos žymės
land_plots lentelės laukai (Plesk DB)
id
TEXT
Unikalus aruodas.lt skelbimo ID
'1387205'
first_seen
DATE
Kada skelbimas pirmą kartą pastebėtas
'2026-03-08'
region
TEXT
Regionas
'Kauno rajonas'
location
TEXT
Gatvė / vietovė
'Aleksotas, Kalvarijos g.'
price_eur
INTEGER
Kaina eurais
499999
area_a
FLOAT
Plotas arais
123.0
price_per_a
INTEGER
Kaina už arą
4065
purpose
TEXT
Žemės paskirtis
'Pramonės, komercinė'
lat / lng
FLOAT
Koordinatės žemėlapiui
54.868, 23.877
# API endpoint su filtrais
GET /api/v1/land-plots
?min_area=50
&max_area=500
&min_price=50000
&max_price=1000000
# Grąžina: JSON masyvą su visais laukais

5. GIS Valdymo Įrankiai

MiniRecall turi integruotų GIS įrankių rinkinį, leidžiantį interaktyviai analizuoti lokacijas tiesiai žemėlapyje.

Dešiniojo paspaudimo kontekstinis meniu
📍
Analizuoti šią vietą
Vykdo ARU analizę pasirinktoje koordinatėje
🚶
5 min pėsčiomis nuo čia
Rodo tikrą vaikščiojimo zoną per gatves
🚗
10 min automobiliu nuo čia
Rodo vairavimo pasiekiamumo zoną
📌
Pažymėti tašką
Sukuria užduoties tašką su pavadinimu ir statusu
✏️
Pradėti piešti poligoną
Leidžia nubraižyti laisvą analizės zoną
📋
Kopijuoti koordinates
Nukopijuoja lat, lng į clipboard
Izochronos (pasiekiamumo zonos)
🚶 Pėsčiomis (5 min)
~400m spindulys
Tikras maršrutas per gatves
🚗 Automobiliu (10 min)
~3–5 km spindulys
Pagal eismo sąlygas
📌 Užduočių taškai
→ Pavadinimas + pastabos
Planuojama — mėlynas žymeklis
Vykdoma — oranžinis žymeklis
Atlikta — žalias žymeklis
→ Statusas keičiamas Sidebar vienu paspaudimu
Išsaugoma: user_points DB lentelė
✏️ Vartotojo poligonai
→ Piešiami paspaudimais ant žemėlapio
→ Dvigubas paspaudimas — užbaigia piešimą
→ Modalas klausia pavadinimo prieš išsaugant
→ Galima tik analizuoti (neišsaugant)
Drag & Resize: išsaugotas poligonas pajudinamas ir keičiamas dydis
→ Pavadinimo etiketė rodoma tiesiai ant žemėlapio
→ Sidebar "Polygons" tab: ARU, pastatų sk., butų sk.
Išsaugoma: user_polygons DB lentelė
Stačiakampė skenavimas (Rectangle Scan)Fono procesas
Kaip naudoti:
→ Toolbar → pažymėti stačiakampį plotą žemėlapyje
→ Sistema automatiškai sukuria analizės tinklelį (grid)
→ Kiekvienas tinklelio taškas analizuojamas fone
→ Rezultatai kaupiami scan_audit lentelėje
Rezultatai:
→ Perspektyvios lokacijos → Blue Zones sluoksnis
→ Atmestos zonos → REJECTED statusas
→ Rodoma jau nuskaitytos zonos
→ API: POST /api/v1/system/scan-rectangle
# GIS API endpoints
GET /api/v1/user/points # Gauti visus taškus
POST /api/v1/user/points # Sukurti tašką
PATCH /api/v1/user/points/:id/status # Atnaujinti statusą
DEL /api/v1/user/points/:id # Ištrinti tašką
GET /api/v1/user/polygons # Gauti visus poligonus
POST /api/v1/user/polygons # Išsaugoti poligoną
POST /api/v1/routing/isochrone # Generuoti izochroną

5b. NT Skelbimų Skeneris — Veikimo Logika

Skeneris (aruodas_server_runner.py) automatiškai renka nekilnojamojo turto skelbimus iš aruodas.lt, skaičiuoja ARU balą ir saugo į Plesk DB. Veikia keturiais etapais.

🌐
aruodas.lt
Šaltinis
📋
Sąrašų skenavimas
1 etapas
🔍
Detalių skenavimas
2 etapas
☁️
DB sinchronizavimas
3 etapas
🪦
PARDUOTA aptikimas
4 etapas
1

Sąrašų skenavimas (List Scan)

Playwright naršyklė aplanko visus aruodas.lt puslapius su Kauno r. sklypų sąrašais.

Iš kiekvieno skelbimo ištraukiamas unikalus ID ir pridedamas į all_current_ids rinkinį.

Nauji ID (kurių nėra seen_ids_server.json) — pateikiami detaliam skenavimui.

seen_ids_server.json → deduplication (sesijos lygmuo)
DB url UNIQUE → deduplication (nuolatinis)
2

Detalių skenavimas (Detail Scrape)

Kiekvienam naujam skelbimui Playwright aplanko detalų puslapį ir ištraukia:

Koordinatės (lat/lng)
Plotas (arais)
Kaina (EUR)
Paskirtis
3

DB sinchronizavimas (sync_to_neon)

Kiekvienas naujas skelbimas tikrinamas prieš rašant į DB:

① Skaičiuojamas ARU balas pagal koordinates (PostGIS, GIS DB)
② Generuojama ORS izochrona (5 min. pėsčiomis) — max 480/500 per dieną
Jei limitas pasiektas → naudojamas 500m buferis
INSERT INTO real_estate_listings ... ON CONFLICT (url) DO NOTHING
ORS limitas: ors_daily_quota.json → maks. 480/500 dienai
4

PARDUOTA aptikimas (mark_sold_listings)

Po viso skenavimo lyginami all_current_ids (šiandien rastos) su DB aktyviais skelbimais.

Skelbimai, kurių ID nebuvo rasti aruodas.lt — pažymimi kaip parduoti:

UPDATE real_estate_listings
SET status = 'sold', sold_at = NOW()
WHERE id = ANY(sold_db_ids)

UI: PARDUOTA ženkliukas rodomas raudonai, eilutė priteminta, "Rezervuoti" mygtukas paslepiamas.

Dublikatų prevencija (dviguba apsauga)
Sesijos lygio
seen_ids_server.json
Greitas patikrinimas tarp puslapių skenavimo
Nuolatinis (DB)
UNIQUE(url)
ON CONFLICT DO NOTHING — apsauga tarp skirtingų paleidimų
Skenerio paleidimo būdai
Rankinis: /real-estate puslapis → "Paleisti skenerį" mygtukas
API: POST /api/v1/real-estate/scrapers/aruodas_kaunas/run
Webhook: api_bridge_v5.php — nutolęs valdymas

6. Duomenų bazės statistika (reali)

127 776
Pastatai
NTR registras
240 540
Butai
Iš viso
89 857
Raudoni taškai
Regia aktyvūs
994
Konkurentai
Visoje LT
7 118
Scan audit
Nuskanuotos zonos
35
Pipeline
Planuojami projektai
552
Sklypai
Aruodas.lt
49
Analizių cache
Išsaugoti rezultatai
MiniRecall · ARU metodologija · 2026