Skip to Content
ActivationComputed AttributesOverview

Computed Attributes

Computed attributes are derived metrics about customer entities. They transform raw warehouse data into meaningful values — like a customer’s lifetime value, their most-purchased product category, or the number of days since their last login — that can then be used to build audiences.

What Is a Computed Attribute?

A computed attribute is a single computed value attached to an entity type. Every computed attribute produces one value per entity instance. For example, a computed attribute called total_order_value on the User entity type would compute one number for each user in your warehouse.

Computed attributes are warehouse-native and computed on read: Zeotap generates SQL and runs it directly against your data warehouse whenever the attribute is referenced — in an audience, an estimate, a sync, or a journey. No data is copied out of your warehouse to compute them, and no values are stored in a separate table. Each result always reflects your latest warehouse data and the latest definition.

Computed Attribute Types

Zeotap offers six ways to define computed attributes, ranging from full SQL flexibility to visual no-code builders:

TypeWhat it produces
AggregationA count, sum, average, min or max over related records
OccurrenceA single value picked by position or frequency — first, last, most or least frequent
ListRelated values collected into a list
List of objectsThe top N related rows as a list of objects
SQLAnything you can express as a SQL expression
FormulaA new value composed from computed attributes you already have

SQL Computed Attributes

SQL Computed Attributes let you write custom SQL to compute any metric. This is the most flexible option — anything you can express in a SQL query, you can turn into a computed attribute.

Use when: You need multi-table joins, window functions, CTEs, warehouse-specific functions, or any computation that doesn’t fit the visual builders.

-- Example: Customer lifetime value SELECT user_id, SUM(order_total) - SUM(refund_amount) AS lifetime_value FROM orders LEFT JOIN refunds ON orders.order_id = refunds.order_id GROUP BY user_id

Aggregation Computed Attributes

Aggregation Computed Attributes use a visual builder to define common aggregations without writing SQL. You pick a source table, an aggregation function, a column to aggregate, and optional filters.

Use when: You need a straightforward count, sum, average, min, max, or count distinct over a single table.

Supported functions:

FunctionDescriptionExample
CountNumber of rowsTotal number of orders
SumSum of a numeric columnTotal revenue
AverageMean of a numeric columnAverage order value
MinMinimum valueFirst purchase date
MaxMaximum valueMost recent login
Count DistinctUnique values in a columnNumber of distinct products purchased

Occurrence Computed Attributes

Occurrence attributes pick one value out of a customer’s related rows, chosen by position in time or by how often it appears.

Use when: you want “the value that came first”, “the latest one”, or “the one they pick most often” — a first-touch channel, a most-recent shipping city, a favourite product category.

FunctionPicks
FirstThe value on the earliest related row
LastThe value on the most recent related row
Most frequentThe value that appears on the most related rows
Least frequentThe value that appears on the fewest

First and Last need to know what “earliest” means, so they order by an order column. Leave it unset and the source model’s timestamp column is used; a model with no timestamp column requires you to name one explicitly.

List Computed Attributes

List attributes collect a column’s values across a customer’s related rows into a single list.

Use when: you want every value rather than one — all the categories someone has bought from, every campaign that touched them.

Options are a value column, an optional distinct toggle to collapse repeats, an optional limit on how many values to keep, and filters to narrow which related rows count.

List of Objects Computed Attributes

List-of-objects attributes collect whole related rows — several columns each — rather than one column’s values.

Use when: a list of bare values loses too much. “The last 10 products purchased” is only useful with the product name, price and date together.

You choose which columns to capture, the key each becomes in the resulting object, how the rows are ordered, and how many to keep. The result is an array of objects, which destinations that accept nested payloads can receive directly.

Formula Computed Attributes

Formula Computed Attributes combine existing computed attributes using arithmetic and logical expressions. They operate on the results of other computed attributes, resolved as part of the same on-read computation.

Use when: You want to derive new metrics from computed attributes you’ve already built, like ratios, scores, or boolean flags.

average_order_value = total_revenue / order_count is_high_value = lifetime_value > 1000

Computed Attribute Properties

Every computed attribute has these core properties:

PropertyDescription
NameHuman-readable label displayed in the UI and available for audience building
SlugURL-safe identifier used in the API to reference the computed attribute
Entity TypeThe entity type this computed attribute is computed for (e.g., User, Account)
Data TypeThe output type: string, number, boolean, date, or timestamp
TypeSQL, Aggregation, or Formula

How Computed Attributes Are Used

Once computed, computed attributes are available throughout Activation:

  • Audience conditions — Filter customers by computed attribute values (e.g., lifetime_value > 500)
  • Formula inputs — Reference computed attributes in formula expressions to derive new metrics
  • Audience sync fields — Include computed attribute values as fields sent to destinations
  • Insights — Track computed attribute distributions and trends over time

Computed Attribute Evaluation

Computed attributes are evaluated on read: Zeotap generates SQL and runs it against your warehouse whenever the attribute is referenced, so results always reflect your latest data and definition. Dependency ordering (formula computed attributes that depend on other computed attributes) is resolved as part of that same on-read computation.

Next Steps

Last updated on