Spring naar de inhoud

Privacyverklaring

Hoe Schaduwplan met jouw gegevens omgaat.

Kort en eerlijk: we verzamelen zo min mogelijk. De 3D-viewer werkt zonder account en zonder trackingcookies. Wat je in de viewer doet (adres, scenario, projecten, optionele bijlagen) blijft lokaal in je eigen browser staan totdat je het zelf wist. Eén uitzondering: bij een foutmelding sturen we het adres waarmee je werkt en wat je in de zoekbalk typte mee naar onze foutmonitoring (Sentry), zodat we de fout kunnen oplossen. Voor rapportaanschaf hebben we minimaal je e-mail en het adres van het rapport nodig.

Laatst bijgewerkt: 29 september 2026

In het kort

Schaduwplan is een web-applicatie voor bezonningsonderzoek op Nederlandse adressen. De 3D-viewer werkt volledig in je browser: we leggen niet vast wat jij doet. Alleen als er iets misgaat, sturen we een foutmelding naar onze foutmonitoring. Wat we wel doen, lichten we hieronder per onderdeel toe.

  • Geen tracking-cookies, geen advertentie-pixels, geen ad-netwerken. Wat we wél doen: error-monitoring via Sentry (EU) op de hele site, en op het ingelogde gedeelte van de app gepseudonimiseerde productanalytics via PostHog (EU), gekoppeld aan je account-id. Op publieke pagina's geen persistente identifier en geen cookies. Zie Verwerkers hieronder.
  • Gaat er iets mis op de site, dan stuurt je browser een foutmelding naar Sentry (EU). Die bevat het adres waarmee je in de viewer werkt (straat, huisnummer, postcode, woonplaats, gemeente, BAG-nummers en coördinaten) en wat je in dezelfde sessie in de zoekbalk typte. Zonder die gegevens kunnen we een fout bij een specifiek adres niet nabootsen. Zie Verwerkers.
  • Adres-zoekopdrachten gaan rechtstreeks van je browser naar PDOK (Kadaster). 3D-modellen halen we via onze eigen Cloudflare-cache op bij 3DBAG; hoogtedata bij PDOK en Ellipsis Drive (officiële AHN-distributiepartner). Zodra een adres geladen is, kijken we één keer bij Ruimtelijke Plannen (Informatiehuis Ruimte / DSO), via onze eigen proxy, of het omgevingsplan daar een bouwvlak met maximale hoogtes publiceert — zo weten we of we die functie kunnen aanbieden. Zie Derden & bronnen.
  • Je werk (adressen, projecten, optionele bijlagen, eventuele hoogte-uploads) bewaart de viewer functioneel in je eigen browser — in localStorage en IndexedDB. Niets daarvan komt op onze servers terecht; alleen een foutmelding neemt het adres mee (zie hierboven). Zie Cookies & lokale opslag en de cookieverklaring voor de volledige lijst.
  • Bij rapportaanschaf verwerken we e-mail, factuurgegevens en het adres van het rapport.

Verantwoordelijke

Verwerkingsverantwoordelijke in de zin van de AVG (artikel 4 lid 7):

  • Handelsnaam: Schaduwplan
  • Onderneming: Schaduwplan wordt geëxploiteerd als eenmanszaak naar Nederlands recht.
  • KvK-nummer: 99118998
  • BTW-id: NL005372731B91
  • Vestigingsadres: het bij de Kamer van Koophandel geregistreerde vestigingsadres is opvraagbaar via kvk.nl. Voor formele correspondentie en AVG-verzoeken volstaat het e-mailadres hieronder.
  • Contact: [email protected] — voor privacy-vragen, support, klachten en alle andere zaken.
  • Functionaris voor Gegevensbescherming: Schaduwplan is niet aanmerkelijk als een organisatie waarvoor de AVG (artikel 37) een FG verplicht stelt. Vragen die je bij een FG zou neerleggen kun je rechtstreeks aan [email protected] stellen.

Leeftijd & minderjarigen

Schaduwplan is bedoeld voor gebruik door personen van 16 jaar of ouder (artikel 8 AVG, Nederlandse uitvoeringspraktijk). De dienst richt zich niet op kinderen jonger dan 16 en wij verzamelen niet bewust persoonsgegevens van minderjarigen.

Vermoed je dat we onbedoeld gegevens van een kind onder de 16 jaar hebben verzameld? Mail [email protected] — wij verwijderen die gegevens zonder onnodige vertraging.

Welke gegevens verwerken we

Afhankelijk van hoe je de dienst gebruikt, worden verschillende categorieën gegevens verwerkt. We splitsen ze bewust in "lokaal in jouw browser" (waar Schaduwplan technisch geen toegang toe heeft) en "bij Schaduwplan":

Lokaal in jouw browser (functionele opslag, alleen op jouw apparaat — wij kunnen er niet bij):

  • Recent gezochte adressen — maximaal 6, in localStorage, zodat je in de adresbalk snel terug kunt springen. Bevat straat, huisnummer, postcode, woonplaats, RD/WGS84-coördinaten en BAG-id.
  • Opgeslagen projecten — in IndexedDB (database schaduwplan, store projects), als je via Projecten → Opslaan een scenario bewaart. Bevat het adres, geplande gebouwen, meetpunten en het gekozen tijdstip. Eventuele afgeleide hoogtes uit een GeoTIFF-upload zitten als meetwaarde mee in het opgeslagen project — wij bewaren nooit het ruwe GeoTIFF zelf ("extract-and-discard").
  • Vergunning-bijlagen — in localStorage, als je in "Brondata aanpassen" een PDF of foto van een bouwvergunning of -tekening uploadt om een handmatige hoogtecorrectie te onderbouwen. Maximaal 5 MB in totaal.
  • Wachtlijst-e-mail — in localStorage, als je via de "Inloggen / accounts komen eraan"-popover je e-mailadres achterlaat. Die e-mail blijft op jouw apparaat totdat de echte account-functionaliteit live gaat — pas dan vragen we je opnieuw expliciet om hem in te dienen.
  • Tijdelijke session-state — in sessionStorage, voor het overdragen van een gekozen adres van de landingspagina naar de viewer en het onthouden van "niet meer tonen"-keuzes binnen één sessie. Wordt gewist zodra je het tabblad sluit.

Volledige sleutels en bewaartermijnen staan in de cookieverklaring.

Bij Schaduwplan (alleen relevant zodra een betaalde flow live gaat — momenteel zijn er nog geen betaalde rapporten geleverd):

  • Rapport-aanschaf: je e-mailadres, het adres van het rapport, en (bij Zakelijk) eventueel bedrijfsnaam en KvK-nummer voor facturatie.
  • Betalingen: Stripe verwerkt de betaling. Wij ontvangen alleen transactieverwijzing, bedrag en datum — géén kaartnummer.
  • Contact: wanneer je mailt naar [email protected] bewaren we die correspondentie.
  • Server-logs van onze hosting (Cloudflare Pages): technische toegangsgegevens (IP-adres, tijdstip, opgevraagd pad) zoals elke webserver dat doet. Cloudflare bewaart deze korte tijd voor beveiliging en foutopsporing en deelt ze niet met ons in geaggregeerde of geïdentificeerde vorm.
  • Foutmeldingen (Sentry): gaat er iets mis, dan bevat de melding de technische fout, het adres waarmee je werkt (straat, huisnummer, postcode, woonplaats, gemeente, BAG-nummers en coördinaten) en wat je in dezelfde sessie in de zoekbalk typte. Zoekinvoer gaat alleen mee als er in die sessie een fout optreedt.

Waarvoor we die gegevens gebruiken

  • Het leveren van het gekochte rapport (PDF via e-mail).
  • Het verwerken van betalingen en afgeven van facturen.
  • Het beantwoorden van contactverzoeken.
  • Het opsporen en oplossen van fouten (foutmeldingen via Sentry).
  • Wettelijke verplichtingen (fiscale bewaarplicht op facturen).

We gebruiken je gegevens nooit voor marketingdoeleinden buiten het verzoek om, verkopen ze nooit aan derden, en voeren geen profiling uit.

Juridische grondslag (AVG)

  • Uitvoering van de overeenkomst — voor het leveren van het rapport dat je aanschaft.
  • Wettelijke verplichting — voor facturatie en fiscale bewaarplicht.
  • Gerechtvaardigd belang — voor het behandelen van je contactverzoeken, en voor het opsporen en oplossen van fouten. Een fout die alleen bij één adres optreedt, kunnen we zonder dat adres niet vinden. Je kunt hiertegen bezwaar maken (zie Jouw rechten).

Derden en externe bronnen

Om de 3D-viewer te laten werken verbinden we met een aantal externe diensten. Sommige verbindingen lopen rechtstreeks van je browser naar de bron, andere lopen via onze Cloudflare-cache (zodat we de upstream-API niet platleggen en jij snellere antwoorden krijgt):

  • PDOK Locatieserver (Kadaster) — adres-autocomplete en BAG-pand-resolutie. Rechtstreeks vanuit je browser. Overheidsdienst; geen persoonsgegevens vastgelegd buiten de zoekopdracht zelf.
  • 3DBAG (TU Delft + 3DGI) — 3D-gebouwmodellen en pand-attributen. Via onze Cloudflare Pages-functie op /api/bag3d/* (24 uur edge-cache, omdat 3DBAG geen CORS-headers stuurt). Open data, CC BY 4.0; geen persoonsgegevens — wel logt Cloudflare standaard toegangsmetadata zoals IP en tijdstip voor beveiliging.
  • PDOK (AHN4) — hoogtedata via WCS. Rechtstreeks vanuit je browser. Open data.
  • Ellipsis Drive (AHN5 / AHN6) — recentere hoogtedata, alleen wanneer 3DBAG voor jouw pand verouderd is of geen roof-fit heeft kunnen maken. Ellipsis Drive is een Nederlandse SaaS die door AHN is aangewezen als officiële distributiepartner voor AHN5+ (zie ahn.nl/dataroom). Rechtstreeks vanuit je browser. Geen persoonsgegevens.
  • Ruimtelijke Plannen API (Informatiehuis Ruimte / DSO) — bouwvlak en maximale goot- en bouwhoogte uit het omgevingsplan, voor het planologisch toegestane volume. Eén keer per geladen adres, automatisch, zodat de viewer weet of dit omgevingsplan digitaal ontsloten is; daarna alleen nog als je zelf op „Opnieuw proberen” klikt. De coördinaat van het gezochte adres gaat dan via onze eigen Cloudflare Pages-functie op /api/rp/* naar deze overheidsdienst; onze API-sleutel blijft serverzijdig. Leesantwoorden staan maximaal 24 uur in de edge-cache; de zoekopdrachten staan maximaal 7 dagen in een gedeelde antwoordcache. Wat daar bewaard wordt is het antwoord van de overheidsdienst zelf — open plandata — onder een sleutel waarin je adres niet leesbaar staat. Dat is een leesbaarheidsmaatregel en geen anonimisering: de echte bescherming zit in de toegangsbeperking en de bewaartermijn van 7 dagen. De waarden die je bevestigt blijven in je browser en komen pas bij het afrekenen in je rapport.
  • Cloudflare Pages — onze hosting. Serveert de website en de 3DBAG-cache vanuit EU-edges. Cloudflare ziet standaard webserver-logs (IP, tijdstip, pad).
  • Stripe (Stripe Payments Europe Ltd, Ierland) — bij betalingen (nog niet live op het moment van deze verklaring). EU-verwerker met eigen privacybeleid.

We gebruiken geen Google Analytics, geen Meta Pixel, geen Cloudflare Web Analytics en geen advertentie- of social-tracking. Voor error-monitoring gebruiken we Sentry (EU) met privacy-conservatieve instellingen; voor productanalytics op het ingelogde gedeelte PostHog (EU). Beide worden in detail beschreven onder "Verwerkers" hieronder. Lettertypen (Fraunces, Inter Tight, JetBrains Mono) worden via @fontsource meegebundeld in onze build — er gaat dus géén verzoek naar Google Fonts of een vergelijkbare CDN.

Verwerkers (AVG art. 28)

Voor de hieronder genoemde diensten werken we met een verwerkersovereenkomst (Data Processing Agreement) of de standaard-DPA van de leverancier. Allemaal met EU-vestiging of EU-residency-garantie. Een volledige actuele lijst, inclusief DPA-versies en doorgifte-mechanismen, vind je in ons sub-processor register (AVG art. 30).

  • Cloudflare, Inc. — hosting (Cloudflare Pages, Workers, R2-objectopslag, Queues, DNS). EU-edges; R2-bucket in EU-jurisdictie; standaard-DPA en EU SCCs voor eventuele transatlantische sub-processing.
  • Supabase Inc. (eu-central-1, Frankfurt) — database (Postgres met Row Level Security), authenticatie en Realtime-broadcasts voor de klant-dashboard. Eigen DPA met EU SCCs Module 2.
  • Stripe Payments Europe Ltd (Dublin, Ierland) — betaalverwerker voor de betaalde rapporten: Stripe Checkout voor de transactie, Stripe Tax voor automatische BTW-bereke­ning en Stripe Invoicing voor de factuurgeneratie. EU-entiteit, PCI DSS Level 1, eigen DPA.
  • Resend (eu-west-1, Ierland; Plus Five Five, Inc.) — transactionele e-mail (rapport-gereed, betaalfout) via het subdomein mail.schaduwplan.nl en SMTP-relay voor Supabase Auth-mails (wachtwoord-reset, e-mailverificatie). EU SCCs Module 2 + EU-US DPF.
  • Sentry (de.sentry.io, Frankfurt; Functional Software, Inc.) — error-monitoring voor de frontend en de render-Worker. Bij een fout in je browser ontvangt Sentry het adres waarmee je werkt (straat, huisnummer, postcode, woonplaats, gemeente, BAG-nummers en coördinaten) en wat je in dezelfde sessie in de zoekbalk typte; na inloggen gekoppeld aan je account-id. We sturen geen IP-adres mee (sendDefaultPii: false), geen session-replay, sample-rate 10% voor prestatiemetingen. Eigen DPA v5.1.0 met EU SCCs Module 2.
  • PostHog, Inc. (eu.posthog.com, AWS Frankfurt) — productanalytics. Op publieke pagina's zonder persistente identifier en zonder cookies (disable_persistence: true); op het ingelogde gedeelte gekoppeld aan je account-id voor conversie-funnel-analyse, met opt-in via de gebruiksvoorwaarden bij registratie. Geen session-recording, geen heatmaps, geen autocapture. Eigen DPA + EU SCCs Module 2.
  • Zoho Corporation B.V. (EU) — inkomende e-mail voor hello@, privacy@, security@ en vergelijkbare aliassen onder @schaduwplan.nl. Standaard Zoho-DPA op basis van Model Contractual Clauses.
  • Backblaze, Inc. (B2, regio EU Central, Amsterdam) — opslag van onze versleutelde off-site back-ups van de database en de rapportbestanden. Die back-ups zijn met OpenPGP versleuteld voordat ze verstuurd worden; Backblaze heeft de sleutel niet en kan de inhoud niet lezen. Standaard Backblaze-DPA met EU SCC's; Backblaze is aangesloten bij het EU-VS Data Privacy Framework.

Eventuele toekomstige uitbreiding van de stack wordt vooraf in deze verklaring opgenomen, minimaal 30 dagen voor ingebruikname. Sentry en PostHog zijn op deze datum aangekondigd (2026-05-14) en gaan live met de Schaduwplan paid-backend MVP. Backblaze vervangt sinds 2026-09-19 Zoho WorkDrive als opslag voor de back-ups, zonder die termijn: Backblaze bewaart alleen versleutelde bestanden en heeft geen toegang tot de inhoud.

Internationale doorgifte

Wij streven ernaar gegevens binnen de Europese Economische Ruimte (EER) te verwerken. Cloudflare en Stripe zijn echter onderdeel van groepen met Amerikaanse moederbedrijven, waardoor incidenteel ondersteunende verwerkingen buiten de EER kunnen plaatsvinden. Voor zover dat het geval is, leunen we op de standaardwaarborgen die de AVG voorschrijft:

  • een geldig adequaatheidsbesluit van de Europese Commissie (zoals het EU-VS Data Privacy Framework, voor zover de ontvangende partij daarop is aangesloten); of
  • de Europese Standard Contractual Clauses (SCC's), desgewenst aangevuld met aanvullende waarborgen zoals encryptie en gepseudonimiseerde verwerking; of
  • een andere passende waarborg conform AVG-hoofdstuk V.

Een actuele lijst van onze verwerkers en hun doorgifte-mechanisme is op verzoek beschikbaar via [email protected].

Hoe lang we gegevens bewaren

Bij Schaduwplan:

  • Rapport-gerelateerde data: 12 maanden na aanschaf (voor support en iteratie), dan verwijderd tenzij op jouw verzoek langer bewaard.
  • Facturen: 7 jaar (wettelijke fiscale bewaarplicht, art. 52 AWR).
  • Contactmails: maximaal 24 maanden.
  • Back-ups: een versleutelde kopie van de database (dagelijks) en van de rapport-PDF's (wekelijks), bewaard buiten de productie-omgeving. Dagelijkse kopieën worden na 31 dagen overschreven, maandelijkse na 6 maanden. Een overschreven kopie blijft daarna nog 30 dagen als verborgen versie bewaard en wordt dan automatisch verwijderd.
  • Hosting-/server-logs: Cloudflare bewaart toegangslogs op edge-niveau standaard maximaal enkele dagen. Wij loggen zelf niets structureel. Foutmeldingen bij Sentry, met het adres en de zoekinvoer, worden maximaal 90 dagen bewaard.

Lokaal in jouw browser — wij bepalen deze termijnen niet, jij wel:

  • sessionStorage wordt gewist zodra je het tabblad sluit.
  • localStorage en IndexedDB blijven staan totdat jij ze wist via je browser-instellingen, via "Wis recente adressen" / "Verwijder bijlage" in de viewer, of totdat je browser zelf opruimt (bijv. iOS Safari evict bij langdurige inactiviteit).
  • Voor projecten kan je optioneel navigator.storage.persist() toestaan, zodat de browser je werk niet zomaar opruimt.

Jouw rechten onder de AVG

Je hebt recht op:

  • Inzage in welke gegevens we van je hebben.
  • Correctie van onjuiste gegevens.
  • Verwijdering ("recht om vergeten te worden") binnen wat de fiscale bewaarplicht toelaat.
  • Beperking van de verwerking.
  • Gegevensoverdraagbaarheid.
  • Bezwaar tegen verwerking op basis van gerechtvaardigd belang.
  • Klachtrecht bij de Autoriteit Persoonsgegevens (autoriteitpersoonsgegevens.nl).

Vragen over je rechten? Mail [email protected]. We reageren binnen de wettelijke termijn van vier weken.

Account- en gegevensverwijdering

Je hebt het recht je gegevens en (toekomstige) account te laten verwijderen.

  • Lokale gegevens (3D-viewer) kun je zelf wissen via de browser-instellingen voor schaduwplan.nl, of via de "Verwijderen"-knoppen in de viewer.
  • Zelfservice op schaduwplan.nl/app/settings — als je een account hebt, kun je daar (a) je account met alle bijbehorende rapport-bytes verwijderen met één knop, en (b) een JSON-export van al je gegevens downloaden (Art. 20 AVG — recht op gegevensoverdraagbaarheid). Bevestiging volgt direct in de UI.
  • Per mail kan ook, vanuit het bij ons bekende e-mailadres naar [email protected]. Wij bevestigen de verwijdering binnen de wettelijke termijn van 30 dagen (verlengbaar met 60 dagen bij complexe verzoeken).
  • Wat we wettelijk moeten bewaren: facturen blijven onder de fiscale bewaarplicht (Art. 52 AWR — 7 jaar) staan, ook na een verwijderverzoek. Een verzoek tot verwijdering voor deze categorie wordt afgewezen op grond van Art. 17 lid 3 b AVG (wettelijke bewaarplicht). De link met het verwijderde account wordt verbroken (project-rij blijft, user_id wordt NULL).
  • Back-ups: je verwijdering werkt direct door in de live omgeving. Back-ups doorzoeken of aanpassen we niet — die worden automatisch overschreven en de oude versie wordt 30 dagen later verwijderd, dus uiterlijk 7 maanden na je verzoek staat je data ook daar niet meer. Een back-up zetten we alleen terug bij dataverlies, nooit om verwijderde gegevens terug te halen.
  • Stripe houdt los van Schaduwplan een betalingsverleden bij. Wil je hun kopie ook laten verwijderen, dan kan dat via privacy.stripe.com.

Cookies en lokale opslag

We plaatsen geen tracking-cookies en geen advertentie-cookies. We gebruiken wél functionele lokale browser-opslag (sessionStorage, localStorage en IndexedDB) om je werk tussen sessies te bewaren. Dit valt onder "strikt noodzakelijke" opslag in de zin van artikel 11.7a Telecommunicatiewet — er is dus geen cookie-toestemming voor nodig.

De volledige lijst met sleutels, doel en bewaartermijn staat in de cookieverklaring.

Beveiliging

De website draait op Cloudflare Pages met TLS 1.3. Betaalgegevens verwerkt Stripe met PCI DSS Level 1 compliance. E-mails worden versleuteld (TLS) verstuurd en opgeslagen. Rapport-PDF's worden encrypted opgeslagen. Lokale browser-opslag is alleen voor jou toegankelijk — wij hebben er geen leesrechten op.

Van de database maken we elke nacht een back-up en van de rapport-PDF's elke week. Die back-ups worden versleuteld voordat ze onze bouwomgeving verlaten, en de sleutel om ze te openen bewaren we offline — de opslagpartij kan ze dus niet lezen. Elke back-up wordt in dezelfde geautomatiseerde run teruggezet in een wegwerp-database en op volledigheid gecontroleerd; lukt dat niet, dan faalt de run zichtbaar in plaats van stil.

Datalekken

Mocht zich onverhoopt een datalek voordoen waarbij jouw persoonsgegevens betrokken zijn en dat een risico met zich meebrengt, dan melden we dat conform artikel 33 AVG binnen 72 uur na ontdekking aan de Autoriteit Persoonsgegevens. Wanneer het datalek waarschijnlijk een hoog risico voor jouw rechten en vrijheden oplevert, informeren we jou daar zonder onnodige vertraging rechtstreeks over (artikel 34 AVG). Vermoed je zelf een lek? Mail [email protected] zo specifiek mogelijk.

Wijzigingen in deze verklaring

Substantiële wijzigingen kondigen we aan via een banner op de website minimaal 30 dagen voordat ze ingaan. Kleine redactionele aanpassingen publiceren we stil, met bijgewerkte "laatst bijgewerkt"-datum bovenaan.

Contact

Vragen, klachten of verzoeken: [email protected]. We reageren binnen één werkdag.