dbt Labs · dbt-AE
Validates a candidate's ability to build, test, and maintain dbt projects by applying engineering best practices to analytics infrastructure. Requires SQL proficiency and at least six months of hands-on experience with dbt or dbt Core.
Practice Questions
600
≈ 9 practice exams
Duration
120 minutes
Passing Score
65%
Difficulty
ProfessionalLast Updated
Aug 2026
Use this dbt-AE practice exam to prepare for dbt Analytics Engineering Certification Exam with realistic questions, detailed explanations, and focused study modes. The practice bank includes 600 questions for dbt Labs dbt-AE, so you can review the exam steadily instead of relying on one long cram session.
As you practice, pay extra attention to recurring topics such as Developing and Optimizing dbt Models, Managing dbt Model Governance, Debugging Data Modeling Errors, Troubleshooting and Optimizing dbt Pipelines, and Implementing dbt Tests. Start with short sessions to identify weak areas, then move into timed quizzes once your accuracy is consistent.
The explanations are especially useful when you want to connect exam wording to the responsibilities and scenarios described in the official certification guidance. Use the free preview first, then unlock the full question bank when you are ready to build a complete study routine.
The dbt Analytics Engineering Certification (dbt-AE) is an official credential issued by dbt Labs that validates a practitioner's ability to build, test, and maintain production-grade dbt projects. The exam covers the full analytics engineering workflow: designing efficient DAG structures, applying appropriate model materializations (view, table, incremental, ephemeral, and microbatch), implementing snapshot strategies for slowly changing dimensions, writing Jinja macros, managing packages, and orchestrating deployments through dbt Cloud. The current exam aligns with dbt version 1.11 and is updated as the framework evolves.
Beyond core modeling, the certification assesses governance capabilities such as model contracts, versioning, and deprecation workflows defined in YAML, as well as operational skills including CI/CD pipeline configuration, Slim CI practices, state-based selection, DAG failure recovery using dbt retry, and source freshness monitoring. Candidates are also expected to debug compiled SQL and YAML configuration errors, making this a well-rounded validation of professional-level dbt proficiency rather than a narrow tool quiz.
This certification is designed for Analytics Engineers, Data Engineers, and Data Analysts who are actively working with dbt in professional environments. It is best suited for practitioners who design and maintain data transformation pipelines, collaborate with data consumers on modeled datasets, and are responsible for data quality and pipeline reliability within their organization.
Job titles commonly held by successful candidates include Analytics Engineer, Data Engineer, Analytics Engineer Lead, and Senior Data Analyst. Those looking to formalize their dbt expertise and differentiate themselves on the job market—particularly when moving into dedicated analytics engineering roles—will benefit most from pursuing this credential.
dbt Labs does not enforce formal prerequisites for exam registration, but strongly recommends that candidates possess SQL proficiency and at least six months of hands-on experience working with dbt or dbt Core before attempting the exam. Completing the free dbt Fundamentals course on dbt Learn is also strongly advised, as the exam assumes working familiarity with core dbt concepts rather than introducing them.
Candidates should be comfortable writing and debugging SQL transformations, structuring dbt projects (sources, models, tests, documentation), using the ref() and source() functions, and understanding the distinction between dbt Core and dbt Cloud. Those who have only theoretical knowledge without practical project experience are unlikely to meet the 65% passing threshold, as many questions are scenario-based and require applied judgment.
The exam consists of 65 scored questions delivered entirely online through the Talview proctored platform. Candidates have 120 minutes (2 hours) to complete the assessment. Questions are a mix of multiple-choice (single correct answer) and multi-select (choose all that apply) formats; multi-select questions are typically where candidates lose the most points, as all selections must be correct to receive credit.
The passing score is 65%, which equates to approximately 42 correct answers out of 65. The exam costs $200 USD and is administered remotely with online proctoring, so no in-person testing center visit is required. No expiration or mandatory recertification period has been published; credentials remain valid indefinitely under current policy. Candidates have access to an official study guide and 10 sample questions prior to sitting the exam.
Holding the dbt Analytics Engineering Certification signals to data-hiring teams that a candidate can independently manage production analytics infrastructure, not merely run dbt commands. The credential is recognized across companies of all sizes that have adopted the modern data stack, and it is commonly listed as a preferred or required qualification in Analytics Engineer and Senior Data Engineer job postings. It serves as a strong differentiating signal on a résumé when competing for roles that explicitly involve dbt, particularly as analytics engineering has become a distinct discipline separate from data engineering and data analysis.
While dbt Labs does not publish official salary data tied to the certification, analytics engineers with demonstrated dbt expertise—especially those who can govern models, implement CI/CD pipelines, and manage data quality at scale—command salaries in the range of $110,000–$160,000 USD annually in the United States, according to 2024–2025 market data. The certification complements cloud platform credentials (such as Snowflake, BigQuery, or Databricks certifications) and is increasingly paired with them by practitioners building a full modern data stack skill profile.
5 sample questions with answers and explanations. The full bank has 600 questions, enough for 9 full-length practice exams.
Preview — answers shown1. Woodgrove Bank's data platform team is documenting which dbt resource types can be added to a group in _groups.yml. Which two resource types are NOT eligible to belong to a group? (Select two!)
Multiple correct answersExplanation
Groups can be assigned to models, tests, seeds, snapshots, analyses, and metrics, but sources and exposures are explicitly excluded from group membership because they represent externally-loaded tables or downstream consumption points rather than resources dbt builds and governs through group ownership. Seeds are eligible group members since they are CSV-backed resources dbt loads and materializes like other buildable nodes. Snapshots are also eligible since they are versioned, buildable resources tracked in the DAG. Analyses are eligible for group assignment as well, even though they are compiled rather than materialized into the warehouse.
2. Adatum Analytics wants to add the dbt_utils package at version 1.1.0 directly from the command line, without hand-editing packages.yml, and have dbt install it immediately. Which command accomplishes this? (Select one!)
Explanation
The add-package flag lets a developer add or update a Hub package directly from the CLI using the namespace/name@version format, and dbt writes the entry into packages.yml before installing it. The upgrade flag does not accept a package-and-version argument in that form; it simply forces a refresh of everything already declared. There is no run-operation command for managing packages, since run-operation invokes macros, not the dependency resolver. Combining the lock-only flag with add-package would only update the lock file's resolution without installing the package into the project.
3. Litware's nightly pipeline runs dbt build, and afterward its monitoring dashboard queries target/sources.json for freshness results, but the file is missing or stale. What is the most likely cause? (Select one!)
Explanation
sources.json is produced exclusively by the dbt source freshness command, so a pipeline that only runs dbt build will never generate or refresh that artifact, leaving the dashboard reading a stale or missing file. The --full-refresh flag controls incremental model rebuild behavior and has no bearing on freshness artifact generation. sources.json generation does not depend on the --state flag, which is used for state comparison and deferral, not freshness checks. sources.json remains a distinct, actively supported artifact in dbt Core v1.11 and is not replaced by catalog.json, which serves an entirely different purpose.
4. Adatum wants its continuous integration job to flag pull requests that introduce brand-new models that do not yet exist in the production environment, so a reviewer can give newly introduced models extra scrutiny that is separate from pull requests that only edit existing models. Which command identifies only the newly added resources? (Select one!)
Explanation
The state:new selector identifies resources that exist in the current project but have no matching unique ID in the comparison state manifest, which is precisely the definition of a brand-new model. state:modified flags any resource that exists in both the current project and the state manifest but differs in some way, such as code or configuration changes, so it would also catch edits to existing models rather than isolating only new ones. state:modified+ additionally pulls in every downstream child of a modified node, making the result set even broader and still mixing new models together with edited ones. result:error is based on the outcome of a previous invocation's run_results.json rather than a comparison against a state manifest, so it cannot identify resources that are newly added to the project.
5. Contoso Retail wants a data quality check that fails when the most recent row in a fact_orders table is older than 24 hours, using a documented dbt_utils generic test rather than custom SQL logic. Which dbt_utils test should they configure on the model? (Select one!)
Explanation
dbt_utils.recency() checks that the most recent record in a specified timestamp column falls within a defined interval of the current time, which directly matches Contoso Retail's requirement to flag stale data. equal_rowcount() compares row counts between two relations and has nothing to do with timestamp freshness. cardinality_equality() checks that the set of values in one column matches the set in another table's column, which does not address recency. accepted_values() is a built-in dbt-core generic test that validates a column only contains values from an allowed list; it cannot evaluate how recent a record is.
$17.99
One-time access to this exam