---
title: "Online vs offline features | Snowplow Signals"
description: "Offline features are computed in batch over history to train a model. Online features are served fresh at request time. Production models need both."
source: https://signals.snowplow.io/learning/feature-stores/online-vs-offline-features
---

[Learning](https://signals.snowplow.io/learning) / [Feature stores](https://signals.snowplow.io/learning/feature-stores) 

# Online vs offline features

Offline features are computed in bulk over historical data and used to train a model. Online features are the current values served to that model when it runs. The two describe the same thing at different points in time.

## Offline features

Offline features are computed in batch, over the full history of your data, usually in a warehouse. They answer questions like how a customer behaved over the last year. Training a model needs them, because a model learns from the past.

## Online features

Online features are the same values computed for right now and served the moment the model asks. They answer what the customer is doing in this session. Serving a model in production needs them, because the model acts on the present.

## Why both matter

A model trained on offline features and served online features only works if the two agree. The feature has to be defined once and computed the same way in both. When they drift, the model sees one thing in training and another in production, which is the problem the next article covers.

## Put it to work

* [Real-time attributes on Signals →](https://signals.snowplow.io/products/real-time-attributes)

## See it on your own traffic 

Add the SDK, define one attribute, and see an attribute updating against your own traffic in the first session. The free tier runs on the real engine: no card, no sales call.

[Start free](https://signals.snowplow.io/start) [Talk to an engineer](https://signals.snowplow.io/start?intent=engineer) 

More explainers in the [Learning Center →](https://signals.snowplow.io/learning)
