FW Thorpe SmartScan AI Discovery Sprint | OpenKit
Manufacturing / Lighting · 2026 · 3 weeks
FW Thorpe (Thorlux)

FW Thorpe (Thorlux)

Three-week discovery sprint turning SmartScan IoT data into three-tier executive, manager, and department reports for a UK-listed lighting group.

SmartScan sensor data flowing into three tiered reports: executive, manager, department
3 wks
AI consultancy engagement
7
LLMs benchmarked
3-tier
Audience-shaped reports
UK region
Data sovereignty
Client
FW Thorpe (Thorlux)Manufacturing / Lighting
Engagement
Discovery sprint and pilot specification
Timeline
3 weeks 2026
Capabilities
AI Strategy · Manufacturing · IoT · Smart Buildings · Lighting
01The challenge

A million-fitting IoT estate, and an engineer's dashboard where the buyer wanted a report.

FW Thorpe runs SmartScan, one of the largest connected lighting estates in the world: roughly one million luminaires across 661 buildings, every fitting carrying a passive infrared occupancy sensor and feeding into Tiger DB on PostgreSQL with TimescaleDB. The data is rich, the platform is mature. What was missing was a business-facing artefact on top of it.

Universities and large corporates make capital decisions on manual space utilisation analysis that takes two to four hours per site. Thorlux cannot scale that across a multi-thousand-site customer base. A single engineering dashboard cannot serve a board member, a facilities manager, and a department head equally well, and customer occupancy data has to stay inside UK jurisdiction, which rules out any default-to-OpenAI architecture.

  • Customer occupancy data stays inside UK jurisdiction, end to end.
  • Sensor data is the means, not the artefact; the buyer wants the recommendation.
  • One source of truth, three audiences, three differently-shaped reports.
  • Model selection backed by benchmarking, not vendor preference.
  • Architecture sits inside the existing SmartScan deployment, no new data plane.
03What we built

One Tiger DB source, three audience-shaped reports, models the client chose with eyes open.

We recommended dropping the single-dashboard ambition and producing three reports instead, shaped as a pyramid. A one-page executive summary for the C-suite, scoped to underutilised spaces because that is the call the reader is paid to make. A wider group-type report for facilities managers, with every space inside every category for context. A wider-still department report organised around organisational units instead of physical zones.

Each tier draws from the same Tiger DB SQL and the same pre-calculated metrics, but the prompt, language, and presentation change with the reader. A board member who receives a fifty-page facilities report will not read it; a facilities manager who receives a one-page executive summary cannot act on it.

One design rule sits underneath everything else: the language model never sees raw data. Python computes every utilisation percentage, every action flag, and every department aggregation first. The prompt is a structured payload of pre-verified numbers plus a task description. The model writes narrative around verified arithmetic instead of doing the arithmetic itself, which is what makes the output auditable.

Data sovereignty was a hard constraint. The architecture targets AWS Bedrock in a UK region with Langfuse for observability, and the strategic preference throughout was for private models over public AI APIs so customer occupancy data never crosses jurisdiction.

  • Python AI reporting service: data extraction, pandas pre-calculation, model call, structured report write.
  • Thin PHP display layer inside the existing SmartScan codebase, with PDF export.
  • AWS Bedrock UK region, Azure UK South as a code-free fallback path.
  • Langfuse traces for every model call, scheduled-only generation to cap operational cost.
  • Model-as-judge validation during development, source-anchored arithmetic at runtime.
  • Architecture parameterised on site_id so the pilot extends across the estate without rework.
Design process

One source, three readers, one pyramid that holds them all.

The funnel below was the structural call: a narrow executive tier at the top, a wider facilities tier in the middle, the widest department tier at the base. Same SQL, same metrics, three differently-shaped reports.

FIG 04 · ONE SOURCE → ONE SERVICE → THREE READERS SOURCE SERVICE AUDIENCE-SHAPED OUTPUTS ~1M FITTINGS PIR occupancy 661+ BUILDINGS multi-tenant TIGER DB postgres · timescale AI REPORTING python service bedrock UK langfuse traces audience prompts TIER 1 EXECUTIVE c-suite · 1 page TIER 2 GROUP TYPE facilities manager · 3-5 pages TIER 3 DEPARTMENT finance + dept head · full detail width = report length, not importance 01 · REUSE SAME SQL · 3 AUDIENCES · 3 PROMPTS replaces one-size dashboard 02 · TIME SAVED 2-4 HRS / SITE TODAY · MANUAL utilisation analysis is the bottleneck 03 · SOVEREIGNTY UK DATA · PRIVATE MODELS PREFERRED residency drives the hosting decision 04 · DELIVERY PYTHON · BEDROCK UK · LANGFUSE trace prompts back to source rows
Three-tier reporting pyramid: exec, facilities, department.
04Outcomes

A strategy report and a build-ready pilot specification.

3 wks
AI consultancy engagement
7
LLMs benchmarked
3-tier
Audience-shaped reports
UK region
Data sovereignty

For engineering

Python service spec, PHP display spec, SQL queries, and prompt schemas. Architecture sized to one site for the pilot and parameterised on site_id so it extends across the estate without rework.

For procurement

Model selection rationale, not vendor preference. Seven candidates tested against four report types with an explicit evaluation framework. Documented default with the option to switch as the market moves.

For compliance

AWS Bedrock eu-west-2 only, Langfuse for observability, no occupancy data leaving UK jurisdiction at any point in the pipeline. The architecture answers the review question before it gets asked.

For Thorlux customers

A Monday-morning report that tells facilities directors, finance leads, and board members which buildings are paying off and which are not. Instead of a portal to click into and a chart to interpret.

Model benchmark, full chart

Seven models. Four report types. One cost-per-report comparison.

The chart below is the strategy-report appendix that drove the pilot model choice. Sorted ascending by relative cost per report. Widths are relative, never absolute. Self-hosted open-weight models hold their own against hosted Claude Haiku 4.5 on a Tiger DB workload of this shape.

FIG 03 · MODEL EVALUATION · SMARTSCAN PILOT LAST EVAL · Q1 2026 MODEL RELATIVE COST PER REPORT · SORTED ASCENDING DEPLOYMENT gpt-oss-20b SELF-HOST · 20B gpt-oss-120b SELF-HOST · 120B Qwen3 32B SELF-HOST · 32B DeepSeek-V3.1 HOSTED · API Claude Haiku 4.5 REFERENCE · HOSTED Minimax M2 HOSTED · API Qwen3 235B A22B 2507 SELF-HOST · 235B LOW HIGH · RELATIVE self-hosted on client GPU hosted API reference anchor METHOD · bar widths relative · evaluated across four report types · absolute pricing not published CONSTRAINT · UK-region hosting required for SmartScan customer data · sovereignty over cost

Strategy report appendix, relative cost per report. Quality assessment ran alongside cost: response validity against each tier's output schema, and a qualitative read of the narrative against manual analysis the Thorlux team produces today.

Risk register, abridged

The strategy report carries a full risk register. These are the three the team has to live with.

Risk
Category
Mitigation written into the spec
Hallucinated statistics in narrative
Technical
Python pre-calculates every metric; the language model only writes narrative around verified numbers, with model-as-judge validation during development.
UK data residency for frontier models
Technical
Selected models confirmed available in eu-west-2; architecture supports fallback to Azure UK South without code changes.
Runaway cost at scale across the estate
Operational
Scheduled generation only, no on-demand triggers for end users; Langfuse traces every call; model choice tuned for cost per report.
Data validation

The numbers matched the live dashboard for the same site. That settled it.

Discovery week one moved from interviews into the database. We mapped the five tables that mattered and wrote a proof-of-concept SQL query against roughly 6.5 million occupancy records for Thorlux HQ, using the same utilisation formula the existing SmartScan OccupancyService uses. The numbers reconciled to the live dashboard for the same site, which confirmed the data was fit for AI reporting and gave us a concrete dataset to work the rest of the sprint against.

Approach

How we delivered it.

Stack

PostgreSQL with TimescaleDBPython AI reporting serviceAWS Bedrock (UK region)Langfuse observabilityPHP display layer in SmartScan

Capabilities

AI StrategyManufacturingIoTSmart BuildingsLighting

Compliance

ISO 27001ISO 9001GDPRUK data residencyCustomer data sovereignty
Engagement

From scoping to live.

  1. Discovery workshopsThree sessions with the Lighting Controls Director, Technical Lead, and Analytics Lead. Mapped buyer, report, and the gap between SmartScan today and what customers want to read. Week 1
  2. Data validationHands-on Tiger DB work: five tables mapped, proof-of-concept SQL against ~6.5M occupancy records for Thorlux HQ, numbers matched the live dashboard for the same site. Week 1-2
  3. Model benchmarkingSeven candidate LLMs (gpt-oss-20b, gpt-oss-120b, Qwen3 32B, Qwen3 235B A22B 2507, Minimax M2, DeepSeek-V3.1, Claude Haiku 4.5) evaluated on cost per report across four report types. Week 2
  4. Strategy and pilot specAI strategy report and pilot technical specification, backed by three sample reports generated against real Thorlux HQ data. Recommendation defensible on artefacts, not slides. Week 3
  5. Internal pilot buildThorlux's engineering team taking the specification forward. Post-engagement

Bring your team's next AI project to a 30-minute call.

No deck. We listen, sketch a delivery shape, and tell you honestly whether AI is the right tool for the problem.

Start Your
AI Project

Thank you for your interest! Enter your project details below and our team will get in contact within 24 hours.

About your AI project

About You

By submitting this form, you confirm that you have read and agree to our privacy policy. We will only use your information to respond to your inquiry.