6989a98d75
- 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
618 lines
28 KiB
HTML
618 lines
28 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>SLA & Data Freshness — Landvex</title>
|
|
<meta name="description" content="Landvex service level commitments: data freshness tiers, platform uptime targets, intelligence delivery guarantees, and breach resolution process.">
|
|
<link rel="canonical" href="https://www.landvex.com/sla/">
|
|
<meta name="robots" content="index, follow">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:url" content="https://www.landvex.com/sla/">
|
|
<meta property="og:title" content="SLA & Data Freshness — Landvex">
|
|
<meta property="og:description" content="Landvex service level commitments: data freshness tiers, platform uptime targets, intelligence delivery guarantees, and breach resolution process.">
|
|
<meta property="og:image" content="https://www.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">
|
|
<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-dark: #0a0a0a;
|
|
--text-body: #3a3a3a;
|
|
--text-muted: #6B6B6B;
|
|
--text-light: #1d1d1f;
|
|
--text-dim: #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(10,10,10,0.88);
|
|
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: 6px;
|
|
padding: 10px 22px;
|
|
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: 14px 30px; font-size: 16px; border-radius: var(--radius-md); }
|
|
|
|
.hero {
|
|
min-height: 70vh;
|
|
display: flex; flex-direction: column; align-items: center; justify-content: center;
|
|
text-align: center;
|
|
padding: 120px 24px 80px;
|
|
position: relative; overflow: hidden;
|
|
}
|
|
|
|
.hero::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: -200px; left: 50%; transform: translateX(-50%);
|
|
width: 900px; height: 600px;
|
|
background: radial-gradient(ellipse at center, rgba(0,102,255,0.12) 0%, transparent 70%);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.hero-eyebrow {
|
|
display: inline-flex; align-items: center; gap: 8px;
|
|
background: rgba(0,102,255,0.1);
|
|
border: 1px solid rgba(0,102,255,0.25);
|
|
color: #5599ff;
|
|
font-size: 12px; font-weight: 600; letter-spacing: 0.08em;
|
|
text-transform: uppercase;
|
|
padding: 6px 16px; border-radius: 100px;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.hero h1 {
|
|
font-size: clamp(36px, 6vw, 64px);
|
|
font-weight: 800; letter-spacing: -2px; line-height: 1.05;
|
|
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: 14px; flex-wrap: wrap; justify-content: center; }
|
|
|
|
section { padding: 96px 24px; }
|
|
.container { max-width: 1100px; margin: 0 auto; }
|
|
|
|
.section-label {
|
|
font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
|
|
text-transform: uppercase; color: var(--blue); margin-bottom: 16px;
|
|
}
|
|
|
|
.section-title {
|
|
font-size: clamp(26px, 4vw, 40px);
|
|
font-weight: 800; letter-spacing: -1.2px; line-height: 1.1;
|
|
color: #1d1d1f; margin-bottom: 16px;
|
|
}
|
|
|
|
.section-sub {
|
|
font-size: 17px; color: var(--text-dim);
|
|
max-width: 600px; line-height: 1.7; margin-bottom: 48px;
|
|
}
|
|
|
|
/* FRESHNESS TIERS */
|
|
.tier-grid {
|
|
display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
|
|
}
|
|
|
|
.tier-card {
|
|
background: var(--surface-2); border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg); padding: 36px 28px;
|
|
position: relative; overflow: hidden;
|
|
transition: border-color 0.25s, transform 0.2s;
|
|
}
|
|
.tier-card:hover { border-color: rgba(0,102,255,0.35); transform: translateY(-3px); }
|
|
|
|
.tier-card.featured {
|
|
border-color: rgba(0,102,255,0.4);
|
|
background: linear-gradient(135deg, rgba(0,102,255,0.08) 0%, var(--surface-2) 100%);
|
|
}
|
|
|
|
.tier-badge {
|
|
display: inline-block;
|
|
font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
|
|
text-transform: uppercase;
|
|
padding: 4px 10px; border-radius: 100px;
|
|
margin-bottom: 20px;
|
|
}
|
|
.tier-badge.standard { background: rgba(0,0,0,0.08); color: var(--text-dim); }
|
|
.tier-badge.premium { background: rgba(0,102,255,0.15); color: #5599ff; }
|
|
.tier-badge.priority { background: rgba(255,180,0,0.12); color: #fbbf24; }
|
|
|
|
.tier-icon {
|
|
width: 40px; height: 40px; margin-bottom: 20px;
|
|
}
|
|
|
|
.tier-card h3 {
|
|
font-size: 20px; font-weight: 800; color: #1d1d1f; letter-spacing: -0.4px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.tier-freshness {
|
|
font-size: 13px; font-weight: 700; color: var(--blue);
|
|
margin-bottom: 16px; text-transform: uppercase; letter-spacing: 0.06em;
|
|
}
|
|
|
|
.tier-card p {
|
|
font-size: 14px; color: var(--text-dim); line-height: 1.65;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.tier-availability {
|
|
font-size: 12px; color: var(--text-muted);
|
|
padding-top: 16px; border-top: 1px solid var(--border);
|
|
}
|
|
|
|
/* COMMITMENTS */
|
|
.commitments-grid {
|
|
display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px;
|
|
}
|
|
|
|
.commit-card {
|
|
background: var(--surface-2); border: 1px solid var(--border);
|
|
border-radius: var(--radius-lg); padding: 32px 28px;
|
|
display: flex; gap: 20px; align-items: flex-start;
|
|
transition: border-color 0.25s;
|
|
}
|
|
.commit-card:hover { border-color: rgba(0,102,255,0.25); }
|
|
|
|
.commit-icon {
|
|
width: 36px; height: 36px; flex-shrink: 0;
|
|
color: var(--blue); margin-top: 2px;
|
|
}
|
|
|
|
.commit-card h3 {
|
|
font-size: 16px; font-weight: 700; color: #1d1d1f; margin-bottom: 8px;
|
|
}
|
|
.commit-card p {
|
|
font-size: 14px; color: var(--text-dim); line-height: 1.65;
|
|
}
|
|
|
|
.commit-metric {
|
|
display: inline-block;
|
|
margin-top: 12px;
|
|
font-size: 13px; font-weight: 700;
|
|
background: rgba(0,102,255,0.1); color: #5599ff;
|
|
padding: 4px 12px; border-radius: 100px;
|
|
}
|
|
|
|
/* BREACH PROCESS */
|
|
.breach-bg { background: var(--surface); }
|
|
|
|
.breach-steps {
|
|
display: flex; flex-direction: column; gap: 0;
|
|
margin-top: 40px; position: relative;
|
|
}
|
|
|
|
.breach-steps::before {
|
|
content: '';
|
|
position: absolute; left: 23px; top: 24px; bottom: 24px; width: 2px;
|
|
background: linear-gradient(to bottom, var(--blue), rgba(0,102,255,0.1));
|
|
}
|
|
|
|
.breach-step {
|
|
display: flex; gap: 20px; align-items: flex-start;
|
|
padding: 24px 0; position: relative;
|
|
}
|
|
|
|
.breach-step-num {
|
|
width: 48px; height: 48px; flex-shrink: 0;
|
|
background: var(--blue); border-radius: var(--radius-full);
|
|
display: flex; align-items: center; justify-content: center;
|
|
font-size: 16px; font-weight: 800; color: #1d1d1f;
|
|
position: relative; z-index: 1;
|
|
}
|
|
|
|
.breach-step-body h4 {
|
|
font-size: 16px; font-weight: 700; color: #1d1d1f; margin-bottom: 6px;
|
|
}
|
|
.breach-step-body p {
|
|
font-size: 14px; color: var(--text-dim); line-height: 1.65;
|
|
}
|
|
|
|
/* ENTERPRISE BOX */
|
|
.enterprise-box {
|
|
background: linear-gradient(135deg, #001836 0%, #000c24 100%);
|
|
border: 1px solid rgba(0,102,255,0.3);
|
|
border-radius: var(--radius-lg); padding: 48px;
|
|
display: flex; align-items: center; gap: 48px; flex-wrap: wrap;
|
|
margin-top: 48px;
|
|
}
|
|
.enterprise-box-icon {
|
|
width: 56px; height: 56px; flex-shrink: 0; color: var(--blue);
|
|
}
|
|
.enterprise-box-text { flex: 1; min-width: 260px; }
|
|
.enterprise-box-text h3 {
|
|
font-size: 20px; font-weight: 800; color: #1d1d1f; margin-bottom: 10px;
|
|
letter-spacing: -0.4px;
|
|
}
|
|
.enterprise-box-text p {
|
|
font-size: 15px; color: rgba(255,255,255,0.75); line-height: 1.65;
|
|
}
|
|
.enterprise-box-text a {
|
|
color: #5599ff; text-decoration: none;
|
|
}
|
|
.enterprise-box-text a:hover { text-decoration: underline; }
|
|
|
|
/* CTA BANNER */
|
|
.cta-section { background: #e8f0fe; }
|
|
.cta-banner {
|
|
border-radius: var(--radius-lg); padding: 48px;
|
|
display: flex; align-items: center; gap: 48px; flex-wrap: wrap;
|
|
background: rgba(0,0,0,0.03); border: 1px solid rgba(0,0,0,0.07);
|
|
}
|
|
.cta-banner h3 { color: #1d1d1f; font-size: 22px; font-weight: 800; margin-bottom: 10px; letter-spacing: -0.5px; }
|
|
.cta-banner p { color: rgba(255,255,255,.75); line-height: 1.65; font-size: 15px; }
|
|
.cta-banner-text { flex: 1; min-width: 260px; }
|
|
|
|
/* FOOTER */
|
|
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: 20px;
|
|
}
|
|
.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: 24px; 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); }
|
|
|
|
.lv-disclaimer { font-size: .75rem; color: rgba(0,0,0,.5); margin-top: 24px; padding: 12px 16px; 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; }
|
|
|
|
@media (max-width: 900px) {
|
|
nav { padding: 0 20px; }
|
|
.tier-grid { grid-template-columns: 1fr; }
|
|
.commitments-grid { grid-template-columns: 1fr; }
|
|
}
|
|
@media (max-width: 600px) {
|
|
section { padding: 72px 20px; }
|
|
nav { padding: 0 16px; }
|
|
.hero h1 { letter-spacing: -1px; }
|
|
.enterprise-box { padding: 28px 24px; gap: 24px; }
|
|
.cta-banner { padding: 28px 24px; gap: 24px; }
|
|
}
|
|
</style>
|
|
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "BreadcrumbList",
|
|
"itemListElement": [
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 1,
|
|
"name": "Landvex",
|
|
"item": "https://www.landvex.com/"
|
|
},
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 2,
|
|
"name": "SLA",
|
|
"item": "https://www.landvex.com/sla/"
|
|
}
|
|
]
|
|
}
|
|
</script>
|
|
<link rel="alternate" hreflang="x-default" href="https://www.landvex.com/">
|
|
<link rel="alternate" hreflang="en" href="https://www.landvex.com/">
|
|
<link rel="alternate" hreflang="sv" href="https://landvex.se/">
|
|
<link rel="alternate" hreflang="de" href="https://landvex.de/">
|
|
<link rel="alternate" hreflang="fr" href="https://landvex.fr/">
|
|
<link rel="alternate" hreflang="en-GB" href="https://landvex.co.uk/">
|
|
<link rel="alternate" hreflang="it" href="https://landvex.it/">
|
|
</head>
|
|
<body>
|
|
<nav aria-label="breadcrumb" style="padding: 10px 20px; color: rgba(235,235,245,0.6); font-size: 14px;">
|
|
<a href="/" style="color: #007AFF; text-decoration: none;">Home</a> / <span>sla</span>
|
|
</nav>
|
|
|
|
<nav>
|
|
<a class="nav-logo" href="https://landvex.com/">← Back to Landvex</a>
|
|
<a class="btn btn-outline" href="/contact/">Get in touch →</a>
|
|
</nav>
|
|
|
|
<!-- HERO -->
|
|
<section class="hero">
|
|
<div class="hero-eyebrow">
|
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
|
|
Service Level Commitments
|
|
</div>
|
|
<h1>Service Level Commitments.</h1>
|
|
<div style="background:#fef3c7;border:1px solid #f59e0b;border-radius: var(--radius-md);padding:10px 18px;margin-bottom:20px;font-size:.875rem;color:#92400e"><strong>Pre-launch:</strong> These commitments apply from August 2026. During the pre-launch period, SLA terms are available for discussion in pilot agreements.</div>
|
|
<p class="hero-sub">Landvex operates to defined standards of data freshness, platform availability, and delivery reliability. This page documents the commitments we make to clients and how breaches are handled.</p>
|
|
<div class="hero-ctas">
|
|
<a class="btn btn-lg" href="/contact/">Discuss SLA requirements →</a>
|
|
<a class="btn btn-outline btn-lg" href="#freshness">Data freshness tiers</a>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- DATA FRESHNESS TIERS -->
|
|
<section id="freshness" style="background:var(--surface)">
|
|
<div class="container">
|
|
<div class="section-label">Data freshness</div>
|
|
<h2 class="section-title">Freshness tiers</h2>
|
|
<p class="section-sub">All Landvex intelligence is field-observed. The freshness tier defines the maximum age of underlying observations included in delivered intelligence.</p>
|
|
<div class="tier-grid">
|
|
|
|
<div class="tier-card">
|
|
<div class="tier-badge standard">Standard</div>
|
|
<svg class="tier-icon" viewBox="0 0 24 24" fill="none" stroke="#888" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
|
<circle cx="12" cy="12" r="10"/>
|
|
<polyline points="12 6 12 12 16 14"/>
|
|
</svg>
|
|
<h3>Standard</h3>
|
|
<div class="tier-freshness">Observations within 90 days</div>
|
|
<p>Field observations no older than 90 days. Suitable for strategic analysis, market entry assessments, and background research where recent directional accuracy is required.</p>
|
|
<div class="tier-availability">Included in all plans</div>
|
|
</div>
|
|
|
|
<div class="tier-card featured">
|
|
<div class="tier-badge premium">Premium</div>
|
|
<svg class="tier-icon" viewBox="0 0 24 24" fill="none" stroke="#5599ff" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
|
<circle cx="12" cy="12" r="10"/>
|
|
<polyline points="12 6 12 12 16 14"/>
|
|
</svg>
|
|
<h3>Premium</h3>
|
|
<div class="tier-freshness">Observations within 30 days</div>
|
|
<p>Field observations no older than 30 days. Recommended for active investment decisions, site selection processes, and any use case where current-state accuracy is material to the outcome.</p>
|
|
<div class="tier-availability">Available on subscription</div>
|
|
</div>
|
|
|
|
<div class="tier-card">
|
|
<div class="tier-badge priority">Priority</div>
|
|
<svg class="tier-icon" viewBox="0 0 24 24" fill="none" stroke="#fbbf24" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
|
<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>
|
|
</svg>
|
|
<h3>Priority</h3>
|
|
<div class="tier-freshness">On-demand mission deployment</div>
|
|
<p>Dedicated field mission deployed to your target location within 24–72 hours. Intelligence reflects observed conditions at time of mission. Suitable for time-critical transactions and due diligence.</p>
|
|
<div class="tier-availability">Available on enterprise contracts</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- PLATFORM COMMITMENTS -->
|
|
<section id="commitments" style="background: var(--bg-dark)">
|
|
<div class="container">
|
|
<div class="section-label">Platform commitments</div>
|
|
<h2 class="section-title">What we commit to</h2>
|
|
<p class="section-sub">The following commitments apply to all active Landvex subscriptions unless otherwise specified in a signed order form or enterprise agreement.</p>
|
|
<div class="commitments-grid">
|
|
|
|
<div class="commit-card">
|
|
<svg class="commit-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
|
<path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/>
|
|
<circle cx="12" cy="10" r="3"/>
|
|
</svg>
|
|
<div>
|
|
<h3>Coverage commitment</h3>
|
|
<p>Geographic coverage maps are launching August 2026. Coverage metadata is published per market and reflects current collection capacity. Markets not listed as active are not covered under any freshness tier.</p>
|
|
<span class="commit-metric">Launching August 2026</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="commit-card">
|
|
<svg class="commit-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
|
<rect x="2" y="3" width="20" height="14" rx="2"/>
|
|
<line x1="8" y1="21" x2="16" y2="21"/>
|
|
<line x1="12" y1="17" x2="12" y2="21"/>
|
|
</svg>
|
|
<div>
|
|
<h3>Platform uptime</h3>
|
|
<p>Landvex platform availability target is 99.5% measured monthly. Scheduled maintenance windows are communicated in advance and excluded from uptime calculations. Status is published at status.landvex.com.</p>
|
|
<span class="commit-metric">99.5% monthly target</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="commit-card">
|
|
<svg class="commit-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
|
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
|
|
<polyline points="14 2 14 8 20 8"/>
|
|
<line x1="16" y1="13" x2="8" y2="13"/>
|
|
<line x1="16" y1="17" x2="8" y2="17"/>
|
|
<polyline points="10 9 9 9 8 9"/>
|
|
</svg>
|
|
<div>
|
|
<h3>Intelligence delivery</h3>
|
|
<p>Reports are delivered within the timeline agreed at order placement. Where a delay is anticipated, notification is provided within 4 business hours of the expected issue being identified. Delayed delivery does not automatically trigger credit.</p>
|
|
<span class="commit-metric">Notification within 4 business hours</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="commit-card">
|
|
<svg class="commit-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
|
|
<polyline points="9 11 12 14 22 4"/>
|
|
<path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"/>
|
|
</svg>
|
|
<div>
|
|
<h3>Data quality</h3>
|
|
<p>A minimum 85% AI review approval rate is maintained across all delivered intelligence. Human review is available for edge cases, contested classifications, and high-stakes outputs upon request. Quality metrics are available on request.</p>
|
|
<span class="commit-metric">85% minimum approval rate</span>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- BREACH PROCESS -->
|
|
<section id="breach" class="breach-bg">
|
|
<div class="container">
|
|
<div class="section-label">Breach resolution</div>
|
|
<h2 class="section-title">How breaches are handled</h2>
|
|
<p class="section-sub">When a commitment is not met, Landvex follows a defined resolution process. Transparency and speed of resolution are non-negotiable.</p>
|
|
|
|
<div class="breach-steps">
|
|
<div class="breach-step">
|
|
<div class="breach-step-num">1</div>
|
|
<div class="breach-step-body">
|
|
<h4>Notification within 4 business hours</h4>
|
|
<p>The affected client is notified within 4 business hours of a confirmed breach being identified, whether self-reported or identified by Landvex monitoring. Notification includes a preliminary description of scope and expected resolution timeline.</p>
|
|
</div>
|
|
</div>
|
|
<div class="breach-step">
|
|
<div class="breach-step-num">2</div>
|
|
<div class="breach-step-body">
|
|
<h4>Root cause within 48 hours</h4>
|
|
<p>A root cause analysis is delivered within 48 hours of the breach being confirmed. The analysis documents what failed, why, and what preventive measure is being applied. RCA is provided in writing.</p>
|
|
</div>
|
|
</div>
|
|
<div class="breach-step">
|
|
<div class="breach-step-num">3</div>
|
|
<div class="breach-step-body">
|
|
<h4>Credit for material breaches</h4>
|
|
<p>Where a breach is material — meaning it results in demonstrable impact to the client’s ability to use delivered intelligence as intended — service credit is applied to the next billing period as follows:
|
|
<table style="width:100%;border-collapse:collapse;margin-top:12px;font-size:.85rem">
|
|
<thead><tr style="background:rgba(0,102,255,.08)">
|
|
<th style="padding:8px 12px;text-align:left;border-bottom:1px solid #e5e7eb">Breach type</th>
|
|
<th style="padding:8px 12px;text-align:left;border-bottom:1px solid #e5e7eb">Standard credit</th>
|
|
</tr></thead>
|
|
<tbody>
|
|
<tr><td style="padding:8px 12px;border-bottom:1px solid #f3f4f6">Uptime below 99.5% in a calendar month</td><td style="padding:8px 12px;border-bottom:1px solid #f3f4f6">10% of monthly subscription fee</td></tr>
|
|
<tr><td style="padding:8px 12px;border-bottom:1px solid #f3f4f6">Uptime below 99.0%</td><td style="padding:8px 12px;border-bottom:1px solid #f3f4f6">25% of monthly subscription fee</td></tr>
|
|
<tr><td style="padding:8px 12px;border-bottom:1px solid #f3f4f6">Confirmed data delivery failure (missed freshness SLO)</td><td style="padding:8px 12px;border-bottom:1px solid #f3f4f6">Pro-rata for affected period</td></tr>
|
|
<tr><td style="padding:8px 12px">Critical incident unresolved >72 hours</td><td style="padding:8px 12px">15% of monthly subscription fee</td></tr>
|
|
</tbody>
|
|
</table>
|
|
<p style="font-size:.8rem;color:#aaa;margin-top:8px">Credits are applied automatically. Maximum credit per month: 30% of monthly fee. Credits do not constitute a waiver of other remedies. Enterprise agreements may specify custom credit structures.</p></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ENTERPRISE SLA -->
|
|
<section id="enterprise" style="background: var(--bg-dark)">
|
|
<div class="container">
|
|
<div class="section-label">Enterprise</div>
|
|
<h2 class="section-title">Custom SLA available</h2>
|
|
<p class="section-sub">Enterprise contracts support fully negotiated SLA terms, including custom freshness windows, dedicated support response times, and tailored breach credit structures.</p>
|
|
|
|
<div class="enterprise-box">
|
|
<svg class="enterprise-box-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round">
|
|
<rect x="2" y="7" width="20" height="14" rx="2"/>
|
|
<path d="M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2"/>
|
|
<line x1="12" y1="12" x2="12" y2="16"/>
|
|
<line x1="10" y1="14" x2="14" y2="14"/>
|
|
</svg>
|
|
<div class="enterprise-box-text">
|
|
<h3>Enterprise SLA — Tailored to your requirements</h3>
|
|
<p>Custom SLA is available on enterprise contracts. Negotiable terms include freshness SLOs, uptime guarantees, priority support escalation paths, and credit structures. Contact <a href="mailto:enterprise@landvex.com">enterprise@landvex.com</a> to initiate a discussion.</p>
|
|
</div>
|
|
<a class="btn btn-lg" href="/contact/" style="white-space:nowrap;flex-shrink:0">Discuss SLA requirements →</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- CTA -->
|
|
<section class="cta-section">
|
|
<div class="container">
|
|
<div class="cta-banner">
|
|
<div class="cta-banner-text">
|
|
<h3>Discuss SLA requirements</h3>
|
|
<p>If your use case requires specific freshness windows, uptime guarantees, or delivery commitments not covered by standard terms, speak with our enterprise team.</p>
|
|
</div>
|
|
<a class="btn btn-lg" href="/contact/" style="white-space:nowrap;flex-shrink:0">Discuss SLA requirements →</a>
|
|
</div>
|
|
<p class="lv-disclaimer" style="margin-top:32px">SLA commitments apply to services delivered under a current Landvex subscription or enterprise agreement. Standard plan terms govern unless superseded by a signed order form. Landvex AB · Org.nr 559141-7042.</p>
|
|
</div>
|
|
</section>
|
|
|
|
<footer>
|
|
<div class="footer-inner">
|
|
<div>
|
|
<div class="footer-logo">Landvex</div>
|
|
<div class="footer-copy">© 2026 Landvex Inc · Landvex AB (org.nr 559141-7042)</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="/data-quality/">Data quality</a>
|
|
<a href="/security/">Security</a>
|
|
<a href="/contact/">Contact</a>
|
|
<a href="mailto:enterprise@landvex.com">enterprise@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>
|