SpotFinder Geo
SVP Consulting kreeg steeds opnieuw de vraag “waar moet ik openen?”, zonder een herhaalbare manier om die te beantwoorden. Ik bouwde SpotFinder: een open-data kansenkaart die de ~450 statistische sectoren van Antwerpen scoort met drie typespecifieke formules, een AI-zone-toelichting en een eerlijk “signalen, geen oordelen”-kader — waarmee een handmatige scan van 2,5 dag teruggebracht wordt tot ~0,5 dag
- Probleem — Klanten in de voedingssector vroegen SVP steeds “waar moet ik openen?”; elke handmatige scan kostte ~2,5 analistdagen verspreid over 5–6 bronnen
- Inzicht — één score past niet bij drie bedrijfstypes, en een onderbouwde conclusie vraagt een reden in mensentaal erbij
- Oplossing — Ik bouwde solo een open-data kansenkaart (OSM + Statbel) die de ~450 statistische sectoren van Antwerpen scoort met 3 typespecifieke formules + AI-toelichting
- Resultaat — intern R&D-tool, live; vroeg signaal (n=2): ~2,5 dag → ~0,5 dag, 5–6 bronnen → 1, vertrouwen 2,4 → 4,3, €0 hosting
Locatie is de beslissing met de grootste inzet voor een klein foodbedrijf — en we hadden geen herhaalbare manier om daarover te adviseren
SVP Consulting is een vijfkoppig AI-bedrijf in Antwerpen. We helpen Europese kmo’s om data in te zetten — wat precies de reden is waarom een terugkerende klantvraag telkens op ons bureau belandde zonder een degelijk antwoord: “Waar moet ik openen?” Telkens wezen we het werk af of improviseerden we een handmatige deskanalyse. Een interne tijdsaudit over 4 vroegere scans vertaalde de pijn in cijfers: ~2,5 analistdagen per vraag, met 5–6 bronnen (OSM, het Statbel-portaal, een spreadsheet, kaarten, een notitieboek), in verschillende formaten, geen enkele in de vorm van een antwoord.
De pijn zat niet in een gebrek aan data — Antwerpen is uitvoerig in kaart gebracht en België publiceert uitstekende open statistieken. De pijn zat in de naden: onverenigbare bronnen samenvoegen tot een typespecifieke, onderbouwde conclusie, telkens opnieuw, vanaf nul
De cafélaag op de ~450 statistische sectoren van Antwerpen. Rood = overbediend / lage vraag, groen = onderbediende kans
Drie interviews, vier geauditeerde scans, één bevinding: de redenering was de vertrouwenssleutel, niet de kaart
Discovery liep van 23–25 maart 2026 parallel aan het opzetten van het alpha-skelet. Ik auditeerde 4 vroegere locatiescans uit ons werk van 2025 (mediaan: 2,5 dagen, geconcentreerd in dataverzameling), voerde interviews van 20 minuten met de CEO, de AI-ingenieur en de junior specialist, en deed een open-data verkenning over OSM/Overpass en drie Statbel-datasets om te bevestigen dat de inputs gratis en op een bruikbaar detailniveau beschikbaar waren.
De teaminterviews brachten de echte sleutel naar boven. CEO: “Ik kan “waar” verkopen, maar alleen als ik “waarom” in één zin kan uitleggen die de klant gelooft.” AI-ingenieur: “Als de scoring een black box is, sta ik er niet achter.” Junior specialist: “Ik zou gewoon concurrenten tellen en gokken.” De status quo was intuïtie vermomd als analyse. Een gerangschikte kaart zonder onderbouwde redenering was geen oplossing — niemand vertrouwde ze. De toelichting wás het product.
Een onderbouwde scan is niet zomaar een ranking — het is een ranking met een begrijpelijke reden erbij. Dat ene inzicht stuurde twee latere beslissingen: typespecifieke scoring en de AI-zone-toelichting
Één score past niet bij drie bedrijven — dus bouwde ik drie formules, één choropleth en een LLM dat elke zone in mensentaal toelicht
De kern van de tool bestaat uit drie afzonderlijke scoringsformules — niet één gewogen som. Een café is een dagtijdbestemming (gescoord op verkeer, openbaar vervoer, inkomen; gestraft door concurrentie). Een bakkerij is een gebruiksgoed (gescoord op inwoners, afstand tot dichtstbijzijnde bakkerij, inkomen; concurrentie is een deler). Een banketbakkerij is een luxeaankoop (gescoord op inkomen, een blend van verkeer/inwoners; gestraft door concurrentie). Elke input wordt eerst min–max genormaliseerd over alle sectoren; de ruwe score wordt een binnen-type-percentiel zodat een café nooit wordt vergeleken met een bakkerij. Twee drempels voorkomen zelfverzekerde onzin: een ruisdrempel stelt sectoren met te weinig vestigingen op nul, een levensvatbaarheidsdrempel stelt onbewoonbare polygonen op nul. Een leeg getal is eerlijker dan een verzonnen getal.
Bakkerijlaag: opnieuw gescoord via de nabijheidskloof-formule. Sectoren die ver van een bestaande bakkerij liggen, scoren het hoogst
Detailpaneel: kanspercentiel, typeadaptieve inputverdeling, afstand tot dichtstbijzijnde concurrent, minikaartlocator
De AI-zone-toelichting is een Gemini-aanroep die de werkelijke inputs van de sector neemt en één begrijpelijke zin produceert: “Hoge voetgangersproxy (top 15%), lage cafédichtheid (2 binnen 400 m), bovengemiddeld inkomen — een onderbediende corridor als dagtijdbestemming.” Als de API niet beschikbaar is, wordt een deterministisch sjabloon geactiveerd. De toelichting is gelabeld als “AI” of “sjabloon” zodat de gebruiker altijd weet welke versie hij voor zich heeft. Een inklapbaar paneel Aanpassen blend herwaardeert de kaart live op vier drivers met presets (gebalanceerd, loopverkeer, residentieel, welstand) — en de volledige status is deelbaar via URL.
Aanpassen blend: sectoren live herrangschikken zonder nieuwe data te bedenken. Volledige status is deelbaar via URL
AI-zone-toelichting: een door Gemini gegenereerde zin op basis van echte inputs, gelabeld zodat de gebruiker de bron kent

Live — selecteer een stad, kies een bedrijfstype, klik op een sector
Zware berekeningen blijven offline; het verzoekpad op de gratis tier is simpelweg “cached bytes lezen”
De architectuur heeft drie geïsoleerde lagen die via één bestand en één endpoint met elkaar communiceren. Een offline Python-pipeline (geopandas/shapely) haalt OSM + Statbel op en reprojecteert deze, aggregeert op statistische sectoren, berekent alle scores en schrijft één antwerpen.geojson. Een slanke FastAPI-backend serveert dat bestand en de toelichting. Een statische React + MapLibre GL JS-frontend tekent de choropleth. De zware berekeningen zijn bewust offline gehouden zodat het verzoekpad op de gratis tier alleen-lezen is — geen time-outrisico, geen cold-start op de dataquery zelf. Dieetlenzen (veganistische, vegetarische en halal-dekking uit OSM-tags) vormen een vierde overlay, expliciet gelabeld als onderschatting.
Dieetlens: veganistische dekking uit OSM-tags, expliciet gelabeld als onderschatting
Mobiel: onderaan gestapelde leaderboard + legenda, geen overlap met de kaart
Vroeg signaal (n = 2): 2,5 analistdagen naar ~0,5 dag, 5–6 bronnen naar 1, analistvertrouwen van 2,4 naar 4,3
De tool ging op 18 april 2026 in intern gebruik na een ~3,5 weken durende solo-build (23 maart – 17 april). Eerste twee weken na de demo, twee klantscopingvragen: tijd tot een onderbouwde shortlist ~4 uur (doelstelling ≤ 6 uur, basislijn 20 uur); bronnen per scan 1 (van 5–6); analistvertrouwen 4,3/5 (van 2,4); ~74% van de Antwerpse sectoren scoorbaar; cold-start latentie ~40 s (binnen de ≤ 50 s-doelstelling, hoewel traag in een live demo). Hostingkosten €0 op de gratis tier van Render, Gemini op de gratis tier. Geraamde jaarlijkse tijdsbesparing bij 6 vragen/jaar: €5.760 — een zuivere terugverdientijd op kosten van ~13–14 maanden. Eerlijke kanttekening: deze vier metingen berusten op n = 2. Het is een richting, geen bestemming.
CEO: “Eerste keer dat ik “waarom daar?” kon beantwoorden zonder eromheen te draaien.” AI-ingenieur: “De methode is leesbaar — ik zou mijn naam eronder zetten tegenover een klant.” Junior: “Ik zou twee dagen kwijt zijn geweest aan wat dit deed voor de koffie koud werd.”
Wat ik anders zou doen: eerder met een echte café-eigenaar spreken (ik interviewde het team, niet een eindklant, tot laat — de huurvraag was dan eerder boven gekomen); de diëtaire lenzen uitstellen (elegant maar zelden de doorslaggevende factor); de deellink op dag één uitbrengen in plaats van als laatste. H4 — dat gebruikers de aangepaste blend zouden willen — wordt eerder weerlegd: ze werd zelden gebruikt in de twee live scans en zal lager op de prioriteitenlijst komen. Volgend kwartaal: een tweede stad (Leuven) om te bewijzen dat de pipeline generaliseert, een onderzoeksronde naar een huurproxy, validatietooling op puntniveau en een kalibratieronde om op oordeel gebaseerde gewichten te vervangen door bewijs op basis van grondwaarheid.
