Warning
DRAFT — FOR DISCUSSION This document is a brainstorming draft exploring what could be possible with i-team's IoT data. The data structures, use cases, and implementation ideas presented here are proposals to be discussed and refined together — they do not represent existing functionality or commitments.
This document explores a unified data model and insight strategy for i-team, enabling analytics, predictive capabilities, and new revenue streams from the IoT data already being collected by every i-mop in the field.
i-team currently markets the ToolSense platform as i-link — their customer-facing data and fleet management brand. The unified data model described here enhances i-link's capabilities significantly, both for in-platform dashboards and for an external API that i-team or their end customers can build upon.
What's in this document:
| Section | What It Covers | |
|---|---|---|
| 🔧 | 1. Unified Data Model | Standardized data structures for assets, telemetry, tickets, sites, costs — the technical foundation |
| 📈 | 2. Technical Insight Use Cases | 22 analytics capabilities: predictive maintenance, efficiency, reliability, security, financial, AI/ML |
| 💰 | 3. Commercial Value Use Cases | Revenue generation, cost reduction, end-customer value, co-botics, network effects, additional ideas |
| 🔗 | 4. Untapped Capabilities | Features i-team isn't using yet (vehicle trips, BLE mesh) and combined cross-domain use cases |
| 🚀 | 5. Data Delivery | In-platform (i-link) and external API options |
| 🎯 | 6. Use Case Prioritization | Grouped by commercial impact and suggested sequencing |
Tip
How to read this document: Section 2 describes WHAT the data can reveal. Section 3 describes WHY i-team should care — each maps to revenue, cost savings, or competitive advantage. Cross-references like "→ M15" link technical capabilities to their commercial framing.
Tip
i-link platform capabilities (built on ToolSense):
- 🌐 Network effect — OEMs, dealers, and FM companies on the same platform create pull-push: customers prefer equipment that integrates with what they already use
- 🗄️ Deepest data model — telemetry + ticketing + costs + work orders + parts + site hierarchy + BLE + trips in a single platform
- 🔌 21+ integrations — multi-manufacturer support (i-team is already a named integration provider)
- 🔗 Webhooks + API — real-time event webhooks (tickets, assets, work orders, sites) with retry logic, plus per-user API keys
- 📋 Enterprise procedure engine — 29+ form field types, conditional logic (if/then/else), input tables, signature capture, photo attachments, QR/NFC scanning
- 📱 QR self-service — unauthenticated end-users scan a QR code on any machine to see status, fill forms, report problems — without needing an account
- 🏷️ Full white-labeling — custom domain, colors, logo, favicon, SSO, support email, mobile app links
- 📍 Geofencing & rules engine — 5 trigger sources (IoT data, schedule, check, BLE, meter reading) with 9 automation actions
- 💳 Financial tracking — 11 cost types, invoices, TCO per asset, cost center allocation
- 🌍 45+ languages — global deployment ready
- 📴 Offline-first mobile — field workers complete checklists without connectivity
- 📄 Document management — files attached to assets, tickets, parts, procedures with visibility controls
Important
Top 5 highest-impact use cases for i-team:
- 🏆 M0 + M1: Tender compliance + cleaning proof — IoT is becoming mandatory in tenders. Compliance reporting wins deals. Table stakes.
- 📱 M42 + M43: QR self-service + inspection checklists — Already built in the platform. End users scan QR to report issues; i-team defines branded checklists with conditional logic. Quick wins.
- 💸 M2: Equipment-as-a-Service / pay-per-use — Transforms one-time hardware sales into recurring revenue.
- 🔋 M9 + M15: Warranty validation + battery extension — Reduces i-team costs (warranty) while giving end customers savings (battery life).
- 🎯 M55: Clean Score — Competitive parity with ICE Cobotics and Avidbots. Industry standard for fleet analytics.
The data structures below represent what a standardized, analytics-ready data model could look like. They are designed to illustrate the breadth of available data and how it could be structured for insights and API consumption. The exact fields, naming, and structure are open for discussion.
The platform already collects most of this data in various forms — the proposal is to expose it in a clean, unified format optimized for analytics.
The core entity representing a trackable piece of equipment.
interface UnifiedAsset {
// Identity
id: string; // ToolSense public ID (hashed)
uuid: string; // Globally unique identifier
serial: string | null; // Manufacturer serial number
externalId: string | null; // Customer's own asset identifier
inventoryNumber: string | null; // Inventory tracking number
plateNumber: string | null; // Vehicle/equipment plate number
// Classification
category: {
id: string;
name: string; // e.g. "Floor Scrubber", "Vacuum Cleaner"
};
type: {
id: string;
name: string; // e.g. "i-mop XL", "i-mop XXL"
make: string | null; // Manufacturer model identifier
isVehicle: boolean;
};
manufacturer: {
id: string;
name: string; // e.g. "i-team"
};
// Ownership & Financial
ownership: 'PURCHASE' | 'LEASING' | 'RENTAL' | 'CUSTOMER_MACHINE' | 'OTHER';
availability: 'READY_TO_USE' | 'DAMAGED' | 'IN_REPAIR' | 'RETIRED' | 'WAREHOUSE'
| 'ORDERED' | 'NEEDS_APPROVAL' | 'BORROWED' | 'IN_TRANSIT' | 'TO_BE_ASSIGNED';
purchaseCost: number | null;
purchaseDate: string | null; // ISO date
warrantyEnd: string | null; // ISO date
dailyRate: number | null; // For rental/billing
currency: string | null; // ISO 4217
// Current Location
currentSite: UnifiedSiteRef | null;
currentLocation: {
latitude: number;
longitude: number;
uncertainty: number; // Meters
timestamp: string; // ISO datetime
source: 'CELLULAR' | 'WIFI' | 'TRIANGULATION' | 'SITE' | 'UNKNOWN';
} | null;
// IoT Module
module: {
imei: string;
firmwareVersion: string | null;
connectionStatus: 'primary' | 'secondary' | 'disconnected';
} | null;
// Organization
organization: UnifiedOrganizationRef;
commissionDate: string | null; // ISO date — when asset was put into service
// Metadata
createdAt: string;
updatedAt: string;
customFields: Record<string, string | number | null>;
}Raw and processed sensor data from ToolSense IoT modules. The "DEFAULT" integration produces the following standardized payload per transmission:
interface UnifiedTelemetry {
// Identity
assetId: string;
moduleImei: string;
timestamp: string; // ISO datetime (from module clock)
receivedAt: string; // ISO datetime (server receive time)
// Runtime & Activity
runtime: number; // Total runtime in seconds (cumulative)
activityTime: number; // Motion-based activity in ms
powerOnTime: number; // Power-on duration in seconds
ignitionSwitchOnTime: number; // Ignition switch time in seconds
// Vibration Breakdown (activity by intensity)
vibration: {
low: number; // Low vibration activity in ms
medium: number; // Medium vibration activity in ms
high: number; // High vibration activity in ms
};
// External Power Activity (same metrics but only while on external power)
externalPowerActivity: {
total: number; // Motion activity on external power in ms
vibrationLow: number;
vibrationMedium: number;
vibrationHigh: number;
};
// Battery & Power
moduleBattery: number; // IoT module internal battery (0-100%)
voltage: {
average: number; // External device battery voltage (V)
min: number;
max: number;
};
// Location (derived from cellular/WiFi geolocation — NOT GPS; accuracy is typically dozens of meters)
location: {
latitude: number;
longitude: number;
uncertainty: number; // Meters (typically 50-500m for cellular, 10-50m for WiFi)
isValid: boolean; // loc flag
} | null;
// Connectivity
signal: number; // Signal strength (0-31)
firmwareVersion: string;
// Interval Logs (start/end timestamp pairs)
runtimeIntervals: [number, number][]; // [startTs, endTs]
ignitionSwitchIntervals: [number, number][]; // [startTs, endTs]
// Dynamic Config
configId: number;
}Processed/Aggregated Telemetry (for charting and dashboards):
interface UnifiedTelemetryAggregated {
assetId: string;
period: 'hour' | 'day' | 'week' | 'month';
periodStart: string; // ISO datetime
periodEnd: string;
// Derived Metrics
runtimeDelta: number; // Runtime gained in this period (seconds)
utilizationPercent: number; // Runtime / available hours * 100
workDone: number; // Work units (e.g., cleaning area in m²)
// Battery Health
avgVoltage: number;
minVoltage: number;
maxVoltage: number;
chargeCycles: number; // Estimated charge cycles in period
// Activity Breakdown
activeTime: number; // Seconds
idleTime: number; // Powered on but not active
offTime: number; // Not powered on
// Location Summary
distinctSites: string[]; // Site IDs visited
totalDistance: number | null; // Meters traveled (if location data sufficient)
}interface UnifiedTicket {
// Identity
id: string;
uuid: string;
ticketNumber: number; // Human-readable sequential number
// Status
status: 'open' | 'inProgress' | 'waitingForInformation' | 'approvalNeeded'
| 'onHold' | 'closed' | 'declined';
urgency: 'CRITICAL' | 'HIGH' | 'NORMAL' | 'LOW' | 'TOLERABLE';
statusUpdatedAt: string;
// Classification
service: {
id: string;
name: string; // e.g. "Report a Problem", "Maintenance Request"
preset: 'QR_LANDING' | 'REGULAR' | 'BLE'; // How the ticket was created
} | null;
// Associations
assets: UnifiedAssetRef[]; // Affected assets
sites: UnifiedSiteRef[]; // Related sites
assetCategories: string[]; // Category names
assetTypes: string[]; // Type names
// Content (dynamic form fields)
content: UnifiedTicketField[];
// People
createdBy: {
userId: string | null; // null if created by anonymous QR scan
organizationId: string;
email: string | null;
};
assignees: UnifiedAssignee[];
siteManager: { userId: string; name: string } | null;
// Costs
costs: {
total: number;
currency: string;
breakdown: {
type: 'REPAIR' | 'LABOR' | 'SPARE_PARTS' | 'MAINTENANCE' | 'BATTERY'
| 'CONSUMABLES' | 'FUEL' | 'LOGISTICS' | 'CERTIFICATION'
| 'INSURANCE_TAXES' | 'OTHER';
amount: number;
}[];
};
// Timeline
comments: UnifiedTicketComment[];
history: UnifiedTicketHistoryEntry[];
// Automation
automations: {
type: string;
ranAt: string | null;
}[];
// Metadata
createdAt: string;
updatedAt: string;
closedAt: string | null; // Derived from status history
firstResponseAt: string | null; // Derived from first assignee action
resolutionTimeHours: number | null; // Created → Closed duration
}
interface UnifiedTicketField {
label: string;
type: 'text' | 'number' | 'date' | 'dropdown' | 'single_choice' | 'multi_choice'
| 'yes_no_choice' | 'checkbox' | 'attachment' | 'signature' | 'gps'
| 'asset' | 'site' | 'phone' | 'email' | 'meter_reading' | 'input_table';
value: string | number | boolean | null;
comment: string | null;
}
interface UnifiedTicketComment {
id: string;
author: string; // User name or email
isInternal: boolean;
content: string;
attachments: string[]; // Document URLs
createdAt: string;
}
interface UnifiedTicketHistoryEntry {
type: string; // e.g. 'STATUS_UPDATED', 'ASSIGNEE_ADDED'
trigger: 'USER' | 'AUTOMATION';
oldValue: string | null;
newValue: string | null;
performedBy: string | null; // User name
timestamp: string;
}interface UnifiedSite {
// Identity
id: string;
uuid: string;
name: string;
externalId: string | null;
// Address
address: string | null;
postalCode: string | null;
country: string | null;
city: string | null; // Derived from address
coordinates: {
latitude: number;
longitude: number;
} | null;
// Hierarchy
parentSiteId: string | null;
siteType: string | null;
// Management
siteManagers: {
userId: string;
name: string;
email: string;
isPrimary: boolean;
}[];
contact: {
email: string | null;
telephone: string | null;
};
// Operational
accountNumber: string | null;
customerNumber: string | null;
costCenter: string | null;
// Organization
organization: UnifiedOrganizationRef;
// Derived Metrics (populated on request)
assetCount: number;
activeTicketCount: number;
}interface UnifiedOrganization {
id: string;
name: string;
isCustomer: boolean;
parentOrganizationId: string | null;
vatNumber: string | null;
identificationNumber: string | null;
// Hierarchy
rootOrganizationId: string;
rootOrganizationName: string;
childOrganizations: UnifiedOrganizationRef[];
}interface UnifiedCost {
id: string;
assetId: string;
ticketId: string | null;
siteId: string | null;
title: string;
type: 'REPAIR' | 'LABOR' | 'SPARE_PARTS' | 'MAINTENANCE' | 'BATTERY'
| 'CONSUMABLES' | 'FUEL' | 'LOGISTICS' | 'CERTIFICATION'
| 'INSURANCE_TAXES' | 'OTHER';
amount: number;
currency: string;
quantity: number;
invoiceNumber: string | null;
invoiceDate: string | null;
provider: string | null;
costCenter: string | null;
createdBy: string;
createdAt: string;
}interface UnifiedEvent {
id: string;
assetId: string;
type: 'ERROR' | 'WARNING' | 'INFO' | 'SERVICE' | 'LOCATION' | 'TICKET'
| 'MACHINE_CHECK' | 'MAINTENANCE' | 'COST' | 'WORK_ORDER';
isCritical: boolean;
startTime: string;
endTime: string | null;
isOngoing: boolean;
data: Record<string, unknown>; // Event-specific payload
createdAt: string;
}This data does not exist in ToolSense today. The customer (i-team) would supply it. Proposed structure:
interface ExternalServiceRecord {
// Identity
externalId: string; // Customer's service record ID
assetId: string; // Matched to ToolSense asset (by serial, externalId, or UUID)
// Service Details
serviceDate: string; // ISO date
serviceType: string; // e.g. "Brush Replacement", "Motor Repair", "Annual Service"
serviceCategory: string; // e.g. "Preventive", "Corrective", "Emergency"
description: string;
// Parts & Cost
partsUsed: { name: string; quantity: number; cost: number }[];
laborHours: number;
totalCost: number;
currency: string;
// Provider
servicedBy: string; // Technician or service partner name
serviceLocation: string | null;
// Outcome
resolution: string; // What was done
rootCause: string | null; // Why it failed (if known)
downtimeHours: number | null; // How long asset was out of service
}interface UnifiedAssetRef {
id: string;
serial: string | null;
categoryName: string;
typeName: string;
}
interface UnifiedSiteRef {
id: string;
name: string;
country: string | null;
}
interface UnifiedOrganizationRef {
id: string;
name: string;
}
interface UnifiedAssignee {
type: 'user' | 'team' | 'group' | 'externalEmail' | 'siteManager';
id: string;
name: string;
email: string | null;
}This section covers the analytics capabilities. For the commercial framing (revenue, cost savings, competitive advantage) of each, follow the → Mxx cross-references to Section 3.
| # | Use Case | Description | Uses Data From | Example Output |
|---|---|---|---|---|
| A1 | Predictive Repair Timing → M11, M57 | Correlate cumulative runtime and asset age with service history to determine the average runtime at which a specific asset type requires a specific repair | Telemetry (runtime), service history, asset classification | "i-mop XL typically needs brush motor replacement at ~2,500 operating hours" |
| A2 | Vibration-Based Failure Prediction → M57 | Track vibration intensity distribution (high/medium/low) over time. A shift toward higher vibration ratios may indicate worn brushes, bearings, or suction motors before failure | Telemetry (vibration), service history | Time-series anomaly detection on vibration ratios triggers early warning alerts |
| A3 | Battery Health Degradation → M15, M9 | Monitor voltage trends over weeks/months. Declining average voltage under load indicates battery aging. Predict end-of-life and schedule proactive replacement | Telemetry (voltage trends), asset type thresholds | "Battery on asset #1234 has degraded 15% over 6 months — estimated 3 months until replacement needed" |
| A4 | Battery Mismanagement Detection → M9, M15 | Identify deep discharge patterns, incomplete charging, or excessive time on charger. Deep discharge dramatically shortens Li-ion battery life | Telemetry (voltage min, charge cycles), runtime intervals | Alert when voltage drops below safe threshold defined per asset type |
| # | Use Case | Description | Uses Data From | Example Output |
|---|---|---|---|---|
| B1 | Asset Utilization Analysis → M14, M48 | Compare actual runtime against available working hours. Classify assets as underutilized, optimal, or overutilized | Telemetry (utilization %), asset type benchmarks | Per-asset utilization score with trend line. Flag assets below 40% or above 90% |
| B2 | Fleet Right-Sizing → M14 | When multiple underutilized assets exist at the same site, suggest consolidation. Factor in peak usage patterns | Telemetry (per asset per site), runtime interval analysis | "Site Amsterdam HQ has 5 i-mop XLs averaging 22% utilization — could operate with 3 during off-peak and 4 during peak" |
| B3 | Seasonal & Temporal Patterns → M23, M12 | Identify day-of-week, time-of-day, and seasonal usage patterns. Schedule maintenance during natural low-usage windows | Telemetry (runtime intervals decomposed by time) | Heatmaps of usage by hour and day. "Monday 6-10 AM is peak usage across all NL sites" |
| # | Use Case | Description | Uses Data From | Example Output |
|---|---|---|---|---|
| C1 | Reliability Scoring by Asset Type → M3, M27 | Aggregate ticket volume and severity by asset type. Normalize by fleet size and runtime for a fair index | Tickets (count, urgency), asset classification, telemetry (runtime) | "i-mop XL: 0.8 tickets per 1,000 runtime hours. i-mop XXL: 1.2 tickets per 1,000 hours" |
| C2 | Issue Clustering for Product Improvement → M11 | NLP on ticket content to cluster the most frequently reported problems. Feed back to product/engineering | Ticket content, comments, asset types | "Top 3 issues for i-mop XL: (1) Water tank leak — 34%, (2) Brush wear — 28%, (3) Battery not charging — 19%" |
| C3 | Ticket Resolution Time Analytics | Track time-to-first-response, time-to-resolution, and reopen rates. Identify bottlenecks | Ticket history (status transitions, timestamps) | "Average resolution time: 48h. Tickets assigned to external partners take 3x longer" |
| C4 | Repeat Issue Detection | Identify assets with recurring tickets for the same issue. Flag chronic problems needing replacement vs. repair | Tickets per asset over time, content similarity | "Asset #5678 has had 4 brush motor tickets in 6 months — recommend replacement unit" |
| C5 | QR Scan & Self-Service Analytics → M42 | Track QR code scan frequency, which sites use self-service most, and what issues are reported | Tickets (QR-originated), sites, timestamps | Engagement rates per site, trending issue types from end-user reports |
| # | Use Case | Description | Uses Data From | Example Output |
|---|---|---|---|---|
| D1 | Site Benchmarking → M18, M27 | Compare sites on standardized KPIs: utilization, ticket volume, maintenance costs, asset availability | All data, grouped by site | "Site Rotterdam: 85/100. Site Brussels: 62/100 — high ticket volume and low utilization" |
| D2 | Site Manager Accountability | Correlate ticket volume, resolution speed, and maintenance compliance with site managers | Tickets, site managers, events | "Sites managed by [manager] have 2.3x the ticket rate and 40% longer resolution times" |
| D3 | Regional / Country-Level Analytics | Roll up all metrics by geography for strategic decision-making | All data, grouped by country/city | Regional dashboards with KPI comparisons |
| D4 | Customer Segmentation → M5, M24 | Segment end-customers by usage patterns, support burden, fleet health, and engagement | All data, grouped by organization | Customer health scores: at-risk (declining usage, rising tickets) vs. healthy |
| # | Use Case | Description | Uses Data From | Example Output |
|---|---|---|---|---|
| E1 | Theft / Unauthorized Movement → M25, H6 | Flag assets that change location without runtime activity, or that move during non-working hours. Detects site-level relocations (geolocation accuracy is dozens to hundreds of meters) | Telemetry (location, runtime), working hours, geofence settings | "Asset #9012 detected at a new location 2km from assigned site at 2:30 AM with no runtime" |
| E2 | Geofence Compliance | Track assets leaving their assigned site geofence. Useful for rental/leasing scenarios | Telemetry (location), site geofence config | "Asset #3456 has been outside Site X geofence for 3 days" |
| E3 | Check / Inspection Compliance | Track adherence to scheduled machine checks and maintenance. Non-compliance is a safety and reliability risk | Events (checks, maintenance), schedule data | "72% of scheduled weekly checks completed on time. Site Y has 45% compliance" |
| # | Use Case | Description | Uses Data From | Example Output |
|---|---|---|---|---|
| F1 | Pay-Per-Use Billing → M2, M34 | Usage-based billing using runtime telemetry. Accurate billing without manual meter reads | Telemetry (runtime), asset billing rates | "Asset #1234 ran 142.5 hours in March. Invoice generated based on contracted rate" |
| F2 | Total Cost of Ownership → M8, M13, M16 | Full lifecycle cost per asset: purchase + maintenance + repair + parts + labor + downtime | Costs, asset purchase data, tickets, service history | "Average 3-year TCO for i-mop XL calculated. Repair costs account for 35%" |
| F3 | Warranty Optimization → M7, M9 | Identify assets approaching warranty expiration with high maintenance indicators. Prioritize claims before expiry | Asset warranty dates, telemetry (health indicators), costs | "12 assets with warranties expiring in 30 days have above-average maintenance costs" |
| F4 | Cost Allocation by Site | Break down costs per site, cost center, or department for financial reporting and chargeback | Costs, site/asset cost centers | Monthly cost reports by site and cost type |
| F5 | Lease/Rental Contract Optimization → M13 | Track assets approaching contract end dates. Cross-reference with utilization to decide: renew, return, or purchase | Asset ownership data, leasing dates, utilization | "Leased asset #2345 has 2 months remaining and 15% utilization — recommend return" |
| # | Use Case | Description | Uses Data From | Example Output |
|---|---|---|---|---|
| G1 | Anomaly Detection | Unsupervised anomaly detection across all telemetry dimensions simultaneously. Catches patterns no human would look for | Full telemetry time series | "Asset #7890: runtime steady but vibration profile changed significantly 2 weeks ago — possible mechanical issue" |
| G2 | Remaining Useful Life (RUL) | Predict how many operating hours until a component needs service, based on degradation curves of similar assets | Telemetry (historical curves), service history, asset type | "Asset #4567 battery estimated RUL: 450 operating hours (±80 hours, 90% confidence)" |
| G3 | Optimal Maintenance Scheduling | Determine the maintenance interval that minimizes total cost (maintenance + unexpected failure + downtime) | Telemetry, service history, costs, tickets | "Optimal brush replacement for i-mop XL at high-traffic sites: every 800 hours (currently scheduled at 1,000)" |
| G4 | Operator Behavior Profiling → M26, M56 | Cluster usage patterns to identify different operator behaviors (hard on equipment, neglect charging, etc.) | Telemetry (vibration, runtime intervals, charging patterns), site | Segments: "Careful" (low vibration, regular charging), "Aggressive" (high vibration, deep discharge) |
| G5 | Spare Parts Demand Forecasting → M12, M22 | Predict future parts consumption based on fleet runtime accumulation and historical usage rates | Service history (parts used), telemetry (runtime), costs | "Projected brush consumption for Q2: 145 units across all sites (±12 at 95% CI)" |
| G6 | Charging Pattern Optimization → M15 | Analyze when/how assets are charged (inferred from voltage recovery patterns). Recommend optimal schedules | Telemetry (voltage, runtime intervals, time-of-day) | "Partial charges during shifts lose battery capacity 30% faster than full overnight charges" |
This section focuses exclusively on insights that directly save or generate money for i-team. Each use case has an explicit commercial mechanism: either it reduces i-team's costs, increases what i-team can charge, or gives end customers a financial reason to buy/upgrade IoT services.
Note
Branding: i-team markets the ToolSense platform as i-link. All customer-facing references below would be branded as i-link. The customer never sees "ToolSense."
Important
Key context: i-team currently struggles to sell the IoT subscription to end customers. The use cases below should be evaluated through the lens of: "Does this make the IoT subscription compelling enough that customers want it?" The most impactful use cases solve a concrete, pre-existing problem (compliance proof, labor savings, battery costs) — not abstract analytics.
| # | Use Case | How It Makes Money | Example |
|---|---|---|---|
| M0 | Tender Compliance | IoT is increasingly mandatory in tenders. Without it: disqualified. With analytics + compliance reporting: wins against competitors who only check the IoT box | Tender-ready capability sheet: "runtime tracking, compliance reporting, predictive maintenance, sustainability metrics" |
| M1 | Cleaning Compliance Proof | Contract cleaners must prove cleaning was performed. IoT provides tamper-proof, automated proof — the single strongest sales argument for IoT | "Site X: i-mop operated 06:00-08:15 and 14:00-16:30. Total: 4h 45min. SLA target: 4h. Compliant." |
| M2 | Equipment-as-a-Service (EaaS) | Usage-based pricing transforms one-time hardware sales into recurring revenue. Lower entry barrier for customers, higher lifetime value for i-team | Automated monthly invoices based on actual runtime: per-hour, per-day, or minimum + overage |
| M3 | Data-Backed Sales Advantage | Aggregated fleet data proves i-mop superiority with real telemetry, not marketing claims. Justifies premium pricing | "i-mop XL fleet average: 2,400h between service events. Industry average: 1,200h" |
| M5 | Customer Health / Churn Prevention | Declining utilization + rising tickets = churn risk. Early intervention saves the entire future revenue stream | "Customer ABC: utilization dropped 30%, ticket volume up 2x. Risk: HIGH" |
| M6 | End Customer Business Case | Give customers data to justify the i-mop investment to their own management — removes the "convince my boss" barrier | "Your 5 i-mops cleaned 12,000 m² in 180h. Equivalent manual effort: ~450 labor hours" |
| M7 | Usage-Based Warranty Upsell | Price extended warranties by actual runtime/vibration. Light-use = cheaper (low risk). Heavy-use = higher (fair pricing). High-margin recurring revenue | "Asset at 1,800h, moderate vibration. Warranty expires in 60 days. Recommended renewal tier: [X]" |
| M8 | Certified Pre-Owned Program | Telemetry provides objective condition assessment for returned assets → data-backed resale at higher prices | "i-mop #5678: 1,200h, battery 88%, Grade A — suitable for resale with 6-month warranty" |
| # | Use Case | How It Makes Money | Example |
|---|---|---|---|
| M9 | Warranty Claim Validation | Voltage/vibration data proves misuse vs. product defect. Reduces warranty costs, shifts conversation to customer education | "Claim: battery failure at 400h. Data: 47 deep discharge events. Fleet average: 3. Root cause: improper charging" |
| M10 | Service Operation Cost Reduction | Remote diagnostics avoids unnecessary visits. Parts pre-positioning avoids second visits. Route optimization reduces travel | "Q1: 45 tickets resolved remotely (no visit). Travel per visit reduced 35% via batching" |
| M11 | R&D Prioritization | Fleet-wide failure data tells engineering exactly which component to fix first for maximum cost impact | "#1 failure: brush motor bearing (28% of repairs, avg at 2,100h). Fix this first" |
| M12 | Spare Parts Forecasting | Runtime accumulation makes parts demand predictable. Less working capital, no rush orders, no stockouts | "Q2 forecast: 85 brush sets, 23 batteries, 12 valve kits. Current stock covers 60%" |
| M13 | Dynamic Leasing Residual Value | Telemetry reveals exact asset condition at lease end — accurate residuals, competitive leasing pricing | "Lease ending Q2: 22 Grade A, 6 Grade B, 2 Grade C (recommend refurbishment)" |
These make the IoT subscription worth paying for. The stronger these are, the easier i-team can sell IoT.
| # | Use Case | How It Makes Money | Example |
|---|---|---|---|
| M14 | Fleet Right-Sizing | Show customers they have more assets than needed. Builds trust → service contracts on remaining fleet | "Site X: 5 i-mops at 22% utilization. 3 units cover 100% of peak demand" |
| M15 | Battery Lifecycle Extension | Charging recommendations extend battery life. Concrete savings that justify the IoT subscription alone | "Current practices: 14-month battery life. With optimized charging: 20+ months" |
| M16 | Downtime Cost Quantification | Turns abstract "uptime" into a number the finance team understands | "340h downtime in Q1. Predictive maintenance would have caught 8 of 12 events before failure" |
| M17 | ESG / Sustainability Reporting | Increasingly mandatory in procurement RFPs. Automated sustainability data wins large contracts | "Co-botic water savings: 70%. Battery waste reduced 30% through optimized charging" |
| M18 | Multi-Site Benchmarking | Operations directors comparing sites daily become dependent on the platform → retention + organic growth | "15 sites ranked. Top: A (92/100). Bottom: K (54/100 — low utilization, high tickets)" |
| M19 | Proof for End Customer's Clients | Contract cleaners show building owners professional, monitored equipment → win contracts at higher rates | White-labeled report: "92 sessions, 100% coverage, avg 45min. All units operational" |
| M20 | Outcome-Based Contracts | Industry shifting from "pay for hours" to "pay for cleanliness." IoT proves outcomes, enables bonus/penalty clauses | "98.5% sessions completed. All zones met thresholds. Bonus eligibility: YES" |
| M21 | Labor Shortage ROI Proof | 40% of contractors expect worse recruitment. IoT quantifies labor savings — turns a claim into proof | "200 runtime hours = 600+ manual labor hours equivalent" |
| M22 | Consumables Auto-Replenishment | Runtime predicts when brushes/chemicals need replacing. Auto-ship = high-margin recurring revenue, no stockouts | "780h since last brush change. Shipment triggered, arriving 5 days before needed" |
| M23 | Smart Building Integration | Prove cleaning responded to occupancy triggers. Wins tenders that specify BMS integration | "Lobby spike at 12:00. Cleaning started at 13:05. Response time: 5 minutes" |
| M24 | Dealer/Distributor Enablement | IoT data makes distributors more effective → less likely to switch to competing OEM | Distributor portal: fleet health, proactive alerts, consumable reorder suggestions |
| M25 | Insurance Cost Reduction | IoT tracking creates auditable trail insurers recognize → lower premiums or faster recovery | "Fleet: all tracked, geofenced, 0 unrecovered thefts in 12 months" |
| M26 | Training Effectiveness | Compare before/after telemetry to prove training worked. Upsell training services with data-backed ROI | "Post-training: session time +50%, high-vibration ratio halved" |
| M27 | Industry Benchmarking Data | Anonymized cross-customer data as premium feature. Positions i-team as industry authority | "Healthcare avg: 6.2h/day. Your facility: 4.1h — 34% below benchmark" |
| M42 | QR Self-Service for End Users | End users scan QR on any i-mop to report problems, check status, complete inspections — without needing a login. Reduces support overhead, speeds up issue reporting | Cleaner scans QR → sees battery status → taps "Report Problem" → fills form with photo → ticket created |
| M43 | Configurable Inspection Checklists | i-team defines inspection checklists with conditional branching, signatures, photos, tables. Ensures compliance and safety across all sites | "Brushes OK? → YES → next. NO → which brush? → auto-creates ticket + auto-assigns dealer" |
| M44 | Ticket-to-Work-Order Pipeline | QR ticket → auto-converted to work order → assigned to dealer → tracked through completion with full cost tracking. End-to-end service lifecycle | "Ticket #201 → Work Order #45 → Dealer → Completed 48h → Cost recorded" |
| M45 | Webhook Integration to ERP/CRM | i-team connects i-link to their own systems via real-time webhooks. Ticket created → push to CRM. Asset updated → sync to ERP. No polling, no manual export | Webhook on ticket creation → i-team CRM creates case → dealer notified in their own system |
| M46 | Offline Inspections | Technicians complete checklists in basements/warehouses without connectivity. Data syncs automatically when back online. No paper forms | 15-point checklist completed offline → walks upstairs → syncs → ticket auto-created |
Tip
ToolSense will soon add full support for i-team's co-botic product family, including remote control and cleaning map visualization. This unlocks an entirely new data layer that manual i-mops cannot provide — and closes the competitive gap with FieldBots, Avidbots, and ICE Cobotics.
i-team co-botic product line:
| Product | Type | Autonomy | Sensors | Key Data |
|---|---|---|---|---|
| i-walk | i-mop XL attachment | Semi-autonomous (Autofill, Teach & Repeat) | Obstacle detection | Routes, runtime, autonomous vs. manual split |
| co-botic 45 | Robotic scrubber-dryer | Fully autonomous | 2D LIDAR, 2x 3D TOF, 4x ultrasonic | Cleaning maps (covered/uncovered), water usage, task duration, route data |
| co-botic 65 | Ride-on robotic scrubber | Self-navigating | Navigation sensors | Route optimization, battery management |
| co-botic 1700 | Portable robotic vacuum | Autonomous | Navigation sensors | Area cleaned, runtime |
| co-botic 1900 | Hotel robotic vacuum | Autonomous (Drop & Go) | Navigation sensors | Area cleaned, runtime |
The co-botic 45 is particularly data-rich: LIDAR cleaning maps, water consumption tracking, Wi-Fi + optional SIM. This is the same data quality FieldBots and Avidbots use as their primary selling point.
| # | Use Case | How It Makes Money | Example |
|---|---|---|---|
| M28 | Cleaning Maps / Proof-of-Clean | LIDAR maps show exactly what was cleaned vs. missed — the #1 feature that closes tenders against FieldBots and Avidbots. Manual i-mops can't do this (geolocation too coarse), but co-botics can | "485 m² of 500 m² covered (97%). 2 areas missed due to obstacles. Water: 8.2L" |
| M29 | Combined Fleet Analytics | Unified dashboard for mixed fleets (i-mops + co-botics). No competitor offers this — unique differentiator | "co-botic: 1,200 m² (95% coverage map). 3 i-mops: 6.8h runtime. Combined: 92% site coverage" |
| M30 | Co-Botic ROI Justification | Hard data (area/hour, water savings, labor freed) to justify the larger co-botic investment. Without data, sales depend on demos and promises | "1,400 m²/day autonomous. Water saving: 60L/day. Operator time freed: 2.5h/day" |
| M31 | Remote Fleet Control | Start/stop sessions, update routes from i-link. Turns passive monitoring into active daily tool — strongest retention driver | "3 co-botics across 2 sites. [Start] [Pause] [Reroute] controls. Error: obstacle at dock" |
| M32 | Predictive Route Optimization | AI optimizes routes from historical cleaning maps — less water, less battery, better coverage. Gets smarter over time | "12% reduction in cleaning time, 8% improvement in coverage after optimization" |
| M33 | Water & Chemical Tracking | Measured consumption feeds ESG reports (M17), tender responses (M0), and auto-replenishment (M22) | "Fleet used 2,800L. Manual equivalent: 9,300L. Saving: 70%" |
| M34 | Pay-Per-Square-Meter | Bill per m² cleaned (exact for co-botics via LIDAR, estimated for i-mops). Customer pays for output, not input | "co-botic: 18,500 m² measured. i-mop: 26,500 m² estimated. Total: 45,000 m²" |
Tip
Unlike single-OEM platforms (Tennant IRIS, Nilfisk TrackClean, ICE i-SYNERGY), ToolSense is a multi-party ecosystem where OEMs, dealers, and FM companies share a single platform. FieldBots also supports multiple robot manufacturers, but focuses on robotic fleet management only — ToolSense covers the full asset lifecycle including manual equipment, ticketing, costs, parts, and work orders.
| # | Use Case | Description | Example |
|---|---|---|---|
| N1 | Seamless Service Chain | End customer creates ticket via QR → routed to dealer → escalated to i-team if needed. Full audit trail visible to all parties. No email/phone chains, no duplicate data entry | Ticket #201 created by FM company → dealer notified in 2 min → resolved on-site → i-team sees resolution for warranty tracking |
| N2 | Cross-Party Telemetry Visibility | End customer sees their fleet. Dealer sees their customers' fleets. i-team sees global fleet. Each party sees what's relevant — one dataset, three views, zero data export/import | Dealer dashboard: "32 customers, 480 i-mops. 5 assets with battery alerts. 3 tickets pending." |
| N3 | Dealer Performance Benchmarking | i-team compares dealers on response time, resolution rate, parts consumption, customer satisfaction. Identify top performers and those needing support | "Dealer A: avg resolution 18h, 95% first-visit fix. Dealer B: avg 72h, 60% first-visit — investigate parts availability" |
| N4 | Parts Ordering Through the Chain | i-mop approaches brush threshold → alert to dealer → dealer sees stock across all their customers → bulk order to i-team. Telemetry-driven demand flows up the supply chain | "Dealer X: 12 customers will need brush sets in next 30 days (predicted from runtime). Auto-generated purchase order to i-team" |
| N5 | Warranty Flow Across Parties | Dealer handles first-line service, i-team handles warranty. Telemetry data (voltage, vibration, runtime) flows to both automatically — no diagnostic reports to email, no back-and-forth | Dealer submits warranty claim with telemetry attached. i-team validates in minutes (M9) instead of days of investigation |
| N6 | Mixed-Fleet Dashboard for FM Companies | FM companies manage i-team equipment alongside other manufacturers (Kärcher, Nilfisk, etc.) in one dashboard. i-team benefits: their equipment is visible alongside competitors, and if TCO or reliability is better, it shows | FM company: "Total cleaning fleet: 40 i-mops, 20 Kärcher, 15 Nilfisk. One dashboard, one compliance report, one cost view" |
| N7 | Zero-Friction Adoption | When an FM company already on ToolSense adds i-team equipment, there's no new platform to learn. The equipment appears in their existing dashboard instantly. Dramatically lowers the barrier to choose i-team | FM company already using ToolSense for Hako fleet → adds 10 i-mops → visible immediately, no onboarding, no training |
| N8 | Cross-Manufacturer Compliance Reporting | End customer needs one cleaning compliance report covering their entire fleet (i-mop + other brands). Only possible if all equipment is on the same platform — and ToolSense is the only multi-OEM platform | "March compliance: all 55 machines across 3 manufacturers met SLA. One report, one dashboard" |
| N9 | Ecosystem-Wide Benchmarking | Anonymized data across all OEMs on ToolSense enables cross-manufacturer comparison. i-team can prove their equipment outperforms competitors — not with marketing, but with real fleet data from shared customers | "i-mop avg uptime: 97.2%. Industry average across all ToolSense-connected machines: 91.8%" |
Key industry trends that make these use cases timely (based on 2025-2026 market research):
- 62% of commercial cleaning companies are investing in IoT-enabled tools (2025 survey)
- 80% of large contract cleaning firms expected to use digital platforms for quality audits and workforce accountability by 2026
- 40% of cleaning contractors expect recruitment challenges to escalate — driving automation and efficiency investment
- Outcome-based contracts are replacing input-based contracts in public and private tenders — requiring objective cleaning proof
- ESG/sustainability metrics from vendors are increasingly required in procurement RFPs, especially in healthcare and real estate
- The commercial cleaning services market is projected to grow from $225B (2025) to $336B (2031) at 6.9% CAGR
- Smart building integration (occupancy sensors, BMS) is moving from pilot to standard in new commercial construction
- FieldBots already integrates with 11 robot manufacturers (including i-team) as a neutral fleet management layer — validating the multi-manufacturer approach and raising end-customer expectations for brand-agnostic fleet analytics
- Tender compliance: IoT connectivity is increasingly a mandatory specification, not an optional feature, in public and corporate procurement
| # | Use Case | How It Makes Money | Example |
|---|---|---|---|
| M55 | Clean Score / Performance Grade | Color-coded per-site score (green/yellow/red). Non-technical managers get it instantly. Basis for outcome-based contracts (M20) | "Site A: 92 (green). Site B: 78 (yellow). Site C: 45 (red — 2 i-mops unused)" |
| M56 | Operator Identification | WHO used which machine WHEN. Enables accountability, training targeting, performance management. Strong retention driver | "Operator A: 6.2h, efficiency 94%. Operator B: 3.1h, efficiency 71% — recommend training" |
| M57 | Component Wear Tracking | Compare actual hours vs. rated lifespan per component. Early warning before failure. Can save up to 20% in machine operating costs | "Brush motor: 1,850h / 2,000h rated (93% — replace in 2 weeks). Battery: 80% — monitor" |
| M47 | Transport vs. Cleaning Time | Separate unproductive transport from active cleaning. Reveals hidden inefficiency, feeds fleet right-sizing | "72% cleaning, 18% transport, 10% idle. Site X: 35% transport — investigate staging" |
| M48 | Configurable Targets | Customers define success (min runtime/day, sessions/week). Platform tracks actual vs. target. Upgrades from "data" to "management tool" | "4 of 5 sites met targets. Site B missed Tuesday + Thursday. Fleet: 89%" |
| M49 | Savings Quantification | Platform shows exactly how much IoT saved the customer. Closes the ROI loop — #1 churn prevention tool | "March: battery savings [X], 3 emergency repairs prevented, fleet optimization would save [Y]" |
| M50 | Feature Adoption Tracking | Are customers using premium features they paid for? Low adoption = churn risk. Surfaces training needs and upsell opportunities | "40% of i-mops never used eco mode. 2 i-walks purchased, 0 autonomous sessions" |
| M51 | Crowdsourced Benchmarking | Anonymized performance data across all ToolSense-connected fleets. End customers compare operations against industry peers — cross-manufacturer | "Your fleet: 5.1h runtime/day. Peer average (similar facility size): 6.4h. Top 10%: 7.8h" |
| M52 | Consumables Marketplace | In-platform marketplace where dealers offer spare parts, brushes, chemicals directly to end customers. Integrated with usage predictions (M22) | "Brush set needed in ~2 weeks. 3 dealers offer compatible parts. [Order from preferred dealer]" |
| M53 | TV / Wall Dashboard Mode | Dedicated large-screen display for operations centers or building lobbies. Live fleet status, Clean Score, active co-botics — always visible | Lobby screen: "4 machines active. Cleanliness score: 94. Next session: 14:00" |
| M54 | Automated Service Delivery Reports | Auto-generated PDF/Excel reports proving cleaning was performed — formatted for the end customer's client. Eliminates documentation burden | Weekly auto-report: "5 sessions completed, all zones covered, 0 incidents" |
Note
The use cases in this section focus on technical capabilities. For the commercial framing (revenue, cost savings), see Section 3.
i-team currently uses ToolSense for IoT runtime telemetry, inventory management, ticketing, and geofencing. However, the platform has significant additional capabilities that could unlock high-value combined insights. This section covers features not yet deployed for i-team and — more importantly — the cross-domain use cases that emerge when these features are combined with what is already in use.
| Feature | What It Does | Relevance to i-team |
|---|---|---|
| Vehicle / Trip Management | Full GPS fleet management for service vehicles: routes, distance, speed, fuel, driving events (harsh braking, speeding, crash detection), NFC driver ID, private/work trip classification, live position tracking | Service vans transporting i-mops, technician visits to customer sites, delivery vehicles |
| BLE Tag Mesh Network | Every i-mop tracker doubles as a BLE gateway, scanning nearby BLE-tagged items and reporting their location. Sensors: battery, temperature, humidity. Limitation: scans every 5+ min (presence tracking, not real-time) | i-mop fleet = distributed sensor network at zero extra cost. Tag accessories (batteries, docks, brush sets) to track via the mesh. Stationary gateways at warehouses for persistent indoor tracking |
| Working Hours & Non-Working Days | Per-asset weekly schedules (split shifts supported) + date-range holidays/shutdowns. Feeds into rules engine and trip classification | Detect off-hours usage, classify private trips, trigger alerts for unauthorized activity |
| Parts Inventory | Spare parts tracking per site: stock levels (current/min/max), unit costs, movements between sites, automatic low-stock alerts | Predict and pre-position parts based on fleet runtime (feeds M12, M22) |
| Reservations | Time-based asset booking with start/end dates and multi-asset support | Schedule shared equipment across floors, shifts, or teams |
The real power is in combining features. Each use case below crosses at least two domains.
| # | Use Case | Combines | Description | Example |
|---|---|---|---|---|
| H1 | Accessory Inventory Audit | BLE + i-mop mesh + trips | BLE-tag accessories (batteries, docks, brush sets). Every i-mop that powers on scans nearby tags and reports what it "sees." Service vans extend the mesh. Zero-effort inventory | "145 of 150 batteries confirmed. 3 not seen in 10+ days. 2 at wrong sites" |
| H2 | Delivery Confirmation | Telemetry + trips + geofence | Van transports i-mop → i-mop geolocation confirms arrival at new site + van trip confirms stop. BLE confirms accessory delivery. Auto-updates site assignment | "i-mop #5678 delivered to Site Y by Van-03 at 14:22. 2 batteries confirmed via BLE" |
| H3 | Technician Route Optimization | Trips + tickets + live position | Ticket created → system finds nearest van via live GPS → auto-assigns. Tracks departure, arrival, dwell time | "Response time improved from 4.2h to 1.8h. Van-05 handled 3 tickets with optimal routing" |
| H4 | SLA Verification | Trips + tickets + geofence | Van enters site geofence at 10:15, exits 11:42 → tamper-proof on-site time. Cross-reference with ticket resolution | "Q1 SLA compliance: 94%. Avg on-site: 62min. 3 visits under 15min flagged" |
| H5 | Driver Behavior vs. Cost | Trips + costs + tickets | Correlate harsh driving events per driver with vehicle maintenance costs. Aggressive drivers = more wear | "Driver A: 3.2x more harsh braking. Assigned vehicles: 40% higher brake costs" |
| H7 | Parts Pre-Positioning | Telemetry + parts + BLE + trips | i-mop at 780h → 20h from brush threshold. Parts check: Site X has 0 stock. Alert: "Pre-position brush set." Van delivers, confirmed via BLE | "12 sites pre-positioned. Zero-stock delays reduced from 18% to 3%" |
| H8 | Offline Asset Recovery | Telemetry + BLE + trips | Tracker offline 14 days? Other i-mops / vans may detect its BLE beacon passively. Dispatch nearest van on search route | "8 of 11 offline assets located within 48h via BLE mesh" |
| H9 | Environmental Monitoring | BLE sensors + i-mop gateways | BLE temp/humidity tags in storage rooms. i-mops act as gateways, collecting readings when nearby. Alert on freezing/heat | "3 sites below 5°C. These sites: 2.8x battery failure rate" |
| H10 | Smart Scheduling | Telemetry + working hours + reservations | Optimize shared i-mop schedules based on actual usage patterns per floor/zone, not fixed rotation | "Reduces fleet from 5 to 3 i-mops at Building A while maintaining 100% coverage" |
| H11 | Service Fuel Optimization | Trips + tickets + sites | Cluster ticket resolutions geographically. Combine with planned deliveries for multi-stop trips | "Average km/ticket reduced from 28 to 16. Significant fuel and CO2 savings" |
| H13 | Zone Dwell Time | BLE beacons + site hierarchy | BLE beacons per zone (lobby, floors, restrooms). i-mop detects which beacon is nearby → infers zone. Indoor tracking without GPS | "Restrooms: 35% of cleaning time but 10% of area — understaffed zone" |
| H14 | Accessory Presence | BLE + site assignments | Track if accessories still appear in periodic BLE scans at their assigned site. Presence/absence check (5+ min intervals) | "4 docks confirmed. 1 dock not seen in 48h — investigate" |
Combines geolocation, runtime, working hours, and BLE for high-confidence theft detection. Geolocation is coarse (dozens to hundreds of meters), so this detects site-level relocations, not movements within a building. Any single signal might be a false positive — three or more together = high confidence.
| Signal | What It Detects |
|---|---|
| Geofence exit | i-mop geolocation leaves assigned site area |
| No runtime | Location change without motor activity (being carried, not operated) |
| Off-hours | Location change outside defined working hours |
| Unknown location | Asset at a location with no known sites nearby |
| Accessory left behind | BLE-tagged dock still at site, but i-mop left — abnormal separation |
Example: "LOW: i-mop #3456 outside assigned site at 18:30 (could be late shift)." → "HIGH: Unknown location at 22:00, no runtime, no known sites nearby. Likely theft."
Every data source combined into a complete asset biography from commissioning to retirement:
| Date | Event | Source |
|---|---|---|
| 2024-01-15 | Commissioned at Site A | Asset created |
| 2024-01-16 | Delivered by Van-02 | Trip + geolocation confirm arrival |
| 2024-01-17 | First runtime: 2.3h | Telemetry |
| 2024-03-22 | 500h runtime milestone | Telemetry |
| 2024-04-10 | Ticket: "Water not dispensing" | QR scan by end-user |
| 2024-04-11 | Technician visited, 45min on-site | Van-05 trip to Site A |
| 2024-04-11 | Valve replaced | Ticket resolved, parts, cost |
| 2024-06-15 | Moved to Site B | Geolocation + Van-02 trip |
| 2024-08-30 | Battery degradation detected | Voltage trend -8% over 2 months |
| 2024-09-15 | Proactive battery replacement | Parts pre-positioned |
| 2024-12-01 | Vibration shift → brush replacement | Predictive maintenance alert |
| 2025-06-01 | Retired at 2800h | Full TCO calculated |
Compare lifecycle costs and patterns across the entire fleet to identify systemic issues and optimize future purchasing decisions.
interface UnifiedTrip {
id: string;
vehicleAssetId: string;
// Route
startTime: string; // ISO datetime
endTime: string | null; // null if trip is active
isActive: boolean;
startLocation: UnifiedAddress;
endLocation: UnifiedAddress | null;
route: string; // Encoded polyline
waypoints: UnifiedWaypoint[];
// Metrics
distance: number; // Kilometers (actual route)
linearDistance: number; // Kilometers (straight-line)
duration: number; // Seconds
avgSpeed: number; // km/h
maxSpeed: number; // km/h
fuelConsumed: number | null; // Liters
fuelConsumedPercent: number | null;
// Driver
driverId: string | null; // NFC-based identification
driverName: string | null;
responsiblePerson: string | null;
// Classification
isPrivate: boolean | null; // Outside working hours
// Driving Events
drivingEvents: UnifiedDrivingEvent[];
}
interface UnifiedWaypoint {
latitude: number;
longitude: number;
speed: number; // km/h at this point
timestamp: string;
distance: number; // km from previous waypoint
direction: number; // Heading in degrees (0-360)
}
interface UnifiedDrivingEvent {
type: 'HARSH_ACCELERATION' | 'HARSH_BRAKING' | 'HARSH_CORNERING' | 'CRASH' | 'SPEEDING';
latitude: number;
longitude: number;
speed: number;
timestamp: string;
}
interface UnifiedAddress {
street: string | null;
city: string | null;
postalCode: string | null;
country: string | null;
latitude: number;
longitude: number;
}
interface UnifiedVehicleLivePosition {
vehicleAssetId: string;
latitude: number;
longitude: number;
speed: number;
direction: number; // Heading degrees
isMoving: boolean;
timestamp: string;
currentTripId: string | null;
}interface UnifiedBleScan {
assetId: string; // The asset being tracked (has BLE tag)
tagId: string; // BLE beacon identifier
gatewayAssetId: string; // The asset that performed the scan
gatewayImei: string;
// Location (from gateway)
latitude: number;
longitude: number;
uncertainty: number; // Meters
isValidLocation: boolean;
// BLE Tag Sensors (slow-changing values — scan interval is 5+ minutes)
batteryLevel: number | null; // Tag battery (0-100)
temperature: number | null; // Celsius
humidity: number | null; // Percentage
scanTime: string; // ISO datetime
}
interface UnifiedBleLastSeen {
assetId: string;
tagId: string;
lastSeenAt: string; // ISO datetime
lastSeenByGateway: UnifiedAssetRef;
lastKnownLatitude: number;
lastKnownLongitude: number;
daysSinceLastSeen: number;
isAtExpectedSite: boolean; // Matches current site assignment history
}interface UnifiedPart {
id: string;
name: string;
type: string;
brand: string | null;
vendor: string | null;
// Location
siteId: string;
area: string | null; // Storage area within site
// Stock Levels
availableQuantity: number;
minQuantity: number; // Low-stock alert threshold
maxQuantity: number;
unitOfMeasure: string;
unitCost: number;
currency: string;
totalStockValue: number;
// Status
isCriticalStock: boolean; // availableQuantity < minQuantity
responsiblePerson: string | null;
}interface UnifiedCoBoticSession {
id: string;
assetId: string; // The co-botic asset
siteId: string;
// Session
startTime: string; // ISO datetime
endTime: string;
duration: number; // Seconds
mode: 'AUTONOMOUS' | 'MANUAL' | 'REMOTE';
// Cleaning Map (LIDAR-based)
cleaningMap: {
totalArea: number; // Total mapped area in m²
cleanedArea: number; // Actually cleaned area in m²
coveragePercent: number; // cleanedArea / totalArea * 100
missedZones: { // Areas not cleaned
reason: 'OBSTACLE' | 'NO_GO_ZONE' | 'UNREACHABLE';
area: number; // m²
}[];
mapImageUrl: string | null; // Visual map (green = cleaned, white = missed)
};
// Route
routeName: string | null; // Named route (Teach & Repeat)
routeType: 'AUTOFILL' | 'TEACH_REPEAT' | 'MANUAL';
distanceTraveled: number; // Meters
// Resources
waterConsumed: number | null; // Liters (co-botic 45)
batteryStart: number; // Percentage at session start
batteryEnd: number; // Percentage at session end
// Quality
obstaclesEncountered: number;
emergencyStops: number;
errors: string[];
}
interface UnifiedCoBoticStatus {
assetId: string;
status: 'CLEANING' | 'IDLE' | 'CHARGING' | 'ERROR' | 'OFFLINE';
currentSession: UnifiedCoBoticSession | null; // If status = CLEANING
batteryLevel: number;
nextScheduledSession: string | null; // ISO datetime
lastSessionSummary: {
endTime: string;
coveragePercent: number;
waterConsumed: number | null;
} | null;
}interface UnifiedGeofenceEvent {
assetId: string;
siteId: string;
type: 'ENTER' | 'EXIT';
timestamp: string;
latitude: number;
longitude: number;
geofenceShape: 'CIRCLE' | 'RECTANGLE' | 'POLYGON';
}The unified data model can be delivered through two channels:
-
In-Platform Insights (i-link) — Dashboards, reports, alerts, and visualizations directly within the i-link platform. Best for: daily operational use, real-time monitoring, performance scoring.
-
External API — A dedicated API that i-team or their end customers can query programmatically. Best for: integration with existing BI tools, custom analytics, data warehousing, building custom applications on top of the data.
The exact API design, endpoints, authentication model, and data freshness guarantees are to be discussed based on i-team's priorities and use cases.
The use cases from this document grouped by urgency and commercial impact. Suggested sequencing — to be discussed and adjusted based on i-team's priorities.
| Use Case | Why It Matters |
|---|---|
| Cleaning compliance reports (M1, M20) | Timestamped proof of when/where cleaning happened — needed for tender compliance and outcome-based contracts |
| Clean Score / performance grading (M55, M48) | Simple, color-coded per-site view of whether cleaning targets are met — what facility managers actually want to see |
| QR self-service for end users (M42) | Scan QR on any i-mop to report problems, check status, complete inspections — without login. Already built in the platform |
| Configurable inspection checklists (M43) | Brand-specific checklists with conditional logic, signatures, photos. Ensures compliance across all sites. Already built |
| Automated service delivery reports (M54) | Auto-generated PDF/Excel reports proving cleaning was performed — eliminates documentation burden for contract cleaners |
| Data export API | Foundation for i-team and end customers to build custom analytics on top of i-link data |
Important
IoT is becoming mandatory in tenders. Without compliance reports and performance scoring, i-team loses bids to competitors. QR self-service and inspection checklists are already built in the platform — these are quick wins. Coverage maps are not feasible for manual i-mops (geolocation too coarse), but co-botic LIDAR maps (Priority 2b) close this gap.
| Use Case | Why It Matters |
|---|---|
| Battery health monitoring (A3, A4, M15) | Degradation tracking and charging behavior analysis — extends battery life, the most expensive consumable |
| Warranty claim validation (M9) | Voltage/vibration data proves misuse vs. product defect — reduces warranty costs for i-team |
| Component-level wear tracking (M57) | Rated hours vs. actual hours per component — prevents failures before they happen |
| Utilization analytics & fleet right-sizing (B1, B2, M14) | Shows end customers which assets are over/underutilized — builds trust, optimizes fleet size |
| Ticket-to-work-order pipeline (M44) | End-to-end service lifecycle from QR ticket to completed work order with cost tracking. Already built |
| Savings quantification (M49) | Shows the customer exactly how much IoT saved them — justifies the subscription |
Note
Immediate, quantifiable savings for both i-team (fewer warranty replacements) and end customers (longer battery life, optimized fleet). Creates the ROI story that makes the IoT subscription worth paying for.
| Use Case | Why It Matters |
|---|---|
| Cleaning maps from co-botic LIDAR (M28) | Visual proof-of-clean with covered/uncovered areas — the #1 competitive feature in robotic cleaning |
| Remote control & monitoring (M31) | Start/stop sessions, update routes from i-link — turns passive monitoring into active operations tool |
| Combined fleet dashboard (M29) | Unified view of manual i-mops + co-botics on one site map — no competitor offers this |
| Water & chemical consumption tracking (M33) | Measured resource usage from co-botic 45 — feeds ESG reporting and sustainability tenders |
| Co-botic ROI reports (M30) | Area cleaned, water savings, labor freed — hard data to justify co-botic investment |
Note
Co-botic adoption is growing and competitors already offer cleaning maps. i-team needs this to compete in robotic tenders. Can be developed in parallel with 2a.
| Use Case | Why It Matters |
|---|---|
| Pay-per-use / EaaS billing (M2, M34) | Usage-based pricing transforms one-time hardware sales into recurring revenue |
| Consumables auto-replenishment (M22) | Runtime-based auto-shipment of brushes, chemicals — high-margin recurring revenue, no stockouts |
| Site benchmarking (M18) | Multi-site customers compare performance across locations — creates daily dependency on i-link |
| Webhook integration to ERP/CRM (M45) | Real-time push to i-team's own systems — no polling, no manual export. Already built |
| Offline inspections (M46) | Field workers complete checklists without connectivity — data syncs when back online. Already built |
| Aggregated KPIs via API | Pre-computed utilization, reliability, battery health scores — ready-to-use for customer BI tools |
Note
Once Priorities 1-2 prove IoT value, these create new revenue streams and make the subscription indispensable.
| Use Case | Why It Matters |
|---|---|
| Service history import | i-team's own service records combined with telemetry — enables the highest-value predictive use cases |
| Predictive repair timing & RUL estimation (A1, G2) | Predict when specific components will need replacement based on fleet-wide patterns |
| Spare parts demand forecasting (G5, M12) | Fleet-wide runtime accumulation predicts parts consumption — reduces inventory costs |
| Operator identification & tracking (M56) | Who used which machine when — enables training effectiveness measurement and accountability |
| Ticket clustering for product improvement (C2, M11) | NLP on ticket data reveals top failure modes — directs R&D investment |
Note
Requires months of historical data accumulation from Priorities 1-3 to build reliable baselines and predictive models.
| Use Case | Why It Matters |
|---|---|
| AI/ML anomaly detection (G1) | Catches patterns no human would look for — early warning across all telemetry dimensions |
| Smart building / BMS integration (M23) | Cleaning responds to occupancy sensor triggers — growing requirement in new commercial buildings |
| Industry benchmarking data (M27) | Anonymized cross-customer insights — positions i-team as the industry authority |
| Predictive route optimization for co-botics (M32) | AI optimizes cleaning routes over time — more efficient, less water, better coverage |
Note
Differentiates i-team from all competitors but requires the largest fleet-wide dataset and most sophisticated analytics.