Setting up dbt State Preview
dbt State is natively available in dbt platform and locally in dbt Core v1.12+ and the dbt Fusion engine. It is also available as a plugin for older versions of dbt Core (1.7-1.11).
Select the option that matches your setup:
- dbt platform
- dbt Core 1.12 / Fusion
- dbt Core 1.7–1.11
Prerequisite: You must be an admin in your dbt platform account.
To enable dbt State:
-
In your dbt platform account, click your account name at the bottom of the left-side menu and click Account settings.
-
Under Settings, go to State.
-
Click Start your 30-day free trial.
Extended trial for state-aware orchestration usersIf you're using state-aware orchestration prior to June 1, 2026, your dbt State trial will be extended to 90 days when you sign up. If you don't see the extension, contact your account team.
-
Review and agree to the terms of service.
-
Click Start 30-day trial.
-
Click Enable dbt State.
-
In the Upgrade to dbt State page, select the jobs to enable dbt State for. You can either enable:
- All jobs in an environment: Enables dbt State on all jobs within the selected environment at once.
- Specific jobs: Enables dbt State on individual jobs.
-
Click Enable dbt State.
Once dbt State is enabled, all new jobs will have dbt State enabled by default. The dbt State page displays how many days remain in your trial period alongside the following monthly data:
- Number of models reused
- Total % build reduction
- Total query run time reduction
Enabling dbt State on existing deploy jobs
To enable dbt State on existing deploy jobs:
- Go to Orchestration > Jobs.
- Select the job you want dbt State enabled for.
- Click Settings > Edit.
- In the Execution settings section of the job, select Enable dbt State.
- Click Save.
-
Navigate to your project:
cd to/your/project -
Log in to dbt State:
dbt loginThis opens a browser window where you can log in with your dbt platform account or the standalone dbt State app. For details on authentication behavior and how it affects
user_settings.yml, refer todbt login.
dbt State is now enabled and will be used automatically on your next dbt run or dbt build.
You can also enable or disable dbt State per run using CLI flags: --manage-state or --no-manage-state, or set the DBT_ENGINE_MANAGE_STATE=1 environment variable.
To enable dbt State for everyone on your project, add manage_state: true to the flags: block in dbt_project.yml:
flags:
manage_state: true
dbt State is available as a plugin for older versions of dbt Core (v1.7+). If you are running on dbt Core v1.9 or older, we encourage you to upgrade to a more recent version with ongoing support.
To install the plugin:
-
Navigate to your project:
cd to/your/project -
Create and activate a virtual environment:
python3 -m venv .venv
source .venv/bin/activate -
Install the dbt State plugin:
pip install dbt-state
dbt State is now enabled and will be used automatically on your next dbt run or dbt build.
The CLI flags --manage-state and --no-manage-state are not available in older dbt Core versions. Use the environment variable (DBT_ENGINE_ENABLE_STATE=0) or project flag (enable_state) to enable or disable dbt State.
dbt State works out of the box, but the following steps can help you get more value from it.
Configuring lag tolerance
Lag tolerance allows you to set a tolerance level for older data at the project, environment, or model level. We recommend starting with the following Jinja expression, which tolerates older data locally and requires fresher data in production. As you get a better feel for where adjustments make sense, you can tune individual models.
models:
+state:
lag_tolerance: "{{ '4h' if target.name == 'prod' else '7d' }}"
In this example, models in the prod target rebuild only when upstream data is more than 4 hours old. In all other environments, models wait 7 days before rebuilding.
For more details, refer to the lag_tolerance config reference.
Configuring deferral
By default, dbt State defers to your production environment. To customize which environment dbt defers to, use the defer_to_target config.
For the full list of available configs, see dbt State configs.
Inviting team members
The more team members you have using dbt State, the better it gets; more team members means more opportunities to clone existing nodes rather than rebuilding them.
- For standalone app users: Click the invite link in the upper-right corner of the Users page.
- For dbt platform users: Have your colleagues run
dbt loginafter dbt State is enabled on the account.
Debugging dbt State
If dbt State is behaving unexpectedly, you can prepend your run command with the DBT_ENGINE_MANAGE_STATE environment variable to isolate the issue:
DBT_ENGINE_MANAGE_STATE=1 dbt run --target dev --select "customers"
Related docs
- About dbt State
- CI/CD setup
- Configuring deferral
- dbt State configs
- Migrate from state-aware orchestration
Was this page helpful?
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
