A Predictive Query defines a predictive modeling task in Kumo using PQL (Predictive Query Language), a SQL-like syntax that specifies:

  • Target – What you want to predict.

  • Entity – Who you are making predictions for.

  • Filters (optional) – Constraints on which entities or data to include.

Target

The target is the outcome you want to predict, defined after the PREDICT command.

For example, to predict total purchases per user over the next 30 days, the target is “sum of purchases over the next 30 days.”

Entity

The entity is the subject of your prediction—who the prediction is being made for.

For example, if predicting total purchases per user, then the user is the entity.

Aggregation Operators

When predicting an aggregation over time (e.g., total sales over 30 days), use an aggregation function with a column reference.

Example: Predicting Total Purchase Value per Customer

PQL
PREDICT SUM(TRANSACTIONS.PRICE, 0, 30)
FOR EACH CUSTOMERS.CUSTOMER_ID
  • SUM(TRANSACTIONS.PRICE, 0, 30) → Sums purchase values over the next 30 days.

  • FOR EACH CUSTOMERS.CUSTOMER_ID → Predicts for each customer.

Common Aggregation Functions

  • SUM() – Total value over time.

  • COUNT() – Number of occurrences over time.

Aggregation Window (Start & End)

  • The start and end parameters define the prediction window in days.

  • If the prediction date is 2020-01-01:

    • 10, 30 will predict transactions values from 2020-01-11 to 2020-01-31.
PQL
PREDICT SUM(TRANSACTIONS.PRICE, 10, 30)
FOR EACH CUSTOMERS.CUSTOMER_ID

Aggregation Units

The time unit defaults to days, but can also be:

  • days (default)

  • months

  • hours

PQL
PREDICT SUM(TRANSACTIONS.PRICE, 0, 30, months)
FOR EACH CUSTOMERS.CUSTOMER_ID

Filters (WHERE)

Filters refine a Predictive Query by removing irrelevant entities or restricting aggregation conditions.

For example, to predict purchases for active customers only (i.e., those who made at least one transaction in the past 30 days):

PQL
PREDICT SUM(TRANSACTIONS.PRICE, 0, 30)
FOR EACH CUSTOMERS.CUSTOMER_ID 
WHERE COUNT(TRANSACTIONS.*, -30, 0) > 0

Kumo supports advanced filtering, including:

  • Inline filters inside aggregations

  • Nested temporal filters

  • Static date/time filters

  • Multiple target conditions (AND/OR)

For a complete guide to filtering, see Predictive Query Reference.