> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/sdgm/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/sdgm/_mcp/server.

# Static vs. Temporal

> **Prerelease documentation**
>
> This Kumo Studio information is prerelease and is not yet supported. Stay tuned for the Docker and Kubernetes releases.

Predictive Queries generate a training table attached to an underlying graph.
Two query types control how that training data is split: **static** and **temporal**.

**Static queries** do not predict over a time window and do not require a time column in the target table.
By default, Kumo splits rows into training, validation, and holdout sets at an **80/10/10** ratio.
A time column is optional. If provided, you can distribute rows across a specific time range instead.

**Example: Predicting Transaction Fraud**

The following Predictive Query predicts **the fraud label attached to each transaction**:

**`PQL`**

```Text PQL
PREDICT TRANSACTIONS.LABEL
FOR EACH TRANSACTIONS.TRANSACTION_ID
```

**Temporal queries** predict an aggregation of values over a time window. For example: *"purchases each customer will make over the next 7 days"*.
Because they involve time, data splits must be **non-overlapping, properly ordered, and well-balanced** to prevent **data leakage** that could invalidate predictions.
Kumo handles this automatically by splitting data into training, validation, and holdout sets based on the time column in your target table.

> **Info**
>
> For configuration guidance, refer to [Specify the training, validation, and test splits](/faq/kumo-engine/training-evaluation/how-do-i-specify-the-train-validation-test-splits).

**Example: Predicting Customer Purchases Over 30 Days**

The following Predictive Query predicts **customers who will refrain from making a purchase over the next 30 days**:

**`PQL`**

```Text PQL
PREDICT COUNT(TRANSACTIONS.*, 0, 30, days) = 0
FOR EACH CUSTOMERS.CUSTOMER_ID
```

To generate training examples, Kumo samples data from multiple past time points to reconstruct how user behavior looked at each point in history.
Kumo then automatically selects the best sampling and split methodology for your dataset and query, as shown below:

![Screenshot2025 06 30at10 40 29AM Pn](/sdgm/_fern-img/40dc5b2011dff8508b8fdcdd407a7e02f3d30a285a6adade230430b16d7fec1a.webp)

Kumo analyzes your Predictive Query and dataset to determine the optimal sampling rates and splits.
For temporal queries, Kumo ensures:

* The **holdout split occurs strictly later in time** than the training split.
* The **training splits are balanced** in size.

This process ensures optimal model performance and eliminates errors from manual training split setup.

---

**Example: Predicting Total Sales Over 30 Days**

The following Predictive Query predicts the **total sales value per customer in the next 30 days**:

**`PQL`**

```Text PQL
PREDICT SUM(TRANSACTIONS.PRICE, 0, 30, days)
FOR EACH CUSTOMERS.CUSTOMER_ID
```

For this query, Kumo generates training, validation, and holdout splits based on the time range of the `transactions` table.

For example, if your dataset spans **September 20, 2018, to September 22, 2020**, Kumo will:

* Compute 30-day user spend at various past time points.
* Automatically generate the appropriate sampling and training split methodology.

This ensures that training examples are correctly distributed across the entire dataset while maintaining time-based integrity.