Files
boc/landvex-site/use-cases/build-use-cases.py
T
Bernt aee0f09db8 landvex: Fixar och tester klara för alla komponenter
- Datafabrik: Dockerfile fix, agentorkestrering fungerar
- Vision: Identify-modell, FAISS, OCR alla testade
- API: Alla 7 integrationstester passerade
- Upplösare: Entitetsupplösning verifierad
2026-07-05 06:41:32 +00:00

1521 lines
96 KiB
Python
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.
#!/usr/bin/env python3
"""
Landvex use-case page builder — 20 pages across 4 use-cases x 5 countries.
No emojis. Enterprise tone.
"""
import os
# ─── Page definitions ──────────────────────────────────────────────────────────
PAGES = [
# Bridge Inspection
{
"use_case": "bridge-inspection",
"use_case_label": "Bridge Inspection",
"country": "sweden",
"country_label": "Sweden",
"country_article": "in Sweden",
"title": "Bridge Inspection in Sweden — Landvex",
"meta_desc": "Landvex delivers systematic bridge condition monitoring and structural assessment intelligence for Swedish road authorities, Trafikverket, and municipalities — deployed within 72 hours.",
"hero_h1": "Bridge Inspection in Sweden",
"hero_sub": "Landvex provides Swedish road authorities and municipalities with field-verified bridge condition intelligence, enabling maintenance prioritization and structural risk assessment across the national network. Deployed in 24 to 72 hours, without procurement delays.",
"eyebrow": "Bridge Inspection — Sweden",
"cards": [
{
"icon": "▲",
"title": "Structural Condition Assessment",
"desc": "Systematic visual surveys of bridge decks, bearings, expansion joints, parapets, and approach slabs across the Swedish national and municipal bridge inventory. AI-reviewed, geo-tagged, and delivered as structured data."
},
{
"icon": "■",
"title": "Maintenance Prioritization for Trafikverket",
"desc": "Rank bridge assets by observed condition severity and deterioration rate. Support capital allocation decisions with field-verified evidence rather than interpolated inspection cycles."
},
{
"icon": "◆",
"title": "Contractor Performance Verification",
"desc": "Independent post-maintenance verification for Swedish procurement authorities. Confirm that remediation work has been completed to specification before invoice approval."
}
],
"comparison_rows": [
["Physical access required", "Yes — inspectors on site", "No — remote observation"],
["Deployment lead time", "Weeks to months", "2472 hours"],
["Coverage per day", "13 bridges", "50+ bridges"],
["Data format", "PDF reports, paper forms", "Structured JSON, GIS-ready"],
["Re-inspection frequency", "210 year cycles", "On-demand"],
["Contradiction detection", "Manual review only", "Automated AI cross-reference"],
],
"contradiction_location": "E4 Corridor — Sodermanland",
"contradiction_official": [
"Last inspection: 14 months ago, passed",
"Maintenance schedule: on track",
"No load restrictions active",
],
"contradiction_observed": [
"Visible spalling on three pier caps",
"Expansion joint separation exceeds specification on two spans",
"Approach slab subsidence visible on northbound carriageway",
"Drainage outfall blockage confirmed at abutment E4-107",
],
"contradiction_confidence": "23%",
"contradiction_subtitle": "Trafikverket maintenance schedule indicates assets within acceptable parameters. Field observation contradicts in 4 of 6 monitored segments.",
"decisions": [
"Maintenance prioritisation across Trafikverket districts",
"Municipal bridge budget allocation",
"Risk-based inspection scheduling",
"Contractor works acceptance",
"Regulatory NVV reporting",
],
},
{
"use_case": "bridge-inspection",
"use_case_label": "Bridge Inspection",
"country": "germany",
"country_label": "Germany",
"country_article": "in Germany",
"title": "Bridge Inspection in Germany — Landvex",
"meta_desc": "Landvex supports Autobahn GmbH, Landesbehörden, and German municipalities with AI-assisted bridge condition monitoring and structural assessment — field-verified, delivered in 72 hours.",
"hero_h1": "Bridge Inspection in Germany",
"hero_sub": "Germany operates over 100,000 classified road bridges, many approaching end-of-design-life. Landvex delivers field-verified structural condition intelligence to Autobahn GmbH, state road authorities, and municipalities at the speed maintenance decisions require.",
"eyebrow": "Bridge Inspection — Germany",
"cards": [
{
"icon": "▲",
"title": "DIN 1076 Condition Assessment Support",
"desc": "Field observation data structured to complement DIN 1076 inspection requirements. Identify priority assets before the next mandatory Hauptpruefung cycle without deploying physical inspection teams."
},
{
"icon": "■",
"title": "Autobahn Network Monitoring",
"desc": "Continuous observation across the federal motorway bridge inventory. Detect surface deterioration, joint failure, and approach slab movement between scheduled inspection intervals."
},
{
"icon": "◆",
"title": "Municipal Bridge Risk Ranking",
"desc": "Support German Kreise and Gemeinden in allocating constrained maintenance budgets. Rank assets by observed condition and deterioration velocity with field-verified evidence."
}
],
"comparison_rows": [
["Physical access required", "Yes — certified inspector on site", "No — remote observation"],
["Deployment lead time", "Weeks to months", "2472 hours"],
["DIN 1076 cycle supplement", "Replaces only at 26 year interval", "On-demand between cycles"],
["Coverage per day", "15 bridges", "50+ bridges"],
["Contractor verification", "Manual punch lists", "AI-assisted independent verification"],
["Contradiction detection", "Not standard practice", "Automated cross-reference"],
],
"contradiction_location": "A7 Corridor — Baden-Württemberg",
"contradiction_official": [
"Hauptpruefung completed 22 months ago: Zustandsnote 2.7",
"Maintenance programme: within schedule",
"No load restriction active",
],
"contradiction_observed": [
"Chloride-induced rebar corrosion visible on east parapet",
"Expansion joint displacement 18mm above threshold on two spans",
"Active water seepage through deck on south abutment",
"Bearing deterioration consistent with grade 3.5+ condition",
],
"contradiction_confidence": "18%",
"contradiction_subtitle": "Official Zustandsnote indicates adequate condition. Observed deterioration markers suggest significant underrating in the most recent Hauptpruefung.",
"decisions": [
"Hauptpruefung pre-screening",
"Autobahn GmbH CapEx prioritisation",
"State-level bridge portfolio risk ranking",
"Municipal Kreisstrassen maintenance allocation",
"Post-repair acceptance verification",
],
},
{
"use_case": "bridge-inspection",
"use_case_label": "Bridge Inspection",
"country": "france",
"country_label": "France",
"country_article": "in France",
"title": "Bridge Inspection in France — Landvex",
"meta_desc": "Landvex delivers bridge condition intelligence for CEREMA, Directions interdépartementales des routes, and French municipalities — field-verified structural assessment deployed in 72 hours.",
"hero_h1": "Bridge Inspection in France",
"hero_sub": "France manages one of Europe's most extensive road bridge inventories, with a significant share classified as requiring attention. Landvex provides CEREMA, DIR networks, and collectivités territoriales with field-verified condition intelligence to prioritize intervention before deterioration becomes critical.",
"eyebrow": "Bridge Inspection — France",
"cards": [
{
"icon": "▲",
"title": "IQOA Condition Pre-Screening",
"desc": "Field observations structured to support IQOA classification workflows. Identify 2E, 3 and 3U priority candidates before formal inspection deployment, enabling efficient use of CEREMA and DIR inspection resources."
},
{
"icon": "■",
"title": "Route Nationale Network Monitoring",
"desc": "Continuous observation across RN and departmental network bridge assets. Detect emerging structural deficiencies between IQOA inspection cycles with zero physical access required."
},
{
"icon": "◆",
"title": "Departmental Council Asset Intelligence",
"desc": "Support conseils départementaux in prioritizing limited maintenance budgets across the departmental road network. Field-verified ranking by observed condition and deterioration rate."
}
],
"comparison_rows": [
["Physical access required", "Yes — CEREMA/DIR inspector", "No — remote observation"],
["Deployment lead time", "Months", "2472 hours"],
["IQOA cycle supplement", "3-year cycle only", "On-demand between cycles"],
["Coverage per campaign", "Dozens of bridges", "Hundreds of bridges"],
["Data deliverable", "IQOA form, PDF", "Structured data, GIS-ready"],
["Contradiction detection", "Not standard", "Automated AI cross-reference"],
],
"contradiction_location": "RN10 Corridor — Nouvelle-Aquitaine",
"contradiction_official": [
"IQOA last survey: 28 months ago, classification 2",
"Maintenance programme: on schedule",
"No restriction orders active",
],
"contradiction_observed": [
"Advanced carbonation of concrete at three pier bases",
"Pavement deformation above central span consistent with deck movement",
"Joint sealant failure on four of six expansion joints",
"Corrosion staining on soffit indicates active reinforcement attack",
],
"contradiction_confidence": "21%",
"contradiction_subtitle": "IQOA classification 2 suggests standard maintenance interval. Observed deterioration markers are consistent with 2E or 3 classification on three of five monitored structures.",
"decisions": [
"IQOA pre-screening and prioritisation",
"Departmental council budget allocation",
"Route nationale emergency intervention planning",
"Post-works compliance verification",
"Climate resilience risk mapping",
],
},
{
"use_case": "bridge-inspection",
"use_case_label": "Bridge Inspection",
"country": "uk",
"country_label": "United Kingdom",
"country_article": "in the United Kingdom",
"title": "Bridge Inspection in the United Kingdom — Landvex",
"meta_desc": "Landvex provides National Highways, Transport Scotland, Welsh Government, and UK local authorities with AI-assisted bridge condition monitoring and structural assessment — deployed in 72 hours.",
"hero_h1": "Bridge Inspection in the United Kingdom",
"hero_sub": "The UK's road bridge inventory faces mounting maintenance backlogs driven by constrained local authority budgets and an ageing asset base. Landvex delivers field-verified structural condition intelligence to National Highways, devolved transport authorities, and local highway authorities — without procurement delays.",
"eyebrow": "Bridge Inspection — United Kingdom",
"cards": [
{
"icon": "▲",
"title": "DMRB-Aligned Condition Pre-Screening",
"desc": "Field observations structured to support BD 63 and CS 450 inspection workflows. Identify priority assets before formal Principal or General Inspections without deploying physical teams to every structure."
},
{
"icon": "■",
"title": "Local Authority Network Monitoring",
"desc": "Support English, Scottish, and Welsh local highway authorities in managing bridge maintenance backlogs. Continuous observation across the local road bridge inventory with rapid deployment and no lane closures."
},
{
"icon": "◆",
"title": "National Highways Portfolio Intelligence",
"desc": "Independent monitoring of SRN bridge assets between scheduled Principal Inspection cycles. Detect deterioration trends and emerging deficiencies with AI-assisted cross-reference against previous inspection data."
}
],
"comparison_rows": [
["Physical access required", "Yes — licensed inspector, traffic management", "No — remote observation"],
["Deployment lead time", "Weeks to months", "2472 hours"],
["DMRB Principal Inspection supplement", "6-year cycle only", "On-demand between cycles"],
["Traffic management required", "Yes — lane closures often required", "No"],
["Coverage per week", "310 structures", "Hundreds of structures"],
["Contradiction detection", "Manual review, structure by structure", "Automated AI cross-reference"],
],
"contradiction_location": "M6 Corridor — North West England",
"contradiction_official": [
"Last Principal Inspection: 38 months ago, condition grade B",
"Maintenance programme: within programme",
"No interim restrictions active",
],
"contradiction_observed": [
"Visible concrete delamination on three spans approaching carriageway edge",
"Bearing shelf corrosion consistent with grade C/D condition",
"Half-joint cracking at two locations exceeds intervention threshold",
"Retaining wall settlement visible at southbound approach",
],
"contradiction_confidence": "17%",
"contradiction_subtitle": "BD 63 inspection recorded condition grade B. Field observations indicate deterioration in four defect categories consistent with grade C or above intervention triggers.",
"decisions": [
"Local authority bridge maintenance backlog prioritisation",
"National Highways interim monitoring between PIs",
"HADDMS data quality validation",
"Post-scheme works acceptance",
"Capital programme risk ranking",
],
},
{
"use_case": "bridge-inspection",
"use_case_label": "Bridge Inspection",
"country": "netherlands",
"country_label": "Netherlands",
"country_article": "in the Netherlands",
"title": "Bridge Inspection in the Netherlands — Landvex",
"meta_desc": "Landvex supports Rijkswaterstaat and Dutch municipalities with field-verified bridge condition monitoring and structural assessment across the Dutch national and regional network — deployed in 72 hours.",
"hero_h1": "Bridge Inspection in the Netherlands",
"hero_sub": "The Netherlands operates a dense and heavily utilised bridge network across its national motorway, provincial road, and waterway systems. Landvex provides Rijkswaterstaat, provincies, and gemeenten with field-verified condition intelligence to support systematic asset management and maintenance prioritization.",
"eyebrow": "Bridge Inspection — Netherlands",
"cards": [
{
"icon": "▲",
"title": "NEN 2767 Condition Monitoring Support",
"desc": "Field observations structured to support NEN 2767 condition assessment workflows. Identify deterioration trends and priority assets between formal inspection intervals without physical inspection deployment."
},
{
"icon": "■",
"title": "Rijkswaterstaat Network Intelligence",
"desc": "Continuous observation across RWS motorway and waterway bridge assets. Detect surface deterioration, joint failure, and bearing movement between scheduled maintenance cycles."
},
{
"icon": "◆",
"title": "Provincial and Municipal Asset Management",
"desc": "Support provincies and gemeenten in prioritizing limited maintenance budgets. Field-verified condition ranking of the regional and local bridge inventory, deployable without traffic management."
}
],
"comparison_rows": [
["Physical access required", "Yes — certified inspector", "No — remote observation"],
["Deployment lead time", "Weeks", "2472 hours"],
["NEN 2767 cycle supplement", "Regular cycle only", "On-demand between cycles"],
["Coverage per campaign", "Limited by team capacity", "100+ bridges per day"],
["Deliverable format", "PDF inspection report", "Structured data, GIS-ready"],
["Contradiction detection", "Manual, inspector-dependent", "Automated AI cross-reference"],
],
"contradiction_location": "A10 Ring — Amsterdam",
"contradiction_official": [
"NEN 2767 last inspection: 19 months ago, condition score 2",
"RWS maintenance programme: within cycle",
"No restrictions active",
],
"contradiction_observed": [
"Visible concrete cracking on three viaduct spans above threshold",
"Bridge deck waterproofing failure on two sections",
"Expansion joint displacement beyond tolerance at four locations",
"Sediment accumulation blocking drainage outlets at two abutments",
],
"contradiction_confidence": "26%",
"contradiction_subtitle": "NEN 2767 condition score 2 suggests routine maintenance interval. Observed indicators suggest 3 or above on at least four of the seven monitored structures.",
"decisions": [
"Rijkswaterstaat capital programme prioritisation",
"Provincial road bridge maintenance scheduling",
"Municipal asset management plan updates",
"Post-maintenance compliance verification",
"Climate adaptation risk assessment",
],
},
# Infrastructure Monitoring
{
"use_case": "infrastructure-monitoring",
"use_case_label": "Infrastructure Monitoring",
"country": "sweden",
"country_label": "Sweden",
"country_article": "in Sweden",
"title": "Infrastructure Monitoring in Sweden — Landvex",
"meta_desc": "Landvex delivers continuous infrastructure monitoring intelligence for Swedish road authorities, utilities, and municipalities — field-verified observation across roads, utilities, and public assets.",
"hero_h1": "Infrastructure Monitoring in Sweden",
"hero_sub": "Landvex provides Swedish infrastructure operators with continuous field-verified observation across road networks, utility corridors, and public assets — enabling predictive maintenance decisions before deterioration becomes costly emergency intervention.",
"eyebrow": "Infrastructure Monitoring — Sweden",
"cards": [
{
"icon": "▲",
"title": "Road Network Condition Monitoring",
"desc": "Systematic monitoring of road surface conditions, markings, signage, and drainage across Swedish national and municipal networks. Updated continuously, delivered as structured intelligence."
},
{
"icon": "■",
"title": "Utility Corridor Surveillance",
"desc": "Visual monitoring of above-ground utility infrastructure across Swedish energy and distribution networks. Detect vegetation encroachment, access point obstruction, and physical damage before service disruption."
},
{
"icon": "◆",
"title": "Public Asset Deterioration Tracking",
"desc": "Monitor the condition trajectory of public infrastructure assets over time. Identify emerging deterioration trends across Swedish municipalities to support evidence-based maintenance budgeting."
}
],
"comparison_rows": [
["Monitoring frequency", "Annual or biennial surveys", "Continuous on-demand"],
["Coverage per campaign", "Selected sample", "Full network"],
["Alert latency for new defects", "Until next inspection cycle", "Days"],
["Data integration", "PDF reports", "Structured API, GIS-ready"],
["Contractor verification", "Manual", "AI-assisted independent"],
["Cross-source contradiction check", "Not performed", "Automated"],
],
"contradiction_location": "E18 Corridor — Vastmanland",
"contradiction_official": [
"Road condition survey: 11 months ago, IRI within standard",
"Maintenance programme: on schedule",
"No service alerts active",
],
"contradiction_observed": [
"Pavement cracking extending 340m beyond surveyed section",
"Drainage channel blockage at four culvert locations",
"Safety barrier damage at three segments unreported",
"Lane marking fading below retroreflectivity threshold on 12km",
],
"contradiction_confidence": "31%",
"contradiction_subtitle": "Official condition data indicates network within acceptable parameters. Field observation identifies unreported deterioration across four infrastructure categories.",
"decisions": [
"Trafikverket network maintenance prioritisation",
"Municipal road budget allocation",
"Utility operator corridor risk assessment",
"Contractor performance verification",
"Annual condition report evidence base",
],
},
{
"use_case": "infrastructure-monitoring",
"use_case_label": "Infrastructure Monitoring",
"country": "germany",
"country_label": "Germany",
"country_article": "in Germany",
"title": "Infrastructure Monitoring in Germany — Landvex",
"meta_desc": "Landvex supports German infrastructure operators, Autobahn GmbH, and municipal authorities with continuous field-verified infrastructure condition monitoring across roads, utilities, and public assets.",
"hero_h1": "Infrastructure Monitoring in Germany",
"hero_sub": "Germany's aging infrastructure base faces a documented investment backlog across roads, bridges, and utilities. Landvex provides Autobahn GmbH, Landesbehoerden, and Stadtverwaltungen with continuous field-verified intelligence to shift from reactive maintenance to evidence-based asset management.",
"eyebrow": "Infrastructure Monitoring — Germany",
"cards": [
{
"icon": "▲",
"title": "Bundesautobahn Network Monitoring",
"desc": "Continuous observation of pavement condition, drainage, signage, and barrier integrity across the Autobahn network. Detect deterioration between ZEB survey cycles to support interim maintenance decisions."
},
{
"icon": "■",
"title": "Municipal Infrastructure Intelligence",
"desc": "Monitor the condition of Kreisstrassen, Gemeindestrassen, and public asset inventories across German municipalities. Evidence-based input for Haushalt planning and capital programme prioritisation."
},
{
"icon": "◆",
"title": "Utility and Energy Corridor Monitoring",
"desc": "Visual monitoring of above-ground utility infrastructure across German energy network corridors. Identify encroachment, physical damage, and access obstructions before they trigger regulatory or operational issues."
}
],
"comparison_rows": [
["ZEB survey supplement", "4-year cycle only", "On-demand between ZEB cycles"],
["Coverage per campaign", "Representative sample", "Full network coverage"],
["Defect alert latency", "Next survey cycle", "Days"],
["Data deliverable", "ZEB tables, PDF", "Structured data, API"],
["Cross-source contradiction", "Not standard", "Automated AI cross-reference"],
["Contractor verification", "Manual on-site", "Remote AI-assisted"],
],
"contradiction_location": "A3 Corridor — Bavaria",
"contradiction_official": [
"ZEB last survey: 26 months ago, PCR value 1.4",
"Maintenance programme: within cycle",
"No service restrictions",
],
"contradiction_observed": [
"Rut depth exceeding ZEB trigger threshold on 4.2km",
"Drainage failure at seven locations not captured in last survey",
"Crash barrier corrosion failure at two segments",
"Retroreflective marking degradation across 18km of carriageway",
],
"contradiction_confidence": "22%",
"contradiction_subtitle": "ZEB PCR value indicates network in adequate condition. Field observation identifies active deterioration in four categories inconsistent with the recorded rating.",
"decisions": [
"Autobahn GmbH maintenance prioritisation",
"State-level Landesstrassen capital allocation",
"Municipal Haushalt infrastructure line prioritisation",
"Utility corridor regulatory compliance",
"Post-works quality acceptance",
],
},
{
"use_case": "infrastructure-monitoring",
"use_case_label": "Infrastructure Monitoring",
"country": "france",
"country_label": "France",
"country_article": "in France",
"title": "Infrastructure Monitoring in France — Landvex",
"meta_desc": "Landvex delivers continuous infrastructure monitoring intelligence for CEREMA, Direction des routes, and French collectivités territoriales — field-verified observation of roads, utilities, and public assets.",
"hero_h1": "Infrastructure Monitoring in France",
"hero_sub": "France's national and departmental infrastructure inventory requires continuous evidence to support prioritization decisions under constrained public finance. Landvex provides CEREMA, DIRs, and conseils departementaux with field-verified monitoring intelligence updated continuously rather than on multi-year survey cycles.",
"eyebrow": "Infrastructure Monitoring — France",
"cards": [
{
"icon": "▲",
"title": "Route Nationale Condition Intelligence",
"desc": "Continuous monitoring of RN pavement condition, markings, drainage, and barrier integrity between IQRN and IQROA survey cycles. Detect emerging deterioration before it triggers reactive emergency maintenance."
},
{
"icon": "■",
"title": "Departmental Network Asset Management",
"desc": "Support conseils departementaux in managing the Route Departementale network with field-verified condition intelligence. Evidence-based input for DOB budget planning and asset management plan updates."
},
{
"icon": "◆",
"title": "Urban Infrastructure Monitoring",
"desc": "Monitor the condition of urban road infrastructure, public space assets, and utility corridors across French metropolitan areas and agglomerations. Prioritise intervention with observed evidence."
}
],
"comparison_rows": [
["IQRN/IQROA survey supplement", "Survey cycle only", "On-demand between surveys"],
["Coverage", "Sampled network", "Full network"],
["Defect detection latency", "Next survey", "Days"],
["Deliverable", "Survey table, PDF", "Structured data, GIS"],
["Collectivité integration", "Manual data entry", "API-ready"],
["Contradiction analysis", "Not standard", "Automated"],
],
"contradiction_location": "RN7 Corridor — Auvergne-Rhone-Alpes",
"contradiction_official": [
"IQRN survey: 17 months ago, score B",
"Maintenance plan: within schedule",
"No emergency intervention orders",
],
"contradiction_observed": [
"Longitudinal cracking extending 600m beyond surveyed section",
"Edge deterioration at 8 locations unreported",
"Drainage failures at 5 culverts not on maintenance programme",
"Road marking fading below IQROA threshold on 22km",
],
"contradiction_confidence": "28%",
"contradiction_subtitle": "IQRN classification B suggests standard maintenance interval. Field observation indicates active deterioration in three categories inconsistent with the recorded score.",
"decisions": [
"DIR infrastructure maintenance prioritisation",
"Conseil departemental DOB budget evidence",
"Route Nationale emergency intervention pre-screening",
"Contractor works compliance verification",
"Climate adaptation risk assessment",
],
},
{
"use_case": "infrastructure-monitoring",
"use_case_label": "Infrastructure Monitoring",
"country": "uk",
"country_label": "United Kingdom",
"country_article": "in the United Kingdom",
"title": "Infrastructure Monitoring in the United Kingdom — Landvex",
"meta_desc": "Landvex delivers continuous infrastructure monitoring for National Highways, Transport Scotland, and UK local authorities — field-verified road condition, utility, and public asset intelligence.",
"hero_h1": "Infrastructure Monitoring in the United Kingdom",
"hero_sub": "UK local authorities face a documented roads maintenance backlog exceeding ten billion pounds, while National Highways manages increasing pressure on the Strategic Road Network. Landvex provides field-verified infrastructure monitoring intelligence that supports evidence-based prioritisation without expanding in-house survey capacity.",
"eyebrow": "Infrastructure Monitoring — United Kingdom",
"cards": [
{
"icon": "▲",
"title": "SRN Condition Monitoring",
"desc": "Continuous observation of National Highways assets between SCANNER and SCRIM survey cycles. Detect surface deterioration, drainage failure, and barrier damage to inform interim maintenance scheduling."
},
{
"icon": "■",
"title": "Local Authority Network Intelligence",
"desc": "Support English, Scottish, and Welsh highway authorities in managing maintenance backlogs with field-verified condition data. Evidence-based input for MTFP budget submissions and Whole of Government Accounts asset valuations."
},
{
"icon": "◆",
"title": "Utility and Public Asset Monitoring",
"desc": "Monitor above-ground utility infrastructure, public realm assets, and street furniture condition across local authority areas. Detect deterioration before public liability events and report to planned maintenance programmes."
}
],
"comparison_rows": [
["SCANNER/SCRIM supplement", "Annual cycle only", "On-demand between surveys"],
["Coverage", "Classified network sample", "Full network"],
["Defect alert latency", "Annual survey", "Days"],
["NRMM/CVI integration", "Manual upload", "API-ready"],
["Contractor verification", "Manual inspection", "AI-assisted remote"],
["Contradiction analysis", "Exceptional cases only", "Automated"],
],
"contradiction_location": "A66 Corridor — Cumbria",
"contradiction_official": [
"SCANNER survey: 14 months ago, Road Condition Indicator: green",
"Highway maintenance programme: within budget",
"No section 58 defences active",
],
"contradiction_observed": [
"Transverse cracking at 11 locations exceeding CVI defect thresholds",
"Carriageway edge deterioration on 7.4km unreported",
"Gully blockages identified at 23 locations beyond maintenance schedule",
"Street lighting column corrosion at 14 locations above intervention level",
],
"contradiction_confidence": "19%",
"contradiction_subtitle": "SCANNER RCI recorded green. Field observation identifies active structural deterioration and drainage failures inconsistent with the recorded condition rating.",
"decisions": [
"Local authority MTFP roads budget evidence",
"National Highways interim maintenance scheduling",
"Pothole and defect litigation risk reduction",
"Contractor performance verification",
"Asset register condition update",
],
},
{
"use_case": "infrastructure-monitoring",
"use_case_label": "Infrastructure Monitoring",
"country": "netherlands",
"country_label": "Netherlands",
"country_article": "in the Netherlands",
"title": "Infrastructure Monitoring in the Netherlands — Landvex",
"meta_desc": "Landvex supports Rijkswaterstaat and Dutch provincial and municipal authorities with continuous field-verified infrastructure monitoring across roads, waterways, and utility assets.",
"hero_h1": "Infrastructure Monitoring in the Netherlands",
"hero_sub": "The Netherlands maintains some of Europe's highest-density road and waterway infrastructure. Landvex provides Rijkswaterstaat, provincies, and gemeenten with continuous field-verified condition monitoring intelligence to support asset management decisions at network scale.",
"eyebrow": "Infrastructure Monitoring — Netherlands",
"cards": [
{
"icon": "▲",
"title": "Rijkswaterstaat Network Monitoring",
"desc": "Continuous observation of RWS motorway and waterway infrastructure. Monitor pavement condition, hydraulic structures, barriers, and drainage between formal inspection intervals."
},
{
"icon": "■",
"title": "Provincial Road Asset Intelligence",
"desc": "Support provincies in managing the provincial road network with field-verified NEN 2767-aligned condition data. Prioritise limited maintenance budgets based on observed deterioration rather than interpolated inspection cycles."
},
{
"icon": "◆",
"title": "Municipal Infrastructure Monitoring",
"desc": "Monitor condition of gemeentelijke roads, cycle paths, public space, and utility assets across Dutch municipalities. Evidence-based input for meerjarenonderhoudsprogramma planning."
}
],
"comparison_rows": [
["NEN 2767 cycle supplement", "Inspection cycle only", "On-demand"],
["Coverage", "Sampled network", "Full network"],
["Defect detection latency", "Next inspection", "Days"],
["Data format", "Inspection report", "Structured data, API, GIS"],
["MIOR integration", "Manual", "API-ready"],
["Contradiction analysis", "Not standard", "Automated AI"],
],
"contradiction_location": "A2 Corridor — Utrecht Province",
"contradiction_official": [
"NEN 2767 inspection: 21 months ago, condition score 2",
"Maintenance plan: within programme",
"No service disruption logged",
],
"contradiction_observed": [
"Pavement cracking above NEN 2767 score 3 threshold on 3.1km",
"Drainage blockage at six culverts outside maintenance schedule",
"Crash barrier corrosion failure on 4 segments not on programme",
"Cycle path surface deterioration exceeding 2 score on 8km",
],
"contradiction_confidence": "24%",
"contradiction_subtitle": "NEN 2767 score 2 indicates standard maintenance interval. Field observation is consistent with score 3 or above on 4 of 7 monitored infrastructure categories.",
"decisions": [
"RWS capital programme prioritisation",
"Provincial MJOP maintenance planning",
"Municipal asset management programme updates",
"Climate resilience infrastructure risk mapping",
"Contractor acceptance verification",
],
},
# Retail Intelligence
{
"use_case": "retail-intelligence",
"use_case_label": "Retail Intelligence",
"country": "sweden",
"country_label": "Sweden",
"country_article": "in Sweden",
"title": "Retail Intelligence in Sweden — Landvex",
"meta_desc": "Landvex delivers field-verified retail location intelligence for Swedish property investors, retailers, and municipalities — footfall indicators, competitive dynamics, and physical environment assessment.",
"hero_h1": "Retail Intelligence in Sweden",
"hero_sub": "Landvex provides Swedish property investors, retail occupiers, and municipal planners with field-verified intelligence on retail location quality, competitive dynamics, and physical environment conditions — observed at street level rather than modelled from secondary data.",
"eyebrow": "Retail Intelligence — Sweden",
"cards": [
{
"icon": "▲",
"title": "Retail Location Assessment",
"desc": "Field-verified assessment of Swedish retail locations: pedestrian environment quality, competitive positioning, retail mix, vacancy indicators, and physical access. Evidence-based input for lease negotiation and portfolio decisions."
},
{
"icon": "■",
"title": "Vacancy and Displacement Monitoring",
"desc": "Monitor retail vacancy patterns across Swedish town centres and retail parks. Identify emerging distress signals — boarding, fascia removal, reduced signage — before they appear in official statistics."
},
{
"icon": "◆",
"title": "Portfolio Condition Intelligence",
"desc": "Systematic condition monitoring of retail asset portfolios across Swedish property markets. Identify deterioration trends, maintenance requirements, and presentation standards for investor-grade asset reporting."
}
],
"comparison_rows": [
["Data freshness", "Annual surveys or modelled data", "Continuous field observation"],
["Vacancy detection latency", "Official statistics (612 month lag)", "Days"],
["Physical environment assessment", "Desktop modelling only", "Field-verified street-level"],
["Competitive context", "Category data only", "Observed occupier-by-occupier"],
["Coverage breadth", "Major centres only", "Town centres to retail parks"],
["Contradiction detection", "Not standard", "Automated AI cross-reference"],
],
"contradiction_location": "Drottninggatan — Stockholm",
"contradiction_official": [
"Vacancy rate: 4.2% (official BID survey, Q3)",
"Footfall index: stable year-on-year",
"No exceptional distress signals in planning data",
],
"contradiction_observed": [
"Active vacancy on 11 of 48 units — effective rate 23%",
"Temporary lets and pop-ups masking structural vacancy on 4 units",
"Three anchor occupiers have reduced fit-out quality significantly",
"Pedestrian environment maintenance below investment-grade standard",
],
"contradiction_confidence": "15%",
"contradiction_subtitle": "Official BID vacancy data indicates healthy centre performance. Field observation reveals a structural vacancy rate five times the reported figure.",
"decisions": [
"Swedish retail property acquisition and lease negotiation",
"Town centre investment programme evidence",
"Municipal retail planning policy support",
"Portfolio valuation evidence",
"Retailer site selection intelligence",
],
},
{
"use_case": "retail-intelligence",
"use_case_label": "Retail Intelligence",
"country": "germany",
"country_label": "Germany",
"country_article": "in Germany",
"title": "Retail Intelligence in Germany — Landvex",
"meta_desc": "Landvex provides German property investors, retailers, and Stadtverwaltungen with field-verified retail location intelligence — occupier analysis, vacancy monitoring, and physical environment assessment.",
"hero_h1": "Retail Intelligence in Germany",
"hero_sub": "German retail real estate markets are navigating structural shifts in consumer behaviour, with inner-city Einkaufsstrassen and retail parks facing divergent trajectories. Landvex delivers field-verified intelligence to support acquisition, leasing, and asset management decisions based on observed market reality.",
"eyebrow": "Retail Intelligence — Germany",
"cards": [
{
"icon": "▲",
"title": "Innenstadt Retail Location Assessment",
"desc": "Field-verified assessment of German Innenstadt retail performance: occupier mix, vacancy rate, pedestrian environment quality, and physical asset condition. Evidence-based input for 1A-Lage and secondary location decisions."
},
{
"icon": "■",
"title": "Fachmarktzentrum Monitoring",
"desc": "Monitor condition, occupancy, and competitive positioning of Fachmarktzentren and retail parks across German markets. Identify deterioration trends and structural vacancy before official surveys capture them."
},
{
"icon": "◆",
"title": "Retail Portfolio Due Diligence",
"desc": "Systematic field-verified assessment of retail asset portfolios for German institutional investors and open-ended funds. Occupier presentation standards, physical condition, and competitive environment quantified at scale."
}
],
"comparison_rows": [
["Data source", "HDE/Comfort annual surveys", "Continuous field observation"],
["Vacancy detection latency", "612 month statistical lag", "Days"],
["1A-Lage verification", "Agent opinion, desktop", "Field-verified observation"],
["Physical condition data", "Not captured in standard surveys", "Systematic street-level assessment"],
["Coverage", "Top-50 cities only", "Any German retail location"],
["Contradiction analysis", "Not standard", "Automated AI cross-reference"],
],
"contradiction_location": "Zeil — Frankfurt am Main",
"contradiction_official": [
"Vacancy rate: 6.1% (BulwienGesa Q4)",
"Footfall trend: recovering post-pandemic",
"1A-Lage classification: maintained",
],
"contradiction_observed": [
"Active vacancy on 14 of 62 units — effective rate 22.6%",
"Six units operating as temporary or charity lets masking structural vacancy",
"Four anchor occupiers showing evidence of lease-end reduction in fit-out investment",
"Street environment maintenance at B-Lage standard on central 300m stretch",
],
"contradiction_confidence": "16%",
"contradiction_subtitle": "BulwienGesa vacancy classification suggests prime performance. Field observation reveals effective vacancy three times the reported rate and occupier quality consistent with secondary location.",
"decisions": [
"German retail property acquisition due diligence",
"Open-ended fund asset management evidence",
"Innenstadt revitalisation investment planning",
"Retailer site selection and negotiation intelligence",
"Portfolio risk reporting",
],
},
{
"use_case": "retail-intelligence",
"use_case_label": "Retail Intelligence",
"country": "france",
"country_label": "France",
"country_article": "in France",
"title": "Retail Intelligence in France — Landvex",
"meta_desc": "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.",
"hero_h1": "Retail Intelligence in France",
"hero_sub": "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.",
"eyebrow": "Retail Intelligence — France",
"cards": [
{
"icon": "▲",
"title": "Centre-Ville Retail Assessment",
"desc": "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."
},
{
"icon": "■",
"title": "Zone Commerciale Monitoring",
"desc": "Monitor condition, occupancy, and competitive dynamics across zones commerciales and centres commerciaux throughout French markets. Detect structural distress before official data captures it."
},
{
"icon": "◆",
"title": "SCPI and OPCI Portfolio Intelligence",
"desc": "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."
}
],
"comparison_rows": [
["Data source", "PROCOS/CNCC surveys, modelled", "Continuous field observation"],
["Vacancy lag", "612 months", "Days"],
["Centre-ville vs zone commerciale comparison", "Separate surveys", "Integrated field assessment"],
["Physical environment quality", "Not captured", "Field-verified street-level"],
["Geographic coverage", "Selected centres", "Any French retail location"],
["Contradiction analysis", "Not standard", "Automated AI"],
],
"contradiction_location": "Rue de la Republique — Lyon",
"contradiction_official": [
"Vacancy rate: 8.4% (PROCOS Q2)",
"Pedestrianisation programme: improving footfall",
"No exceptional distress signals in planning register",
],
"contradiction_observed": [
"Active vacancy on 17 of 71 units — effective rate 23.9%",
"Pop-up and temporary units masking structural vacancy on 5 units",
"Two anchor occupiers with reduced opening hours and degraded fit-out",
"Street environment maintenance below prime standard on 40% of frontage",
],
"contradiction_confidence": "20%",
"contradiction_subtitle": "PROCOS vacancy data indicates moderate performance. Field observation reveals effective vacancy nearly three times the reported rate across the monitored stretch.",
"decisions": [
"Retail property acquisition and lease negotiation",
"Action Coeur de Ville investment evidence",
"SCPI and OPCI portfolio monitoring",
"Retailer site selection intelligence",
"Urban retail planning evidence for collectivités",
],
},
{
"use_case": "retail-intelligence",
"use_case_label": "Retail Intelligence",
"country": "uk",
"country_label": "United Kingdom",
"country_article": "in the United Kingdom",
"title": "Retail Intelligence in the United Kingdom — Landvex",
"meta_desc": "Landvex delivers field-verified retail intelligence for UK property investors, retailers, and local authorities — vacancy monitoring, high street assessment, and physical environment analysis.",
"hero_h1": "Retail Intelligence in the United Kingdom",
"hero_sub": "UK retail real estate continues to undergo structural adjustment, with high street vacancy remaining above long-term averages and out-of-town retail formats facing divergent performance trajectories. Landvex provides field-verified intelligence to support acquisition, asset management, and place-making decisions based on observed reality rather than survey interpolation.",
"eyebrow": "Retail Intelligence — United Kingdom",
"cards": [
{
"icon": "▲",
"title": "High Street Vacancy Monitoring",
"desc": "Field-verified vacancy monitoring across UK town centres and high streets. Identify structural vacancy, temporary uses masking distress, and deterioration in occupier quality — updated continuously, not on annual survey cycles."
},
{
"icon": "■",
"title": "Retail Park and Shopping Centre Assessment",
"desc": "Systematic field assessment of UK retail park and shopping centre assets: occupier mix, physical condition, presentation standards, and competitive positioning. Evidence for institutional acquisition and disposal decisions."
},
{
"icon": "◆",
"title": "Local Authority Place Intelligence",
"desc": "Support UK local authorities in monitoring high street health for BID management, Levelling Up Fund interventions, and UKSPF programme targeting. Field-verified evidence to underpin investment business cases."
}
],
"comparison_rows": [
["Data source", "LDC/Springboard annual surveys", "Continuous field observation"],
["Vacancy detection latency", "612 month survey lag", "Days"],
["Physical condition capture", "Not in standard footfall data", "Systematic street-level assessment"],
["Pop-up and temporary use detection", "Counted as occupied", "Flagged and classified separately"],
["Coverage", "Monitored centres only", "Any UK retail location"],
["Contradiction detection", "Not standard", "Automated AI cross-reference"],
],
"contradiction_location": "Market Street — Manchester City Centre",
"contradiction_official": [
"LDC vacancy rate: 11.3%",
"Footfall index: improving trend",
"BID health assessment: stable",
],
"contradiction_observed": [
"Active structural vacancy on 19 of 74 units — effective rate 25.7%",
"7 pop-up, temporary, and charity units offsetting structural vacancy",
"Three former anchor units subdivided or at reduced rental value",
"Public realm maintenance below investment-grade standard on main frontage",
],
"contradiction_confidence": "14%",
"contradiction_subtitle": "LDC data and BID assessment indicate moderate recovery. Field observation reveals effective structural vacancy more than twice the reported rate.",
"decisions": [
"UK retail property acquisition due diligence",
"REIT and fund portfolio monitoring",
"Local authority high street intervention evidence",
"BID renewal and investment business case",
"Retailer UK site selection intelligence",
],
},
{
"use_case": "retail-intelligence",
"use_case_label": "Retail Intelligence",
"country": "netherlands",
"country_label": "Netherlands",
"country_article": "in the Netherlands",
"title": "Retail Intelligence in the Netherlands — Landvex",
"meta_desc": "Landvex provides Dutch property investors, retailers, and gemeenten with field-verified retail intelligence — vacancy monitoring, winkelgebied assessment, and physical environment analysis.",
"hero_h1": "Retail Intelligence in the Netherlands",
"hero_sub": "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.",
"eyebrow": "Retail Intelligence — Netherlands",
"cards": [
{
"icon": "▲",
"title": "Winkelgebied Performance Assessment",
"desc": "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."
},
{
"icon": "■",
"title": "Retail Vacancy Monitoring",
"desc": "Continuous monitoring of retail vacancy across Dutch town centres and retail parks. Detect emerging distress patterns before Locatus or Retailinsider annual surveys capture them."
},
{
"icon": "◆",
"title": "Institutional Portfolio Intelligence",
"desc": "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."
}
],
"comparison_rows": [
["Data source", "Locatus/Retailinsider annual", "Continuous field observation"],
["Vacancy detection latency", "612 month survey lag", "Days"],
["Physical environment assessment", "Not captured", "Field-verified street-level"],
["Pop-up and temp use classification", "Counted as occupied", "Separately classified"],
["Coverage", "National sample centres", "Any Dutch retail location"],
["Contradiction analysis", "Not standard", "Automated AI cross-reference"],
],
"contradiction_location": "Lijnbaan — Rotterdam",
"contradiction_official": [
"Locatus vacancy: 7.8%",
"Pedestrian footfall: stable year-on-year",
"No structural distress in gemeentelijk monitor",
],
"contradiction_observed": [
"Active structural vacancy on 13 of 58 units — effective rate 22.4%",
"4 pop-up units and 2 charity shops masking structural vacancy",
"Two anchor occupiers showing fit-out disinvestment consistent with lease-end",
"Public realm condition below Centrum-standard on three block frontages",
],
"contradiction_confidence": "18%",
"contradiction_subtitle": "Locatus vacancy data indicates healthy market performance. Field observation reveals effective vacancy nearly three times the reported rate across the monitored street.",
"decisions": [
"Dutch retail property acquisition and disposal",
"Institutional portfolio risk monitoring",
"Gemeentelijk winkelgebied investment planning",
"Retailer Netherlands site selection",
"Asset management evidence for valuations",
],
},
# Road Inspection
{
"use_case": "road-inspection",
"use_case_label": "Road Inspection",
"country": "sweden",
"country_label": "Sweden",
"country_article": "in Sweden",
"title": "Road Inspection in Sweden — Landvex",
"meta_desc": "Landvex delivers systematic road condition surveys and pavement assessment intelligence for Trafikverket and Swedish municipalities — field-verified, deployed in 72 hours.",
"hero_h1": "Road Inspection in Sweden",
"hero_sub": "Landvex provides Trafikverket, Swedish county administrative boards, and municipalities with field-verified road condition intelligence covering pavement quality, markings, signage, and drainage — supporting maintenance prioritisation across the national and local road network.",
"eyebrow": "Road Inspection — Sweden",
"cards": [
{
"icon": "▲",
"title": "Pavement Condition Assessment",
"desc": "Systematic documentation of Swedish road surface conditions: cracking, rutting, surface defects, and IRI indicators across national and municipal networks. AI-reviewed, geo-tagged, and delivered as structured data."
},
{
"icon": "■",
"title": "Road Marking and Signage Surveys",
"desc": "Condition assessment of road markings, retroreflectivity indicators, and signage across Swedish road networks. Identify non-compliant sections before safety audit triggers or incident investigation."
},
{
"icon": "◆",
"title": "Drainage and Safety Feature Inspection",
"desc": "Systematic survey of drainage culverts, gully condition, safety barriers, and roadside hazards. Evidence-based maintenance prioritisation across Swedish national and municipal road inventories."
}
],
"comparison_rows": [
["Survey method", "Mobile laser scanning, physical teams", "Remote AI-assisted observation"],
["Deployment lead time", "Months — survey planning required", "2472 hours"],
["Coverage per day", "50100km", "500km+"],
["Data format", "IRI tables, PDF reports", "Structured JSON, GIS-ready"],
["Re-survey frequency", "Annual or biennial", "On-demand"],
["Contradiction detection", "Not standard", "Automated AI cross-reference"],
],
"contradiction_location": "Rv 40 — Vastra Gotaland",
"contradiction_official": [
"VTI road condition survey: 13 months ago, IRI 2.1",
"Maintenance programme: within standard",
"No emergency interventions logged",
],
"contradiction_observed": [
"Transverse cracking on 6.8km not captured in last VTI survey",
"Rutting exceeding Swedish standard on two 1.2km sections",
"Gully blockages at 17 locations outside maintenance schedule",
"Road marking retroreflectivity below NVV threshold on 14km",
],
"contradiction_confidence": "27%",
"contradiction_subtitle": "VTI IRI survey indicates network within acceptable parameters. Field observation identifies active pavement deterioration and drainage failures inconsistent with the recorded condition.",
"decisions": [
"Trafikverket pavement maintenance prioritisation",
"Municipal road budget allocation",
"Safety audit pre-screening",
"Contractor works compliance verification",
"Annual road condition reporting evidence",
],
},
{
"use_case": "road-inspection",
"use_case_label": "Road Inspection",
"country": "germany",
"country_label": "Germany",
"country_article": "in Germany",
"title": "Road Inspection in Germany — Landvex",
"meta_desc": "Landvex delivers systematic road condition assessment intelligence for Autobahn GmbH, Landesbehoerden, and German municipalities — field-verified pavement surveys deployed in 72 hours.",
"hero_h1": "Road Inspection in Germany",
"hero_sub": "Germany's road maintenance backlog is estimated to exceed 30 billion euros across the national and regional network. Landvex provides Autobahn GmbH, state road authorities, and municipalities with field-verified road condition intelligence to prioritise investment where deterioration is most advanced.",
"eyebrow": "Road Inspection — Germany",
"cards": [
{
"icon": "▲",
"title": "ZEB-Aligned Pavement Assessment",
"desc": "Field observations structured to supplement ZEB survey data. Identify priority sections for Autobahn GmbH and Landesstrassenbehoerden between formal ZEB cycles — without deploying survey vehicles."
},
{
"icon": "■",
"title": "Municipal Gemeindestrassen Surveys",
"desc": "Systematic road condition assessment across German Kreisstrassen and Gemeindestrassen networks. Evidence-based input for municipal Haushalt planning and capital programme prioritisation."
},
{
"icon": "◆",
"title": "Road Marking and Safety Feature Inspection",
"desc": "Assessment of road markings, Leitpfosten, signage, and safety barriers across German road networks. Identify non-compliant sections before accident investigation or StVO enforcement."
}
],
"comparison_rows": [
["ZEB supplement", "4-year survey cycle only", "On-demand between ZEB surveys"],
["Deployment lead time", "Survey planning — months", "2472 hours"],
["Network coverage", "Representative sample", "Full network coverage"],
["Data format", "ZEB tables, PDF", "Structured data, API, GIS"],
["Contractor verification", "Manual on-site check", "AI-assisted remote"],
["Contradiction analysis", "Not standard", "Automated AI cross-reference"],
],
"contradiction_location": "B9 Corridor — Rhineland-Palatinate",
"contradiction_official": [
"ZEB survey: 31 months ago, PCR value 1.6",
"Maintenance programme: within ZEB cycle",
"No emergency orders active",
],
"contradiction_observed": [
"Rut depth exceeding ZEB trigger threshold on 5.4km",
"Active cracking patterns consistent with PCR 2.5+ on three sections",
"Safety barrier corrosion failure at six locations",
"Leitpfosten damage on 12km unreported in maintenance register",
],
"contradiction_confidence": "21%",
"contradiction_subtitle": "ZEB PCR value indicates network in adequate condition. Field observation reveals active deterioration patterns inconsistent with the recorded PCR rating on three monitored sections.",
"decisions": [
"Autobahn GmbH CapEx prioritisation",
"State Landesstrassen maintenance scheduling",
"Municipal Haushalt roads budget evidence",
"Contractor performance and acceptance",
"StVO compliance pre-screening",
],
},
{
"use_case": "road-inspection",
"use_case_label": "Road Inspection",
"country": "france",
"country_label": "France",
"country_article": "in France",
"title": "Road Inspection in France — Landvex",
"meta_desc": "Landvex delivers systematic road condition surveys for CEREMA, Directions interdepartementales des routes, and French collectivites — field-verified pavement assessment deployed in 72 hours.",
"hero_h1": "Road Inspection in France",
"hero_sub": "France's route nationale and departementale networks face growing maintenance pressure, with departmental road authorities managing extensive inventories on constrained budgets. Landvex provides CEREMA, DIRs, and conseils departementaux with field-verified road condition intelligence to support evidence-based prioritisation.",
"eyebrow": "Road Inspection — France",
"cards": [
{
"icon": "▲",
"title": "IQRN/IQROA Condition Pre-Screening",
"desc": "Field observations structured to support IQRN and IQROA assessment workflows. Identify priority sections before formal survey deployment, enabling targeted use of CEREMA and DIR survey resources."
},
{
"icon": "■",
"title": "Route Departementale Network Surveys",
"desc": "Systematic road condition assessment across departmental road networks. Support conseils departementaux in prioritising limited DOB maintenance budgets with field-verified evidence."
},
{
"icon": "◆",
"title": "Road Marking and Safety Audit Support",
"desc": "Assessment of route marking, glissicometrie indicators, signage, and roadside hazard conditions. Evidence-based input for DIR safety audit programmes and departmental road safety plans."
}
],
"comparison_rows": [
["IQRN/IQROA supplement", "Survey cycle only", "On-demand between surveys"],
["Deployment lead time", "Months — survey planning", "2472 hours"],
["Network coverage", "RN and selected RD only", "Any French road"],
["Deliverable format", "Survey table, PDF", "Structured data, GIS-ready"],
["Contractor verification", "Manual", "AI-assisted remote"],
["Contradiction analysis", "Not standard", "Automated AI cross-reference"],
],
"contradiction_location": "RD 906 — Hautes-Alpes",
"contradiction_official": [
"IQROA survey: 20 months ago, score C",
"Departmental maintenance programme: within schedule",
"No emergency repair orders active",
],
"contradiction_observed": [
"Longitudinal cracking on 4.2km inconsistent with C-score parameters",
"Pothole density on 1.8km exceeds D-score threshold",
"Drainage failures at 11 culverts outside maintenance programme",
"Road marking fading below minimum retroreflectivity on 28km",
],
"contradiction_confidence": "25%",
"contradiction_subtitle": "IQROA score C suggests standard departmental maintenance interval. Field observation identifies deterioration consistent with D-score conditions on two of the four monitored sections.",
"decisions": [
"DIR maintenance prioritisation",
"Conseil departemental DOB budget allocation",
"Safety audit programme pre-screening",
"Contractor works acceptance",
"PDMI input and evidence",
],
},
{
"use_case": "road-inspection",
"use_case_label": "Road Inspection",
"country": "uk",
"country_label": "United Kingdom",
"country_article": "in the United Kingdom",
"title": "Road Inspection in the United Kingdom — Landvex",
"meta_desc": "Landvex delivers field-verified road condition surveys for National Highways, Transport Scotland, and UK local highway authorities — pavement assessment and defect intelligence deployed in 72 hours.",
"hero_h1": "Road Inspection in the United Kingdom",
"hero_sub": "UK local authority roads maintenance backlogs now exceed ten billion pounds, while National Highways faces increasing pressure to demonstrate network condition between formal SCANNER survey cycles. Landvex provides field-verified road condition intelligence to support prioritisation decisions at scale.",
"eyebrow": "Road Inspection — United Kingdom",
"cards": [
{
"icon": "▲",
"title": "SCANNER and CVI Pre-Screening",
"desc": "Field observations structured to support SCANNER, SCRIM, and CVI inspection workflows. Identify priority sections before formal survey deployment, enabling targeted allocation of highway inspection resources."
},
{
"icon": "■",
"title": "Local Authority Network Surveys",
"desc": "Systematic pavement condition assessment across classified and unclassified local authority road networks. Evidence-based input for MTFP budget submissions and DfT Incentive Fund reporting."
},
{
"icon": "◆",
"title": "Road Marking and Safety Feature Inspection",
"desc": "Assessment of road markings, cats eyes, safety barriers, signage, and drainage across UK highway networks. Identify section 58 risk exposure and pre-screen for safety inspection programmes."
}
],
"comparison_rows": [
["SCANNER/SCRIM supplement", "Annual survey cycle only", "On-demand between surveys"],
["Deployment lead time", "Survey planning — weeks to months", "2472 hours"],
["Traffic management required", "Yes for some surveys", "No"],
["Coverage", "Classified network sample", "Full network including unclassified"],
["Section 58 evidence", "Inspector opinion", "Field-verified AI-assisted"],
["Contradiction analysis", "Not standard", "Automated cross-reference"],
],
"contradiction_location": "A595 Corridor — Cumbria",
"contradiction_official": [
"SCANNER survey: 16 months ago, RCI green",
"Highway maintenance programme: within budget",
"No section 38 emergency repair orders",
],
"contradiction_observed": [
"Carriageway cracking at 15 locations exceeding CVI defect threshold",
"Edge deterioration on 9.2km inconsistent with green RCI rating",
"Gully blockages at 31 locations outside maintenance schedule",
"Road marking retroreflectivity below DMRB threshold on 17km",
],
"contradiction_confidence": "16%",
"contradiction_subtitle": "SCANNER RCI classified green. Field observation identifies structural defects and drainage failures at a frequency inconsistent with the recorded condition rating.",
"decisions": [
"Local authority MTFP pavement maintenance budget",
"National Highways SRN interim maintenance scheduling",
"Section 58 liability risk reduction",
"Contractor performance verification",
"DfT Incentive Fund condition evidence",
],
},
{
"use_case": "road-inspection",
"use_case_label": "Road Inspection",
"country": "netherlands",
"country_label": "Netherlands",
"country_article": "in the Netherlands",
"title": "Road Inspection in the Netherlands — Landvex",
"meta_desc": "Landvex supports Rijkswaterstaat and Dutch provincial and municipal authorities with systematic road condition surveys and pavement assessment intelligence — field-verified, deployed in 72 hours.",
"hero_h1": "Road Inspection in the Netherlands",
"hero_sub": "The Netherlands operates a high-density, heavily trafficked road network across Rijkswaterstaat, provincial, and municipal authority boundaries. Landvex provides systematic road condition intelligence aligned with NEN 2767 workflows, enabling Rijkswaterstaat, provincies, and gemeenten to prioritise maintenance at network scale.",
"eyebrow": "Road Inspection — Netherlands",
"cards": [
{
"icon": "▲",
"title": "NEN 2767 Road Condition Assessment",
"desc": "Field observations structured to support NEN 2767 condition assessment workflows across the Dutch road network. Identify priority sections for Rijkswaterstaat and provincial authorities between formal inspection intervals."
},
{
"icon": "■",
"title": "Gemeentelijke Road Network Surveys",
"desc": "Systematic pavement condition assessment across municipal road networks and fietspad infrastructure. Evidence-based input for gemeentelijk meerjarenonderhoudsprogramma planning and capital budget prioritisation."
},
{
"icon": "◆",
"title": "Road Marking and Safety Feature Surveys",
"desc": "Assessment of markings, reflectors, safety barriers, and drainage across Dutch road networks. Identify non-compliant sections before CROW-standard safety audit or incident investigation."
}
],
"comparison_rows": [
["NEN 2767 supplement", "Regular inspection cycle", "On-demand between cycles"],
["Deployment lead time", "Weeks — inspection planning", "2472 hours"],
["Coverage per campaign", "Selected network", "Full network"],
["MIOR data integration", "Manual", "API-ready"],
["Contractor verification", "Manual inspection", "AI-assisted remote"],
["Contradiction analysis", "Not standard", "Automated AI cross-reference"],
],
"contradiction_location": "N207 Corridor — South Holland",
"contradiction_official": [
"NEN 2767 inspection: 24 months ago, condition score 2",
"Provincial maintenance programme: within MJOP",
"No emergency repair orders active",
],
"contradiction_observed": [
"Rut depth exceeding NEN 2767 score 3 threshold on 2.8km",
"Edge cracking patterns consistent with score 3+ on three sections",
"Drainage failure at 9 culverts outside MJOP schedule",
"Fietspad surface deterioration above score 3 on 5.6km",
],
"contradiction_confidence": "23%",
"contradiction_subtitle": "NEN 2767 condition score 2 indicates standard maintenance interval. Field observation is consistent with score 3 or above on three of five monitored road sections.",
"decisions": [
"RWS motorway pavement programme prioritisation",
"Provincial MJOP maintenance allocation",
"Gemeentelijk wegbeheer budget evidence",
"CROW safety audit pre-screening",
"Contractor acceptance verification",
],
},
]
# ─── HTML generator ─────────────────────────────────────────────────────────────
def render_page(p):
use_case = p["use_case"]
country = p["country"]
use_case_label = p["use_case_label"]
country_label = p["country_label"]
canonical = f"https://www.landvex.com/use-cases/{use_case}/{country}/"
# Cards HTML
cards_html = ""
for card in p["cards"]:
cards_html += f"""
<a class="use-case-card" href="/contact/" style="display:block;text-decoration:none;">
<span class="uc-icon" style="font-size:22px;display:block;margin-bottom:16px;color:#5599ff;">{card['icon']}</span>
<h3>{card['title']}</h3>
<p>{card['desc']}</p>
<div style="margin-top:14px;font-size:13px;font-weight:700;color:#0066ff;">Learn more &rarr;</div>
</a>"""
# Comparison table rows
table_rows = ""
for row in p["comparison_rows"]:
table_rows += f"""
<tr>
<td style="padding:14px 16px;font-size:14px;font-weight:600;color:#ccc;border-bottom:1px solid rgba(255,255,255,0.07);">{row[0]}</td>
<td style="padding:14px 16px;font-size:14px;color:#999;border-bottom:1px solid rgba(255,255,255,0.07);">{row[1]}</td>
<td style="padding:14px 16px;font-size:14px;color:#5599ff;font-weight:600;border-bottom:1px solid rgba(255,255,255,0.07);">{row[2]}</td>
</tr>"""
# Contradiction official list items
official_items = "\n".join(f"<li style='color:rgba(255,255,255,.75);font-size:.875rem;padding:4px 0;'>&#10003; {item}</li>" for item in p["contradiction_official"])
observed_items = "\n".join(f"<li style='color:rgba(255,255,255,.75);font-size:.875rem;padding:4px 0;'>&#10007; {item}</li>" for item in p["contradiction_observed"])
# Decisions chips
decision_chips = ""
for d in p["decisions"]:
decision_chips += f"""
<div class="decision-chip">
<span class="chip-dot"></span>
<span>{d}</span>
</div>"""
# Breadcrumb JSON-LD
breadcrumb_ld = f"""{{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{{"@type": "ListItem", "position": 1, "name": "Landvex", "item": "https://www.landvex.com/"}},
{{"@type": "ListItem", "position": 2, "name": "Use Cases", "item": "https://www.landvex.com/use-cases/"}},
{{"@type": "ListItem", "position": 3, "name": "{use_case_label}", "item": "https://www.landvex.com/use-cases/{use_case}/"}},
{{"@type": "ListItem", "position": 4, "name": "{country_label}", "item": "{canonical}"}}
]
}}"""
html = f"""<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{p['title']}</title>
<meta name="description" content="{p['meta_desc']}">
<link rel="canonical" href="{canonical}">
<link rel="alternate" hreflang="x-default" href="https://www.landvex.com/">
<meta property="og:type" content="website">
<meta property="og:url" content="{canonical}">
<meta property="og:title" content="{p['title']}">
<meta property="og:description" content="{p['meta_desc']}">
<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">
<meta name="robots" content="index, follow">
<script type="application/ld+json">{breadcrumb_ld}</script>
<style>
*, *::before, *::after {{ box-sizing: border-box; margin: 0; padding: 0; }}
:root {{
--bg-dark: #0a0a0a; --blue: #0066FF; --blue-dark: #0052CC;
--blue-glow: rgba(0,102,255,0.15); --text-light: #e8e8e8;
--text-dim: #888; --text-muted: #6B6B6B; --surface: #111111;
--surface-2: #181818; --border: rgba(255,255,255,0.07);
--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: #fff; }}
.btn {{ display: inline-flex; align-items: center; gap: 6px; padding: 10px 22px; background: var(--blue); color: #fff; 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(255,255,255,0.18); color: var(--text-light); }}
.btn-outline:hover {{ background: rgba(255,255,255,0.06); transform: translateY(-1px); }}
.btn-lg {{ padding: 14px 30px; 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: 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(34px,5.5vw,62px); font-weight: 800; letter-spacing: -2px; line-height: 1.06; color: #fff; 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: 1140px; 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,3.8vw,42px); font-weight: 800; letter-spacing: -1.2px; line-height: 1.1; color: #fff; margin-bottom: 16px; }}
.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: 20px; margin-top: 48px; }}
.use-case-card {{ background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 32px 28px; 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: #fff; 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: 18px 22px; display: flex; align-items: center; gap: 12px; }}
.decision-chip .chip-dot {{ width: 8px; height: 8px; border-radius: 50%; background: var(--blue); flex-shrink: 0; }}
.decision-chip span {{ font-size: 14px; font-weight: 600; color: var(--text-light); }}
.contradiction-bg {{ background: #001836; }}
.contradiction-box {{ background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 16px; padding: 36px 40px; 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(255,255,255,.6); font-size: .875rem; line-height: 1.6; }}
.conflict-grid {{ display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }}
.conflict-side {{ border-radius: 10px; 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: 4px; }}
.conflict-footer {{ margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; align-items: center; }}
.conflict-footer-label {{ color: rgba(255,255,255,.5); font-size: .8125rem; }}
.conflict-confidence {{ color: #f87171; font-weight: 800; font-size: 1.125rem; }}
.breadcrumb {{ font-size: 13px; color: var(--text-muted); padding: 76px 40px 0; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }}
.breadcrumb a {{ color: var(--text-muted); }}
.breadcrumb a:hover {{ color: #fff; }}
.breadcrumb .sep {{ color: var(--border); }}
.comparison-table {{ width: 100%; border-collapse: collapse; margin-top: 32px; border-radius: 12px; overflow: hidden; border: 1px solid rgba(255,255,255,0.08); }}
.comparison-table th {{ padding: 14px 16px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; text-align: left; background: rgba(255,255,255,0.04); color: var(--text-dim); }}
.cta-section {{ background: #001836; }}
.cta-box {{ border-radius: 16px; padding: 56px 48px; text-align: center; max-width: 680px; margin: 0 auto; }}
.cta-box h2 {{ font-size: clamp(24px,3vw,36px); font-weight: 800; color: #fff; margin-bottom: 16px; }}
.cta-box p {{ font-size: 17px; color: rgba(255,255,255,.7); margin-bottom: 36px; line-height: 1.65; }}
.lv-disclaimer {{ font-size:.75rem; color:rgba(255,255,255,.4); margin-top:24px; padding:12px 16px; background:rgba(255,255,255,.04); border-radius:8px; line-height:1.6; max-width:800px; }}
.lv-disclaimer a {{ color:rgba(255,255,255,.5); 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: 20px; }}
.footer-logo {{ font-size: 17px; font-weight: 700; color: #fff; }}
.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: #fff; }}
.footer-social {{ width: 32px; height: 32px; border: 1px solid var(--border); border-radius: 8px; display: flex; align-items: center; justify-content: center; transition: border-color 0.2s, background 0.2s; }}
.footer-social:hover {{ border-color: rgba(255,255,255,0.25); background: rgba(255,255,255,0.06); }}
@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:72px 20px; }} .decisions-grid {{ grid-template-columns:1fr; }} nav {{ padding:0 16px; }} .hero h1 {{ letter-spacing:-1px; }} .contradiction-box {{ padding:24px 20px; }} }}
</style>
</head>
<body>
<nav>
<a class="nav-logo" href="https://www.landvex.com/">&larr; Landvex</a>
<a class="btn btn-outline" href="/contact/">Contact &rarr;</a>
</nav>
<div class="breadcrumb">
<a href="https://www.landvex.com/">Landvex</a>
<span class="sep">/</span>
<a href="/use-cases/">Use Cases</a>
<span class="sep">/</span>
<a href="/use-cases/{use_case}/">{use_case_label}</a>
<span class="sep">/</span>
<span style="color:#ccc;">{country_label}</span>
</div>
<!-- HERO -->
<section class="hero">
<div class="hero-eyebrow">{p['eyebrow']}</div>
<h1>{p['hero_h1']}</h1>
<p class="hero-sub">{p['hero_sub']}</p>
<div class="hero-ctas">
<a class="btn 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 style="background:var(--surface);">
<div class="container">
<div class="section-label">Capabilities</div>
<h2 class="section-title">{use_case_label} {p['country_article']} — 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">{cards_html}</div>
</div>
</section>
<!-- COMPARISON TABLE -->
<section>
<div class="container">
<div class="section-label">Comparison</div>
<h2 class="section-title">Landvex vs traditional {use_case_label.lower()} 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>{table_rows}
</tbody>
</table>
</div>
</section>
<!-- KEY DECISIONS -->
<section class="decisions-bg">
<div class="container">
<div class="section-label">Decision support</div>
<h2 class="section-title">Decisions Landvex informs {p['country_article']}</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">{decision_chips}</div>
</div>
</section>
<!-- CONTRADICTION ENGINE -->
<section class="contradiction-bg">
<div class="container" style="max-width:900px;">
<div style="text-align:center;margin-bottom:56px;">
<div class="section-label" style="color:rgba(255,255,255,.4);">Contradiction Engine</div>
<h2 class="section-title" style="color:#fff;">Most systems confirm what you already believe.<br>Landvex finds what doesn&rsquo;t add up.</h2>
<p class="section-sub" style="color:rgba(255,255,255,.6);margin:0 auto;max-width:600px;">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; {p['contradiction_location']}</div>
<div class="conflict-desc">{p['contradiction_subtitle']}</div>
</div>
</div>
<div class="conflict-grid">
<div class="conflict-side conflict-official">
<div class="conflict-side-label">Official narrative</div>
<ul>{official_items}</ul>
</div>
<div class="conflict-side conflict-observed">
<div class="conflict-side-label">Observed reality</div>
<ul>{observed_items}</ul>
</div>
</div>
<div class="conflict-footer">
<span class="conflict-footer-label">Confidence in official narrative</span>
<span class="conflict-confidence">{p['contradiction_confidence']}</span>
</div>
</div>
<div style="display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:16px;">
<div style="text-align:center;padding:24px;">
<div style="font-size:1.5rem;margin-bottom:10px;color:#5599ff;">&#128269;</div>
<h4 style="color:#fff;font-weight:700;margin-bottom:6px;">Show me what I am missing</h4>
<p style="color:rgba(255,255,255,.5);font-size:.8125rem;">Blind spots absent from official data and internal reports</p>
</div>
<div style="text-align:center;padding:24px;">
<div style="font-size:1.5rem;margin-bottom:10px;color:#5599ff;">&#9878;</div>
<h4 style="color:#fff;font-weight:700;margin-bottom:6px;">AI Red Team</h4>
<p style="color:rgba(255,255,255,.5);font-size:.8125rem;">Every conclusion is challenged by a second model before delivery</p>
</div>
<div style="text-align:center;padding:24px;">
<div style="font-size:1.5rem;margin-bottom:10px;color:#5599ff;">&#128208;</div>
<h4 style="color:#fff;font-weight:700;margin-bottom:6px;">Which assumptions are wrong?</h4>
<p style="color:rgba(255,255,255,.5);font-size:.8125rem;">Identify where your thesis conflicts with observed reality</p>
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="cta-section">
<div class="container">
<div class="cta-box">
<div class="section-label" style="color:rgba(255,255,255,.4);">Get started</div>
<h2>Request a pilot for {use_case_label} {p['country_article']}</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="btn btn-lg" href="/pilot/" style="font-size:17px;padding:16px 36px;">Request a pilot &rarr;</a>
</div>
<p class="lv-disclaimer" style="margin:32px auto 0;">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>
<div class="footer-inner">
<div>
<div class="footer-logo">LandveX</div>
<div class="footer-copy">&copy; 2026 LandveX AB &middot; Org.nr 559141-7042</div>
<div class="footer-tagline">Decision intelligence for the physical world.</div>
</div>
<div class="footer-links">
<a href="https://www.landvex.com/">Home</a>
<a href="/verticals/">Verticals</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" style="color:var(--text-muted,#888)">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>"""
return html
# ─── Write files ─────────────────────────────────────────────────────────────
BASE = "/opt/amos/public/landvex/use-cases"
written = []
for p in PAGES:
uc = p["use_case"]
country = p["country"]
dir_path = f"{BASE}/{uc}/{country}"
os.makedirs(dir_path, exist_ok=True)
file_path = f"{dir_path}/index.html"
html = render_page(p)
with open(file_path, "w", encoding="utf-8") as f:
f.write(html)
written.append(file_path)
print(f"Written: {file_path}")
print(f"\nTotal pages written: {len(written)}")