.NET Conf: Focus on Microservices
Did you miss the special .NET Conf all about building microservices with .NET? Watch the sessions on demand.

Microsoft's Real Estate and Security group uses ML.NET to make facilities management smarter

Microsoft Real Estate & Security

Products & services
Dynamics 365


Organization Size
Large (1000+ employees)


The Real Estate and Security (RE&S) group at Microsoft operates one of the most complex facilities infrastructures of any global company: a "global city" with 1,116 employee buildings and data centers in 112 countries. RE&S manages everything from food prep, to bus maintenance, to furniture ordering, to heating and cooling systems. Keeping this city running smoothly is a large undertaking, and RE&S relies on smart building automation to help control heating, ventilation and air conditioning, lighting, and other systems.

In Puget Sound alone, where Microsoft's headquarters is located, there are 100+ buildings with 33,000+ pieces of HVAC equipment. Each day, ~49M faults are collected from IoT-enabled devices that send device telemetry to third-party building management systems (BMS) such as ICONICS. IoT faults transferred from the BMS to Dynamics 365 Connected Field Service become alerts, and relevant alerts are converted to work orders. The work orders allow maintenance and repair to be scheduled for building assets.

Business problem

When the RE&S group first implemented the connector from ICONICS to Dynamics 365, each Energy Smart building was averaging about 2,000 faults per day from HVAC devices. The group was limited by how many buildings they could onboard to Dynamics 365, as ~2,000 x 100 = ~200K/day, which would overwhelm the database and be unwieldy for end users and technicians. There was a big need to pick the right faults and reduce the noise to help reduce the number of faults and predict which faults would likely become work orders.

So, the RE&S group decided to implement a Machine learning model (external to Dynamics 365), which could pick the right set of faults with a much higher probability of converting to work orders and removing the noise.


Microsoft's RE&S group decided to use ML.NET for several reasons. One reason was the familiarity of .NET technology among the team.

".NET is widely known in the RE&S group, and we have an overall great level of expertise with .NET technology among the development team. Using ML.NET allows us to overcome the technical knowledge gap of other data science frameworks, tools, and IDEs, allowing quick turnaround when implementing machine learning solutions."

Kundan Karma, Senior Software Engineer Microsoft

Additionally, the group found ML.NET easy to use, especially when using AutoML with ML.NET Model Builder in Visual Studio for model training. The RE&S group also felt that ML.NET was a cost-optimized solution for machine learning, and they were easily able to implement ML.NET both locally and in an Azure DevOps pipeline.

Impact of ML.NET

The RE&S group's ML.NET solution has had a significant impact. With their ML.NET models, which have ~99% accuracy, they have already seen a reduction of around 70-80% of the IoT alerts created in Dynamics 365. This has allowed the group to onboard more buildings safely, has helped reduce noise, and has brought focus to alerts that really need action to be taken.

The following dashboard shows the difference between two ML solutions for 7 days (for example, two different ML.NET models based on the type of devices and the device information):

Solution architecture

Microsoft's RE&S group uses an Azure DevOps pipeline for ML.NET model training and deployment as a service.

The IoT devices connected to the HVAC equipment send device telemetry to a third-party building management system called ICONICS, which runs various rules to determine if there's an IoT fault. The RE&S group then collects their training data and extracts all the faults from the database in ICONICS. They collect device data for two types of faults: regular faults and smart (or normalized) faults, which is then used to create two machine learning models based on the following features:

  • Type of Device
  • Normalized Score
  • Smart Score
  • % Flagged
  • Flagged Severity
  • Energy Savings Opportunity
  • Base Equipment Class
  • Fault Severity
  • Comfort Risk
  • Possible Causes

The group's training pipeline consists of the OneHotEncoding and Concatenation data transformations, and they use the LightGBM algorithm for binary classification.

When they have a trained ML.NET model, the group deploys their model as an Azure Function with an HTTP Trigger. These Functions are called by ICONICS to a Dynamics 365 connector that decides if the fault should be a work order or not.

Ready to Get Started?

Our step-by-step tutorial will help you get ML.NET running on your computer.

Supported on Windows, Linux, and macOS

Get Started