> For the complete documentation index, see [llms.txt](https://docs.rootcause.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rootcause.ai/more-details/applications/application-modules/origingrid.md).

# Origin Grid

> Emit origin timestamps for walk-forward or backtest sweeps.

Builds the grid of scenarios a PreScore fills in: every forecast origin crossed with every lever value.

`start`, `end` and `cadence` give the origins; each lever in `levers` multiplies them by its values. `maxOrigins` is the brake — the cross product grows fast, and this is what stops an author asking for a hundred thousand twin runs by accident.

## At a glance

|                          |                        |
| ------------------------ | ---------------------- |
| Module type              | `OriginGrid`           |
| Category                 | Inputs                 |
| Default tier             | `reactive`             |
| Runs on                  | `reactive`, `durable`  |
| Starts a flow            | no                     |
| Holds a body             | no                     |
| Keeps state between runs | no                     |
| Available in             | every application type |

## Parameters

### `start`

`string` · required · defaults to `""`

First forecast origin in the range.

### `end`

`string` · required · defaults to `""`

Last forecast origin in the range.

### `cadence`

`OriginGridCadence` · required · defaults to `"quarter"`

The step between origins.

### `maxOrigins`

`number` · optional · defaults to `40`

Cap on how many origins the range may produce — the brake on an accidental cross product.

### `levers`

`OriginGridLever[]` · required · defaults to `[]`

Each lever multiplies the origins by its values to make the grid.

## Inputs

| Port | Kind    | Required | Description                                                                                                                           |
| ---- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `on` | `event` | no       | Implicit on every module that does not itself start a flow: wire an event here to make this module the start of what that event runs. |

## Outputs

| Port      | Kind        | Connects to           | Description                                                                         |
| --------- | ----------- | --------------------- | ----------------------------------------------------------------------------------- |
| `origins` | `dataframe` | `dataframe`, `signal` | One row per forecast origin in the range.                                           |
| `grid`    | `dataframe` | `dataframe`, `signal` | The full cross product of origins and lever values — one row per scenario to score. |

***

[← All application modules](/more-details/applications/application-modules.md)
