2 hrs



number of questions


passing score



Recommended Experience

  • SQL proficiency
  • 6+ months building on dbt Core or Cloud

Registration & Scheduling

Register for exam

What's covered in the exam?

  • Identifying and verifying any raw object dependencies
  • Understanding core dbt materializations
  • Conceptualizing modularity and how to incorporate DRY principles
  • Converting business logic into performant SQL queries
  • Using commands such as run, test, docs and seed
  • Creating a logical flow of models and building clean DAGs
  • Defining configurations in dbt_project.yml
  • Configuring sources in dbt
  • Using dbt Packages

  • Understanding logged error messages
  • Troubleshooting using compiled code
  • Troubleshooting .yml compilation errors
  • Distinguishing between a pure SQL and a dbt issue that presents itself as a SQL issue
  • Developing and implementing a fix and testing it prior to merging

  • Understanding and testing the warehouse-level implications of a model run failing at different points in the DAG
  • Understanding the general landscape of tooling

  • Using generic, singular and custom tests on a wide variety of models and sources
  • Understanding assumptions specific to the datasets being generated in models and to the raw data in the warehouse
  • Implementing various testing steps in the workflow
  • Ensuring data is being piped into the warehouse and validating accuracy against baselines

  • Understanding the differences between deployment and development environments
  • Configuring development and deployment environments
  • Configuring the appropriate tasks, settings and triggers for the job
  • Understanding how a dbt job utilizes an environment in order to build database objects and artifacts
  • Using dbt commands to execute specific models

  • Updating dbt docs
  • Implementing source, table, and column descriptions in .yml files
  • Using dbt commands to generate a documentation site
  • Using macros to show model and data lineage on the DAG

  • Understanding concepts and working with Git branches and functionalities
  • Creating clean commits and pull requests
  • Merging code to the main branch

  • Understanding environment’s connections
  • Understanding the differences between production data, development data, and raw data

Sample Questions


In this question, you are presented with a YAML file showing a source definition. The answer choices test your knowledge of source configurations. In the first drop-down you’re presented with event_ticket and ticket_tailor as options. While dbt does use the source name: field by default, if you define an explicit schema in the file, it will use that value instead. That is why ticket_tailor is the correct answer.

In the second drop-down you’re presented with tickets and issued_tickets as possible answer choices. The identifier parameter lets you specify the name of the table as it is named in the database. That is why issued_tickets is the correct choice here.


dbt run --select model_d+ is the correct answer because model_d was the model that failed in the previous run and its downstream models would have been skipped previously. By selecting only model_d and its downstream dependencies (children), we are able to rebuild only the models that failed in the last run.


When referencing a doc block in a YAML file for the description of a model, it is important to reference the name of the actual macro rather than the name of the markdown file.

So the correct answer is “The doc function can be used to reference the name of a doc macro to be used in a description.”