Key Benefits of MAP

  • Integrated analytics stack reduces the complexity in setting up new applications

  • Web client interface lets you configure and manage MAP. Everything powered by our API allowing you to configure and extract data

  • Modular platform with ability to run multiple instances of each module. Modules include: Importer, Raw Data processor, ItemFactory, Calculator and Invalidator

  • You have control. Dynamically change the underlying data structure of your application. Add new raw data sources and new calculations as your requirements change

  • Data Blocks and Data Versioning reduce disk IOPS and deliver lightning fast calculations

  • Fully modular and uses MongoDB as datastore. Can scale to any size

Example applications

  • SMART Water and Electricity networks

  • Complex WHAT-IF scenarios

  • Monitoring and analytics for large portfolios of meters

  • Internet of Things deployments and applications

  • Collection, aggregation and analytics of user journeys and devices

  • Integrating real time and predicted weather with asset information

Key features that make MAP unique


MAP includes 5 different modules that provide fully extensible functionality for importing, pre-processing, calculating, invalidating and creating Items. Therefore, multiple instances of each module can run on separate servers providing true scalability and to deliver an Integrated Analytics Stack.


Enables sub second import from multiple data sources and loads raw data into a temporary buffer. New Importers can be easily added for new data formats and types

Raw Data Pre-processor

Processes the raw data in the temporary buffer and stores it in the MongoDB database

Item Factories

Creates and updates the Item structure for each Entity. Item Factories can be called from the API or from the Web Client to automatically create new Entities or to update existing ones.


Sets the conditions under which an Item will be re-calculated. Invalidators can be time based (i.e. at a specific time), event based (i.e. when a new raw data point is added) or calcualtion based (i.e. when a calculation delivers a specific result.


Extracts Raw Data for the Item from the database and carries out the specific calculations for each Item created in the Item Factories


MAP supports a Calculation Queue that processes all the invalidated Items that require re-calculating. In addition, the MAP Calculation Queue operates in such a way that it is totally scalable and there is no limit to the number of Items placed on the queue. Item properties can be invalidated by API call or from a web client. An invalidated Item will automatically invalidate every dependent Item.


Data Blocks and Data Versioning are a key part of delivering MAP as an Integrated Analytics Stack

Data Blocks

Rather than loading and persisting all data for an Item, data can be broken up into chunks called Blocks. So, only the chunks of data that are demanded for a query, or as an input to a calculation, are loaded from the database (i.e. delay loading), and only the chunks of data that actually change need to be persisted. Blocks are typically used with unbounded, time-related data such as sample arrays, where the size of a Block is limited and the maximum number of Block samples depends on the size of a sample. This provides efficiencies in real-time processing, whereby data changes are localised and typically at the end of the data.

Data Blocks are transparent to the user. It is purely an internal mechanism to reduce traffic to/from the database. When requested or persisted, Data Blocks are held in memory for a time. This ensures future retrieval is temporarily faster as the data is expected to be in demand.

Data Versioning

Data Blocks are complimented by the MAP concept of Data Versioning. All Item data in MAP is versioned, including Blocks (as such referred to as child data). A version is simply a unique timestamp. It allows users to query for the relative age of data. Specifically, when it last changed, and for calculated Items when the last calculation started and completed. A client application can then tell if data has changed without having to load the data itself. There are additional non-data versions on an Item. I.E when its properties or list of child items last changed.

It is this versioning technique that allows MAP to efficiently detect when calculated items need recalculating (referred to as dirtying as calculation).


MAP supports any Data Type and a number are available as standard such as grids (block and vector), lookup and scalar and time series values. Fully extensible so users can create new Data Type specific to your IOT Solutions.


Configureable alarms for any Item or for the entire system.


Scheduled e-mailing of management reports. Only available as part of an overall hosted service.


A fully featured RESTful Analytics API is available to configure, upload and download your application.


MAP supports an unlimited grouping hierarchy and one that can dynamically be changed by adding/updating the appropriate Item Factory.