Skip to content
Seven-layer architecture

One data spine. Two products: operations and valuation.

Every layer below is a real engineering surface with its own protocols, contracts, and failure modes. The stack is designed so operations pays for the sensors, and valuation emerges as a signed by-product of data we were already paid to collect.

End-to-end flow

Cumulative flow across all seven layers

L-0Field sensingInputs
Physical phenomena: vibration, tilt, voltage, current, water, CO₂, temperature, motion.
Process
On-node ADC sampling → thresholded encoding → LoRaWAN uplink; gateway buffers on WAN loss.
Outputs
Compact binary frames tagged with devEUI, timestamp, and RSSI/SNR — ready for decoding.
L-1Ingestion & market da…Inputs
LoRaWAN frames from gateways + nightly market-data files and APIs.
Process
Decode → validate → dedupe → insert into hypertable; ETL normalises leases and comps onto property_id.
Outputs
Unified time-series rows: readings, leases, transactions, comparables.
L-2Asset & twin modelInputs
Component catalogue, documents, maintenance history, incoming readings.
Process
Map readings to components → apply subsystem weights → compute per-subsystem and composite BHI.
Outputs
Versioned BHI score with subsystem breakdown and confidence flags.
L-3Valuation engineInputs
BHI · NOI (measured) · comparables · cost baseline.
Process
Run three estimators independently → weight by data quality → blend → emit CI.
Outputs
Valuation + confidence interval + explainable contribution breakdown.
L-4Trust & complianceInputs
Readings, computed scores, valuation snapshots.
Process
Hash → batch → Merkle root → anchor → valuer signs.
Outputs
Signed, anchored report with verifiable hash path.
L-5ApplicationsInputs
User role · organisation · query parameters.
Process
RLS view materialises role-appropriate slice → UI composes KPIs.
Outputs
Role-scoped dashboard, alerts, exports, and signed reports.
L-6Roll-outInputs
Design-partner buildings and pilot KPIs.
Process
Instrument → measure → publish · widen coverage each phase.
Outputs
Case evidence, portfolio benchmarks, open signed city index.
InputsProcessOutputsTap a row to open its layer
100%
L-1

Ingestion & market data

ChirpStack → MQTT → time-series store. DLD transactions and Ejari lease connectors join the same spine.

Sensors → ChirpStack → MQTThex payload · decoder · JSONDLD · Ejari · comps (ETL)nightly · join on property_idTime-series spineHypertable · retention · continuous aggreadings · leases · compsTelemetry laneMarket data lane
100%

Two independent lanes converge on one time-series spine. The telemetry lane runs a ChirpStack network server that terminates LoRaWAN, applies per-device decoders (hex → typed JSON), publishes to an MQTT broker, and lands rows in a Timescale-style hypertable with continuous aggregates for BHI windows. The market-data lane pulls from Dubai Land Department transactions, Ejari lease registrations, and third-party comps overnight, normalising them into the same schema keyed on property_id. The join happens at the spine, not in the app — so every dashboard reads a single source that already reconciles physics with market signals.

Specifications
  • Network server: ChirpStack (open-source, self-hosted)
  • Transport: MQTT 3.1.1 · QoS 1 · TLS
  • Store: Postgres + time-series hypertables
  • Retention: raw 90 d · 1-min agg 2 y · 1-h agg 10 y
  • Market ETL: DLD · Ejari · comps · nightly cron
  • Decoders: versioned per device model · replay-safe
Inputs

LoRaWAN frames from gateways + nightly market-data files and APIs.

Process

Decode → validate → dedupe → insert into hypertable; ETL normalises leases and comps onto property_id.

Outputs

Unified time-series rows: readings, leases, transactions, comparables.

2 / 7