Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.omneo.io/llms.txt

Use this file to discover all available pages before exploring further.

Aggregations are calculated facts derived from a profile’s transaction history. They provide a real-time picture of customer value and behaviour without requiring custom queries against raw data. Aggregations are updated automatically whenever new transactions are recorded against a profile. They are stored as a separate record linked to the profile and returned alongside profile data in API responses and event contexts.

Spend

All spend values are net figures (returns and exchanges are subtracted).
FieldDescription
spend_12mNet spend in the rolling 12-month window, measured back from the profile’s most recent transaction date
spend_12m_nowNet spend in the rolling 12-month window, measured back from today
spend_allLifetime net spend
spend_atv_12mAverage net transaction value in the last 12 months
spend_atv_allAverage net transaction value lifetime
spend_first_dateDate of the profile’s first transaction
spend_last_dateDate of the profile’s most recent transaction

Shop dates and timing

These fields track the timing of shopping behaviour across unique transaction dates.
FieldTypeDescription
first_shop_dateDateDate of the first transaction
first_shop_daysIntegerDays between join date and first shop date. Can be zero.
second_shop_dateDateDate of the next transaction on a unique date after the first
second_shop_daysIntegerDays between first and second shop date. Minimum 1.
average_shop_daysIntegerAverage days between unique shopping dates: (latest minus first date) divided by count of unique transaction dates. Set on the third shop and recalculated on each subsequent shop.
total_shop_daysIntegerTotal count of unique shopping days
previous_shop_dateDateThe prior value of latest_shop_date, set when a new latest shop date is established
latest_shop_dateDateDate of the most recent transaction on a unique date
latest_shop_daysIntegerDays between previous_shop_date and latest_shop_date. Minimum 1.
at_risk_dateDatelatest_shop_date plus (average_shop_days multiplied by 3). Signals when a customer is overdue for their next visit.

Purchase behaviour

FieldDescription
shop_countTotal number of unique shopping days where the net of transactions is greater than zero. Pure exchange or return days are excluded.
shop_daysAverage number of days between transactions. Only calculated for profiles with three or more transactions.

Dimensions

Omneo calculates four behaviour dimensions from transaction history. Each uses a defined set of codes. dimension_recency: how recently the profile last shopped:
CodeMeaning
R0Never shopped
RRRetired (last shop more than 5 years ago)
RLLapsed (last shop 3 to 5 years ago)
RIInactive (last shop 1 to 2 years ago)
RAAnnual active (last shop 6 to 12 months ago)
RSSeasonal active (last shop 3 to 6 months ago)
RCCurrent active (last shop within 3 months)
dimension_frequency: how frequently the profile shops:
CodeMeaning
F0Never shopped
F11 transaction ever
F22 transactions ever
FLLow frequency (average shop days greater than 90)
FMMedium frequency (average shop days 30 to 90)
FHHigh frequency (average shop days less than 30)
dimension_channel: the channels the profile has shopped across:
CodeMeaning
CCConcession only
CFBranded only (store or outlet)
CDBranded or concession only, not online
COOnline only
CSOutlet only
CMMultichannel (branded, concession, or outlet AND online)
dimension_joined: the profile’s join lifecycle stage:
CodeMeaning
JEEstablished (joined more than 12 months ago)
JCCurrent (joined 3 to 12 months ago)
JNNew (joined within 3 months)

Preferences

FieldDescription
most_transacted_locationLocation object for the profile’s most frequently visited store
store_joinLocation object for the store where the profile was created
likely_countryInferred country based on transaction data
purchased_brandsArray of brand or department names the profile has purchased from

Using aggregations

Aggregation fields are available in reaction filter conditions and target templates. For example, you can fire a reaction when aggregations.spend_12m crosses a threshold, or include at_risk_date in a win-back campaign payload.
{
  "aggregations": {
    "spend_12m": 2260.00,
    "spend_12m_now": 1840.00,
    "spend_all": 8450.50,
    "shop_count": 18,
    "average_shop_days": 32,
    "latest_shop_date": "2026-03-15",
    "at_risk_date": "2026-04-16",
    "dimension_recency": "RC",
    "dimension_frequency": "FM"
  }
}
Individual aggregation fields can be manually updated or fully recalculated via the API.