Files
boc/landvex-all/use-cases/retail-intelligence/france/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 France — Landvex</title>
<meta name="description" content="Landvex delivers field-verified retail intelligence for French property investors, retailers, and collectivités — vacancy monitoring, competitive.">
<link rel="canonical" href="https://landvex.com/use-cases/retail-intelligence/france/">
<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/france/">
<meta property="og:title" content="Retail Intelligence in France — Landvex">
<meta property="og:description" content="Landvex delivers field-verified retail intelligence for French property investors, retailers, and collectivités — vacancy monitoring, competitive assessment, and physical environment analysis across French retail locations.">
<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": "France", "item": "https://landvex.com/use-cases/retail-intelligence/france/"}
]
}</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>France</span>
</div>
<!-- HERO -->
<section class="lv-hero">
<div class="lv-hero-eyebrow">Retail Intelligence — France</div>
<h1>Retail Intelligence in France</h1>
<p class="lv-hero-subtitle">French retail markets are undergoing structural transformation, with centre-ville pedestrianisation programmes coexisting alongside continued retail park expansion. Landvex provides property investors, retailers, and Agences de developpement with field-verified intelligence to distinguish performing locations from distressed ones before capital is committed.</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 France — 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>Centre-Ville Retail Assessment</h3>
<p>Field-verified assessment of French town centre retail performance: occupier mix, vacancy indicators, pedestrian environment quality, and competition from periurban formats. Evidence for Action Coeur de Ville investment decisions.</p>
<div>Learn more &rarr;</div>
</a>
<a class="use-case-card" href="/contact/">
<span class="uc-icon">&#9632;</span>
<h3>Zone Commerciale Monitoring</h3>
<p>Monitor condition, occupancy, and competitive dynamics across zones commerciales and centres commerciaux throughout French markets. Detect structural distress before official data captures it.</p>
<div>Learn more &rarr;</div>
</a>
<a class="use-case-card" href="/contact/">
<span class="uc-icon">&#9670;</span>
<h3>SCPI and OPCI Portfolio Intelligence</h3>
<p>Systematic field-verified monitoring of retail asset portfolios for French SCPI, OPCI, and institutional investors. Physical condition, occupier quality, and competitive positioning quantified at portfolio 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>PROCOS/CNCC surveys, modelled</td>
<td>Continuous field observation</td>
</tr>
<tr>
<td>Vacancy lag</td>
<td>612 months</td>
<td>Days</td>
</tr>
<tr>
<td>Centre-ville vs zone commerciale comparison</td>
<td>Separate surveys</td>
<td>Integrated field assessment</td>
</tr>
<tr>
<td>Physical environment quality</td>
<td>Not captured</td>
<td>Field-verified street-level</td>
</tr>
<tr>
<td>Geographic coverage</td>
<td>Selected centres</td>
<td>Any French retail location</td>
</tr>
<tr>
<td>Contradiction analysis</td>
<td>Not standard</td>
<td>Automated AI</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 France</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>Retail property acquisition and lease negotiation</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Action Coeur de Ville investment evidence</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>SCPI and OPCI portfolio monitoring</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Retailer site selection intelligence</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Urban retail planning evidence for collectivités</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; Rue de la Republique — Lyon</div>
<div class="conflict-desc">PROCOS vacancy data indicates moderate performance. Field observation reveals effective vacancy nearly three times the reported rate across the monitored stretch.</div>
</div>
</div>
<div class="conflict-grid">
<div class="conflict-side conflict-official">
<div class="conflict-side-label">Official narrative</div>
<ul><li>&#100003 Vacancy rate: 8.4% (PROCOS Q2)</li>
<li>&#100003 Pedestrianisation programme: improving footfall</li>
<li>&#100003 No exceptional distress signals in planning register</li></ul>
</div>
<div class="conflict-side conflict-observed">
<div class="conflict-side-label">Observed reality</div>
<ul><li>&#100007 Active vacancy on 17 of 71 units — effective rate 23.9%</li>
<li>&#100007 Pop-up and temporary units masking structural vacancy on 5 units</li>
<li>&#100007 Two anchor occupiers with reduced opening hours and degraded fit-out</li>
<li>&#100007 Street environment maintenance below prime standard on 40% of frontage</li></ul>
</div>
</div>
<div class="conflict-footer">
<span class="conflict-footer-label">Confidence in official narrative</span>
<span class="conflict-confidence">20%</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 France</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>