Onze hypotheekadviestool t.o.v. de Adviesbox-simulatie — wat ontbreekt, waarom het ertoe doet, en hoe het te bouwen.
Kernboodschap. De tool rekent sterk maar bewaakt geen kaders. Zonder correcte grondslag (inkomensstructuur, verplichtingen, onderpand/LTV per toets, NHG/energie, fiscaliteit) is een geldverstrekker-vergelijking schijnzekerheid. Bouw inputs-first. En: de echte gap bij "geldverstrekker kiezen" is niet de keuze (die kan al) maar de auditbare onderbouwing ervan.
Op basis van de feitelijk gerenderde live-pagina (via Tailscale) en de TSX-broncode.
| Blok | Velden (feitelijk gerenderd) |
|---|---|
| Voorstellen | Meerdere naast elkaar, KIES / Kopieer / Archiveer, "Genereer logisch voorstel" |
| WONING | Koopsom k.k., Verbouwing, Meerwerk, Aflossing bestaand, WOZ-waarde |
| AANKOOPKOSTEN | Overdrachtsbelasting, Makelaarscourtage, Leveringsakte, Bankgarantie + Totaal |
| FINANCIERINGSKOSTEN | Hypotheekakte, Taxatie, Advieskosten, Bemiddelingsvergoeding, NHG + Totaal |
| HYPOTHEEK & DEKKING | 1e/2e hypotheek, Eigen middelen, Verkoopopbrengst, Overbrugging, Bouwdepot |
| TOTALEN | Totaal behoefte, Totaal beschikbaar, Saldo, Eigen geld indicatie, LTV |
| OVERBRUGGING / PLANNING | Verkoopwaarde, Overwaarde, Marktwaarde, Rente, Looptijd, Maandlast / Renteaanbod, Bereidstellingskosten |
| LENINGDELEN | Maatschappij (≈50), Bedrag, Looptijd, Vorm, Rentevast, Rente (product-dropdown), Aftrek, Einddatum, Maandlast, Box 1/3, Verschil |
Feitelijke broncode — datamodel van één leningdeel (TSX) en de koopsom-herkomst:
type LeningdeelRow = { id; hoofdsom; aflosvorm; rente; rentevastJaren; looptijdJaren;
nhg:"Ja"|"Nee"; box:"1"|"3"; geldverstrekker; brutoMaandlast };
// koopsom valt terug op de inventarisatie-marktwaarde:
koopsom: active.kosten.koopsom || text(invData.woning1_marktwaarde) // -> geen apart 'getaxeerde marktwaarde'-veld
UX-aanbeveling: WOZ-waarde in WONING is bij een aankoopscenario ruis (raakt financierbaarheid/LTV niet — dat is marktwaarde; relevant pas voor eigenwoningforfait). Verberg buiten oversluit-/beheerscenario's.
| Norm | Waarde 2026 | Nuance |
|---|---|---|
| NHG-kostengrens standaard | € 470.000 | Aparte kostentoets (som van toegestane posten met eigen maxima) én leningtoets per scenario. |
| NHG-grens met EBV/EBB | € 498.200 | Meerdere boven €470.000 alleen voor energiemaatregelen; nieuwbouw A++++ kent een eigen uitzondering. Scenario-/labelafhankelijk. |
| NHG borgtochtprovisie | 0,4% | Auto-kostenpost. |
| OVB eigen woning | 2% | — |
| Startersvrijstelling | 0% · 18–35 jr · ≤ € 555.000 | Eerste gebruik vrijstelling, hoofdverblijfverklaring vóór overdracht, WEV incl. aanhorigheden, per koper. |
| OVB woning niet-hoofdverblijf | 8% (niet-woning 10,4%) | CONFIGUREERBAAR Bevestigd voor 2026; zet tarieven in constants.json. |
Bronnen: NHG (kostengrens 2026 €470.000 / €498.200; waarderingsgrondslag verkrijgingskosten); AFM Leidraad Hypotheekadvisering 2026; Volkshuisvesting NL (TRHK energielabel); Belastingdienst/Rijksoverheid (OVB 2%/8%, startersvrijstelling €555.000, HRA).
| # | Gap | Oordeel | Prio |
|---|---|---|---|
| N9 | Inkomensstructuur als LTI-basis (loondienst / ondernemer / pensioen) — randvoorwaarde voor élke leencapaciteit | RANDVOORWAARDE | 5 |
| N2 | Verplichtingen & BKR (incl. DUO, alimentatie, familielening, lease) → leencapaciteit, "aflossen via hypotheek" | GATEKEEPER | 5 |
| G2+G10 | Onderpand & waarderingsgrondslagen — eigen noemer per toets; marktwaarde vóór/ná verbouwing; roerend/erfpacht/aanhorigheden splitsen; taxatievorm (desktop capt LTV 90%) | ECHTE GAP | 5 |
| G3+G4 | Energielabel + EBB + NHG/TRHK-toets (leenruimte, €498.200, tariefklasse, label-peildatum, nieuwbouw-uitzondering) | ECHTE GAP | 5 |
| N10 | Overbruggings-toetsing (kan klant 2 hypotheken/dubbele lasten dragen?) — nu "dom" veld; grootste afwijsgrond | NIEUW | 4 |
| G1+N1+G8 | Auditbare onderbouwing geldverstrekkerkeuze — totaal-aanbod per geldverstrekker, uitsluitingen, voorwaardenflags, bronversies, vastgelegde motivatie + totale rentekosten | VERFIJND | 4 |
| N11 | Dossierbrede bron-/bewijsstatus per kerngetal (koopakte, taxatie, WGV/inkomen, eigen middelen, renteaanbod, erfpacht, VvE) → indienbaarheid | NIEUW | 4 |
| N3 | Fiscaal: 30-jaars + aflosverplichting + allocatie per leningdeel (bijleen/EWR deels al in tab "Bijleenregeling"/"Uitwerking") | DEELS AANWEZIG | 4 |
| N4 / N5 / N8 | Scenario-keuze · dubbele woonlasten · renteaanbod-geldigheid/bindend-aanbod-datum per geldverstrekker | NIEUW | 3 |
| G5 | Auto-OVB — mogelijk al in tab "Maximale hypotheek"; verifiëren vóór bouwen | CHECK | 2 |
| G7 | VERPLAATST | 1 | |
| G6 / G9 | k.k./VON-schakelaar (al aanwezig) · bouwdepot-detail | WEERLEGD / laag | 1–2 |
Feitencheck-uitslag ronde 5: Gemini en Grok — "geen fouten gevonden"; GPT-5.4 ving één punt (97%-VON-grondslag), nu via NHG-bron geverifieerd en gecorrigeerd. Daarmee staat §2/§4 vast.
Leencapaciteit is betekenisloos zonder de aard van het inkomen (loondienst/ondernemer/pensioen → andere toetsregels) én de verplichtingen (BKR én niet-BKR). Reken max. hypotheek mét/zónder verplichtingen en toon het verschil; weeg per type (lease/krediet op werkelijke last of limiet, alimentatie op resterende duur). "Aflossen via hypotheek" verhoogt de behoefte; de maandlast vervalt pas bij sluitend bewijs. Negatieve BKR-codering kan blokkeren ongeacht de rekensom.
Bevestig de huidige grondslag met een live black-box test:
Test A: hypotheek 400.000 · koopsom 500.000 · marktwaarde 400.000 · WOZ 300.000 → LTV 80% = koopsom ; 100% = marktwaarde ; 133% = WOZ Test B: hypotheek 480.000 · koopsom 480.000 · roerend 20.000 · marktwaarde 480.000 → correcte LTV 100% ; toont 96% → roerend zit foutief in de noemer
Energielabel (met bron + peildatum: voorlopig / definitief / na verbouwing) stuurt TRHK-leenruimte, NHG-grens en tariefklasse. NHG-toets gesplitst (kosten + lening) met harde red flag. EBB/EBV herleidbaar naar toegestane energiemaatregelen/depot; nieuwbouw-A++++-uitzondering.
Het overbruggingsblok is rekenkundig maar mist de toetsing: kan de klant tijdelijk twee hypotheken/dubbele woonlasten dragen, en hoe lang? In de praktijk dé afwijsgrond. Koppel aan periode dubbele lasten, buffer en "wat als verkoop later/lager" (N5).
Edge: goedkoopste rente kan afvallen op acceptatie (ondernemer, overbrugging, erfpacht, VvE, bouwdepot); renteaanbod-timing kan doorslaggevend zijn. Netto maandlast hier alleen indicatief.
Een berekening kan kloppen terwijl het dossier niet indienbaar is. Geef per kerngetal een bron-/bewijsstatus: koopakte, taxatie(vorm), WGV/inkomen, pensioen, eigen middelen, verkoopopbrengst, erfpachtakte, VvE-stukken, renteaanbod (+ geldigheidsdatum), overbruggingsstukken.
// Expliciete entiteiten i.p.v. één dossierbrede context
data/applicants = [{ id, incomeType: loondienst|ondernemer|pensioen, financialHistory:{ ewrTermLeft, eigenwoningreserve }, obligations[] }]
data/properties = [{ id, role: aankoop|verkoop|bestaand, marktwaarde, marktwaardeNaVerbouwing, energielabel{waarde,bron,peildatum}, erfpacht, vve }]
data/transactions = [{ id, type: aankoop|oversluiten|verhoging|verbouwing, propertyId, ovbRegime }]
proposal = { id, kosten, financiering,
leningdelen:[{ ..., propertyId, applicantIds[], box, fiscalAllocation }],
obligationTreatment:[{ obligationId, treatment, proofRef }],
comparisonSummary:{ runId, selectedLenderId, cheapestDelta, hardFlags } }
data/comparisonRuns = { [proposalId]:[{ id, inputHash, normsVersion, ratesVersion, policyVersion,
candidates[], excluded[], selectedCandidateId, adviserMotivation }] } // computed = alleen in snapshot
data/evidence = { [kerngetalId]:{ source, status: ontbreekt|aangeleverd|geverifieerd, ref } }
// Voorwaarden + acceptatie naast rente — zonder tweede architectuur:
/data/lookups/{rentes,maatschappijen,productvoorwaarden,acceptatiebeleid}.json
GET /api/lookup/rentes?enrich=conditions
candidate = { ...rateRow, conditions: productvoorwaarden[productId],
flags: evaluate(acceptatiebeleid[lenderId], dossier, proposal) }
flag = { level:"knockout|warning|info", code, reason, sourceRef, validFrom, validTo }
Dit rapport combineert (a) de feitelijk gerenderde live-pagina (Tailscale), (b) de TSX-broncode van de worktree, en (c) de Adviesbox-simulatie-inventaris (Rick&Morty WF04/08/09/10). Vijf rondes adversarieel gereviewd door GPT-5.4 (codex), Gemini en Grok; 2026-normen apart geverifieerd tegen NHG, Belastingdienst en Rijksoverheid. Per ronde is de feitelijke pagina-HTML/TSX meegestuurd en om HTML-terugkoppeling gevraagd.
Bouw-waarschuwing: de live-build is nieuwer dan de leesbare worktree-source (PROD-PIN-deploy). Voor "wat de adviseur ziet" is de render leidend; voor bouwbeslissingen is de waarheid de API-payload + de deployed commit + de huidige repo.
| Ronde | Belangrijkste verschuiving |
|---|---|
| 1 → v2 | Feiten 2026 gecorrigeerd (NHG €470k/€498.200, OVB 2%/8%, starters €555k); G6 weerlegd; eerste nieuwe gaps (BKR, fiscaal, AFM-motivering). |
| 2 → v3 | Prioritering omgedraaid naar inputs-first; "AFM ≥3 banken" geschrapt; LTV-grondslag = marktwaarde + black-box testmethode; mini-specs. |
| 3 → v4 | Bouwvolgorde (N3 vóór G1); toets-specifieke grondslag; architectuur (dossierfeiten/proposal/run-snapshots; enrich-API + acceptatiebeleid). |
| 4 → v5 | Entiteit-model (applicants/properties/transactions); G1 herijkt naar "auditbare onderbouwing"; nieuwe gaps N9/N10/N11; G7 verplaatst; WOZ = ruis. |
| 5 → definitief | NHG-grondslag definitief (laagste van koopsom k.k. / 97% VON / marktwaarde); implementatie-checklist N9+N2; restrisico (AFM/AVG/Wwft/fiscaal). |