Files
boc/landvex-all/use-cases/retail-intelligence/netherlands/index.html
T
Bernt 6989a98d75 feat: Passwordless cross-device authentication
- Arkitektur: docs/auth/passwordless-architecture.md
- Backend: iom/quixzoom-auth-service/ (FastAPI + Redis)
- Webb: quixzoom-market-pages/se/login/ (QR-kod + polling)
- App: iom/quixzoom-app/src/features/auth/ (push + deep links)

Flöde: QR-kod → app-godkännande → webb-inloggad
2026-07-07 07:11:50 +00:00

350 lines
21 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Retail Intelligence in the Netherlands — Landvex</title>
<meta name="description" content="Landvex provides Dutch property investors, retailers, and gemeenten with field-verified retail intelligence — vacancy monitoring, winkelgebied.">
<link rel="canonical" href="https://landvex.com/use-cases/retail-intelligence/netherlands/">
<link rel="alternate" hreflang="x-default" href="https://landvex.com/">
<meta property="og:type" content="website">
<meta property="og:url" content="https://landvex.com/use-cases/retail-intelligence/netherlands/">
<meta property="og:title" content="Retail Intelligence in the Netherlands — Landvex">
<meta property="og:description" content="Landvex provides Dutch property investors, retailers, and gemeenten with field-verified retail intelligence — vacancy monitoring, winkelgebied assessment, and physical environment analysis.">
<meta property="og:image" content="https://landvex.com/og-image.jpg">
<meta name="twitter:card" content="summary_large_image">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<meta name="robots" content="index, follow">
<script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Landvex", "item": "https://landvex.com/"},
{"@type": "ListItem", "position": 2, "name": "Use Cases", "item": "https://landvex.com/use-cases/"},
{"@type": "ListItem", "position": 3, "name": "Retail Intelligence", "item": "https://landvex.com/use-cases/retail-intelligence/"},
{"@type": "ListItem", "position": 4, "name": "Netherlands", "item": "https://landvex.com/use-cases/retail-intelligence/netherlands/"}
]
}</script>
<link rel="stylesheet" href="/assets/css/landvex-complete.css">
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg-dark: #f5f5f7; --blue: #0066FF; --blue-dark: #0052CC;
--blue-glow: rgba(0,102,255,0.15); --text-light: #1d1d1f;
--text-dim: #6B6B6B; --text-muted: #6B6B6B; --surface: #ffffff;
--surface-2: #f5f5f7; --border: rgba(0,0,0,0.08);
--radius-sm: 8px; --radius-md: 14px; --radius-lg: 24px;
}
html { scroll-behavior: smooth; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Helvetica Neue', sans-serif; background: var(--bg-dark); color: var(--text-light); line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 0 40px; height: 64px; background: rgba(255,255,255,0.92); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-bottom: 1px solid var(--border); }
.nav-logo {
font-size: 18px;
font-weight: 700;
letter-spacing: -0.3px;
color: #1d1d1f; }
.btn { display: inline-flex; align-items: center; gap: 16px; padding: 24px; background: var(--blue); color: #1d1d1f; font-size: 14px; font-weight: 600; border-radius: var(--radius-md); border: none; cursor: pointer; transition: background 0.2s, transform 0.15s; }
.btn:hover { background: var(--blue-dark); transform: translateY(-1px); }
.btn-outline { background: transparent; border: 1.5px solid rgba(0,0,0,0.18); color: var(--text-light); }
.btn-outline:hover { background: rgba(0,0,0,0.04); transform: translateY(-1px); }
.btn-lg { padding: 24px; font-size: 16px; border-radius: var(--radius-md); }
.hero { min-height: 88vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 24px 80px; position: relative; overflow: hidden; }
/* Dekorativ bakgrund borttagen */
.hero-eyebrow { display: inline-flex; align-items: center; gap: 16px; color: #0066ff; font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 8px 0; }
.hero h1 { font-size: clamp(34px,5.5vw,62px); font-weight: 800; letter-spacing: -2px; line-height: 1.06; color: #1d1d1f; max-width: 820px; margin-bottom: 24px; }
.hero-sub { font-size: clamp(16px,2vw,19px); color: var(--text-dim); max-width: 640px; line-height: 1.65; margin-bottom: 40px; }
.hero-ctas { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
section { padding: 24px; }
.container { max-width: 1140px; margin: 0 auto; }
.section-label { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--blue); margin-bottom: 24px; }
.section-title { font-size: clamp(26px,3.8vw,42px); font-weight: 800; letter-spacing: -1.2px; line-height: 1.1; color: #1d1d1f; margin-bottom: 24px; }
.section-sub { font-size: 17px; color: var(--text-dim); max-width: 600px; line-height: 1.7; }
.use-case-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 48px; }
.use-case-card { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; transition: border-color 0.25s, transform 0.2s; }
.use-case-card:hover { border-color: rgba(0,102,255,0.35); transform: translateY(-3px); }
.use-case-card h3 { font-size: 17px; font-weight: 700; color: #1d1d1f; margin-bottom: 8px; }
.use-case-card p { font-size: 14px; color: var(--text-dim); line-height: 1.6; }
.decisions-bg { background: var(--surface); }
.decisions-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 40px; }
.decision-chip { background: var(--bg-dark); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 24px; display: flex; align-items: center; gap: 16px; }
.decision-chip .chip-dot { width: 8px; height: 8px; border-radius: var(--radius-full); background: var(--blue); flex-shrink: 0; }
.decision-chip span { font-size: 14px; font-weight: 600; color: var(--text-light); }
.contradiction-bg { background: #e8f0fe; }
.contradiction-box { background: rgba(0,0,0,.05); border: 1px solid rgba(0,0,0,.1); border-radius: var(--radius-lg); padding: 24px; margin-bottom: 32px; }
.conflict-header { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.conflict-flag { font-size: 1.5rem; color: #f87171; }
.conflict-title { color: #f87171; font-weight: 800; font-size: .9375rem; margin-bottom: 4px; }
.conflict-desc { color: rgba(0,0,0,.6); font-size: .875rem; line-height: 1.6; }
.conflict-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.conflict-side { border-radius: var(--radius-md); padding: 16px; }
.conflict-official { background: rgba(34,197,94,.1); border: 1px solid rgba(34,197,94,.2); }
.conflict-observed { background: rgba(239,68,68,.1); border: 1px solid rgba(239,68,68,.2); }
.conflict-side-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.conflict-official .conflict-side-label { color: #86efac; }
.conflict-observed .conflict-side-label { color: #fca5a5; }
.conflict-side ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.conflict-footer { margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(0,0,0,.1); display: flex; justify-content: space-between; align-items: center; }
.conflict-footer-label { color: rgba(0,0,0,.75); font-size: .8125rem; }
.conflict-confidence { color: #f87171; font-weight: 800; font-size: 1.125rem; }
.breadcrumb { font-size: 13px; color: var(--text-muted); padding: 24px 0; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.breadcrumb a { color: var(--text-muted); }
.breadcrumb a:hover { color: #1d1d1f; }
.breadcrumb .sep { color: var(--border); }
.comparison-table { width: 100%; border-collapse: collapse; margin-top: 32px; border-radius: var(--radius-md); overflow: hidden; border: 1px solid rgba(0,0,0,0.08); }
.comparison-table th { padding: 24px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; text-align: left; background: rgba(0,0,0,0.04); color: var(--text-dim); }
.cta-section { background: #e8f0fe; }
.cta-box { border-radius: var(--radius-lg); padding: 24px; text-align: center; max-width: 680px; margin: 0 auto; }
.cta-box h2 { font-size: clamp(24px,3vw,36px); font-weight: 800; color: #1d1d1f; margin-bottom: 24px; }
.cta-box p { font-size: 17px; color: rgba(0,0,0,.7); margin-bottom: 36px; line-height: 1.65; }
.lv-disclaimer { font-size:.75rem; color:rgba(0,0,0,.75); margin-top:24px; padding: 24px; background:rgba(0,0,0,.04); border-radius: var(--radius-md); line-height:1.6; max-width:800px; }
.lv-disclaimer a { color:rgba(0,0,0,.65); text-decoration:underline; }
footer { border-top: 1px solid var(--border); padding: 40px; }
.footer-inner { max-width: 1140px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.footer-logo { font-size: 17px; font-weight: 700; color: #1d1d1f; }
.footer-copy { font-size: 13px; color: var(--text-muted); }
.footer-tagline { font-size: 12px; color: var(--text-muted); margin-top: 4px; }
.footer-links { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.footer-links a { font-size: 14px; color: var(--text-muted); transition: color 0.2s; }
.footer-links a:hover { color: #1d1d1f; }
.footer-social { width: 32px; height: 32px; border: 1px solid var(--border); border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; transition: border-color 0.2s, background 0.2s; }
.footer-social:hover { border-color: rgba(0,0,0,0.25); background: rgba(0,0,0,0.04); }
@media (max-width:900px) { nav { padding:0 20px; } .use-case-grid { grid-template-columns:1fr; } .decisions-grid { grid-template-columns:1fr 1fr; } .conflict-grid { grid-template-columns:1fr; } }
@media (max-width:600px) { section { padding: 24px; } .decisions-grid { grid-template-columns:1fr; } nav { padding:0 16px; } .hero h1 { letter-spacing:-1px; } .contradiction-box { padding: 24px; } }
</style>
</head>
<body>
<nav aria-label="Main navigation">
<a class="nav-logo" href="https://landvex.com/">&larr; Landvex</a>
<a class="lv-btn lv-btn--outline" href="/contact/">Contact &rarr;</a>
</nav>
<div class="breadcrumb">
<a href="https://landvex.com/">Landvex</a>
<span class="sep">/</span>
<a href="/use-cases/">Use Cases</a>
<span class="sep">/</span>
<a href="/use-cases/retail-intelligence/">Retail Intelligence</a>
<span class="sep">/</span>
<span>Netherlands</span>
</div>
<!-- HERO -->
<section class="lv-hero">
<div class="lv-hero-eyebrow">Retail Intelligence — Netherlands</div>
<h1>Retail Intelligence in the Netherlands</h1>
<p class="lv-hero-subtitle">Dutch retail markets face structural oversupply in secondary and tertiary winkelgebieden, while prime inner-city locations in Amsterdam, Rotterdam, and Utrecht remain contested. Landvex delivers field-verified intelligence to distinguish genuine performing locations from those artificially supported by short-term measures.</p>
<div class="hero-ctas">
<a class="lv-btn lv-btn--lg" href="/pilot/">Request a pilot &rarr;</a>
<a class="btn btn-outline btn-lg" href="/contact/">Contact Landvex</a>
</div>
</section>
<!-- USE CASE CARDS -->
<section>
<div class="lv-container">
<div class="section-label">Capabilities</div>
<h2 class="section-title">Retail Intelligence in the Netherlands — what Landvex delivers</h2>
<p class="section-sub">Every engagement is anchored to a specific decision. Select a capability to discuss how Landvex applies it to your context.</p>
<div class="use-case-grid">
<a class="use-case-card" href="/contact/">
<span class="uc-icon">&#965050</span>
<h3>Winkelgebied Performance Assessment</h3>
<p>Field-verified assessment of Dutch winkelgebieden: occupier mix, vacancy indicators, physical environment quality, and competitive dynamics. Evidence-based input for acquisition, lease negotiation, and disposal decisions.</p>
<div>Learn more &rarr;</div>
</a>
<a class="use-case-card" href="/contact/">
<span class="uc-icon">&#9632;</span>
<h3>Retail Vacancy Monitoring</h3>
<p>Continuous monitoring of retail vacancy across Dutch town centres and retail parks. Detect emerging distress patterns before Locatus or Retailinsider annual surveys capture them.</p>
<div>Learn more &rarr;</div>
</a>
<a class="use-case-card" href="/contact/">
<span class="uc-icon">&#9670;</span>
<h3>Institutional Portfolio Intelligence</h3>
<p>Systematic field-verified monitoring of retail portfolios for Dutch institutional investors, pension funds, and listed vehicles. Physical condition, occupier presentation, and competitive environment quantified at scale.</p>
<div>Learn more &rarr;</div>
</a></div>
</div>
</section>
<!-- COMPARISON TABLE -->
<section>
<div class="lv-container">
<div class="section-label">Comparison</div>
<h2 class="section-title">Landvex vs traditional retail intelligence methods</h2>
<p class="section-sub">How field-verified continuous intelligence compares to conventional survey and inspection approaches.</p>
<table class="comparison-table">
<thead>
<tr>
<th>Dimension</th>
<th>Traditional approach</th>
<th>Landvex</th>
</tr>
</thead>
<tbody>
<tr>
<td>Data source</td>
<td>Locatus/Retailinsider annual</td>
<td>Continuous field observation</td>
</tr>
<tr>
<td>Vacancy detection latency</td>
<td>612 month survey lag</td>
<td>Days</td>
</tr>
<tr>
<td>Physical environment assessment</td>
<td>Not captured</td>
<td>Field-verified street-level</td>
</tr>
<tr>
<td>Pop-up and temp use classification</td>
<td>Counted as occupied</td>
<td>Separately classified</td>
</tr>
<tr>
<td>Coverage</td>
<td>National sample centres</td>
<td>Any Dutch retail location</td>
</tr>
<tr>
<td>Contradiction analysis</td>
<td>Not standard</td>
<td>Automated AI cross-reference</td>
</tr>
</tbody>
</table>
</div>
</section>
<!-- KEY DECISIONS -->
<section class="decisions-bg">
<div class="lv-container">
<div class="section-label">Decision support</div>
<h2 class="section-title">Decisions Landvex informs in the Netherlands</h2>
<p class="section-sub">Every Landvex engagement is anchored to one or more of these decisions. We start with your question before designing the intelligence mission.</p>
<div class="decisions-grid">
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Dutch retail property acquisition and disposal</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Institutional portfolio risk monitoring</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Gemeentelijk winkelgebied investment planning</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Retailer Netherlands site selection</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Asset management evidence for valuations</span>
</div></div>
</div>
</section>
<!-- CONTRADICTION ENGINE -->
<section class="contradiction-bg">
<div class="lv-container">
<div>
<div class="section-label">Contradiction Engine</div>
<h2 class="section-title">Most systems confirm what you already believe.<br>Landvex finds what doesn&rsquo;t add up.</h2>
<p class="section-sub">The most actionable intelligence is contradiction. Landvex actively searches for conflicts between official narratives and observed field reality — and quantifies the confidence gap.</p>
</div>
<div class="contradiction-box">
<div class="conflict-header">
<span class="conflict-flag">&#9888;</span>
<div>
<div class="conflict-title">Narrative Conflict Detected &mdash; Lijnbaan — Rotterdam</div>
<div class="conflict-desc">Locatus vacancy data indicates healthy market performance. Field observation reveals effective vacancy nearly three times the reported rate across the monitored street.</div>
</div>
</div>
<div class="conflict-grid">
<div class="conflict-side conflict-official">
<div class="conflict-side-label">Official narrative</div>
<ul><li>&#100003 Locatus vacancy: 7.8%</li>
<li>&#100003 Pedestrian footfall: stable year-on-year</li>
<li>&#100003 No structural distress in gemeentelijk monitor</li></ul>
</div>
<div class="conflict-side conflict-observed">
<div class="conflict-side-label">Observed reality</div>
<ul><li>&#100007 Active structural vacancy on 13 of 58 units — effective rate 22.4%</li>
<li>&#100007 4 pop-up units and 2 charity shops masking structural vacancy</li>
<li>&#100007 Two anchor occupiers showing fit-out disinvestment consistent with lease-end</li>
<li>&#100007 Public realm condition below Centrum-standard on three block frontages</li></ul>
</div>
</div>
<div class="conflict-footer">
<span class="conflict-footer-label">Confidence in official narrative</span>
<span class="conflict-confidence">18%</span>
</div>
</div>
<div>
<div>
<div>&#128269;</div>
<h4>Show me what I am missing</h4>
<p>Blind spots absent from official data and internal reports</p>
</div>
<div>
<div>&#9878;</div>
<h4>AI Red Team</h4>
<p>Every conclusion is challenged by a second model before delivery</p>
</div>
<div>
<div>&#128208;</div>
<h4>Which assumptions are wrong?</h4>
<p>Identify where your thesis conflicts with observed reality</p>
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="cta-section">
<div class="lv-container">
<div class="cta-box">
<div class="section-label">Get started</div>
<h2>Request a pilot for Retail Intelligence in the Netherlands</h2>
<p>Tell us the decision you need to make. We will design an intelligence mission and return field-verified data within 72 hours — no procurement delay, no physical access required.</p>
<a class="lv-btn lv-btn--lg" href="/pilot/">Request a pilot &rarr;</a>
</div>
<p class="lv-disclaimer">Intelligence outputs are indicative and advisory only. Based on field observations — not investment, financial, or legal advice. Landvex AB accepts no liability for decisions made based on these outputs. <a href="/methodology/">Methodology &rarr;</a></p>
</div>
</section>
<footer class="lv-footer" role="contentinfo">
<div class="footer-inner">
<div>
<div class="footer-logo">LandveX</div>
<div class="footer-copy">© 2026 Landvex AB · Org.nr 559141-7042 · Tyresö, Sweden</div>
<div class="footer-tagline">Decision intelligence for the physical world.</div>
</div>
<div class="footer-links">
<a href="https://landvex.com/">Home</a>
<a href="/methodology/">Methodology</a>
<a href="/security/">Security</a>
<a href="https://www.quixzoom.com/" target="_blank" rel="noopener">quiXzoom &rarr;</a>
<a href="mailto:contact@landvex.com">contact@landvex.com</a>
<a href="mailto:security@landvex.com" >security@landvex.com</a>
<a href="https://www.linkedin.com/company/landvex" target="_blank" rel="noopener" class="footer-social" title="LandveX on LinkedIn">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z" stroke="#888" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><rect x="2" y="9" width="4" height="12" stroke="#888" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><circle cx="4" cy="4" r="2" stroke="#888" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
</a>
<a href="https://x.com/landvex" target="_blank" rel="noopener" class="footer-social" title="LandveX on X">
<svg width="15" height="15" viewBox="0 0 24 24" fill="#888" xmlns="http://www.w3.org/2000/svg"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622 5.912-5.622Zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
</a>
</div>
</div>
</footer>
</body>
</html>