EnergyFM: Pretrained Models for Energy Meter Data Analytics
EnergyFM is a family of domain-specific Time Series Foundation Models (TSFMs) pretrained on large-scale real-world smart meter data for energy forecasting, anomaly detection, and classification.
EnergyFM is designed to provide strong zero-shot and transfer learning performance across heterogeneous buildings, regions, and operational contexts, while remaining lightweight and computationally efficient.
Overview
Smart energy meter data collected at fine temporal resolution across large building stocks enables critical applications such as short-term load forecasting, anomaly detection, and energy usage characterization. However, existing task-specific or building-specific models often fail to generalize across diverse building types and regions.
EnergyFM addresses this challenge by pretraining lightweight TSFMs on a large, diverse corpus of real-world electricity consumption data, enabling robust generalization and efficient downstream adaptation.
EnergyFM adapts IBMβs Tiny Time Mixers (TTM) and TSPulse architectures to the energy domain, resulting in two core models:
- Energy-TTM β optimized for short-term load forecasting
- Energy-TSPulse β multi-purpose representation model for anomaly detection and classification
Pretraining Dataset
EnergyFM is pretrained on EnergyBench, a large-scale real-world smart meter dataset available on Hugging Face:
π https://huggingface.co/datasets/ai-iot/EnergyBench
The dataset consists of:
- 76,217 residential and commercial buildings
- 1.26 billion hourly electricity consumption readings
- Multiple countries and climate zones
- Diverse building types and operational patterns
The scale and diversity of EnergyBench enable EnergyFM to learn daily, weekly, and seasonal consumption patterns and to generalize robustly to unseen buildings and regions.
Models
Energy-TTM
Energy-TTM is adapted from the Tiny Time Mixers (TTM) architecture and is designed for short-term load forecasting.
Default configuration:
- Context length: 168 hours
- Prediction horizon: 24 hours
- Task: short-term load forecasting
Energy-TSPulse
Energy-TSPulse adapts the TSPulse architecture and employs dual-space (time and frequency) modeling to learn robust representations of energy time series.
Default configuration:
- Context length: up to 512
- Lightweight and computationally efficient
- Suitable for both zero-shot and fine-tuned usage
Supported Tasks
Load Forecasting
Energy-TTM supports short-term electricity load forecasting under both zero-shot and fine-tuning regimes. It demonstrates strong generalization across residential and commercial buildings and outperforms traditional machine learning baselines and generic TSFMs in out-of-distribution settings.
Anomaly Detection
Energy-TSPulse detects point and contextual anomalies in smart meter data using joint timeβfrequency representations. It achieves state-of-the-art performance on the LEAD anomaly detection benchmark.
Classification
Energy-TSPulse supports appliance usage classification using transfer learning on low-frequency smart meter data, achieving competitive or superior performance compared to strong feature-based classifiers.
Getting Started
Clone the repository:
git clone https://github.com/srivnaman/EnergyFM.git
cd EnergyFM
Install dependencies:
pip install -r requirements.txt
Loading Pretrained Models
EnergyFM models are hosted on Hugging Face and can be loaded directly using from_pretrained.
Model Hub: π https://huggingface.co/sriv-naman-iisc/Energy-FM-v1
π’ Energy-TTM (Load Forecasting)
import torch
from tsfm_public.models.tinytimemixer import TinyTimeMixerForPrediction
device = "cuda" if torch.cuda.is_available() else "cpu"
model = TinyTimeMixerForPrediction.from_pretrained(
"sriv-naman-iisc/Energy-FM-v1", # Hugging Face model repository
revision="energy-ttm", # Loads Energy-TTM weights
num_input_channels=1,
).to(device)
π΅ Energy-TSPulse (Anomaly Detection / Reconstruction)
import torch
from tsfm_public.models.tspulse import TSPulseForReconstruction
device = "cuda" if torch.cuda.is_available() else "cpu"
model = TSPulseForReconstruction.from_pretrained(
"sriv-naman-iisc/Energy-FM-v1",
revision="energy-tspulse", # Loads Energy-TSPulse weights
num_input_channels=1
).to(device)
π£ Energy-TSPulse (Classification)
import torch
from tsfm_public.models.tspulse import TSPulseForClassification
device = "cuda" if torch.cuda.is_available() else "cpu"
model = TSPulseForClassification.from_pretrained(
"sriv-naman-iisc/Energy-FM-v1",
revision="energy-tspulse" # Loads Energy-TSPulse backbone
).to(device)
Tutorial Notebooks
Zero Shot Forecasting with Energy-TTM
Open NotebookZero Shot Anomaly Detection with Energy-TSPulse
Open NotebookAppliance Classification with Energy-TSPulse
Open Notebook
Resources
GitHub Repository π https://github.com/srivnaman/EnergyFM
Pretraining Dataset (EnergyBench) π https://huggingface.co/datasets/ai-iot/EnergyBench
Energy Benchmark Leaderboard
To compare EnergyFM against other state-of-the-art Time Series Foundation Models for energy analytics tasks, please visit our public benchmark leaderboard:
π Energy Benchmark Leaderboard
https://huggingface.co/spaces/Thanvish07/EB_Leaderboard
The leaderboard provides standardized evaluations across forecasting, anomaly detection, and classification tasks, enabling direct comparison under consistent experimental settings.
Limitations and Intended Use
EnergyFM is intended for energy meter analytics and has been pretrained on electricity consumption data. Performance may degrade when applied to unrelated domains or data with significantly different temporal characteristics.
Citation
If you use EnergyFM in your work, please cite:
@article{energyfm2026,
title = {EnergyFM: Pretrained Models for Energy Meter Data Analytics},
author = {Arjunan, Pandarasamy and Srivastava, Naman and Kumar, Kajeeth
and Jati, Arindam and Ekambaram, Vijay and Dayama, Pankaj},
journal = {ACM e-Energy},
year = {2026}
}
Model tree for sriv-naman-iisc/Energy-FM-v1
Base model
ibm-granite/granite-timeseries-tspulse-r1