Your first PRlesson 3 of 9

  1. set up
  2. pick data
  3. find source
  4. place it
  5. model
  6. YAML
  7. build
  8. PR
  9. merge

Find your source

Start from what already exists

The project already holds more than 1,500 tested models. Before you write anything, the first job is not to build — it is to find what is already there. Your staging model will read from a raw model: a generated, 1:1 cleaned view of a source table. You never write raw models by hand — the source pipeline generates them — so your job is to find the raw model for your table and build staging on top of it with ref().

How a Snowflake table becomes usable in dbt

The schema is mapped, but only tables a person lists are allowed in.

1 · Warehouse

The table lands

DATA_LAKE__NCL.ANALYST_MANAGED.OPENING_HOURS

Snowflake contains the new table and its columns.

upstream data
2 · Registry

The mapping says manual: true

scripts/sources/source_mappings.yml

That flag stops automatic discovery from admitting every table.

inspect; usually do not edit
3 · Source declaration

You add the table to YAML

models/sources/manual_analyst_managed.yml

The curated list is the approval step for this schema.

edit this file
4 · Raw layer

The pipeline writes SQL

models/raw/shared/raw_reference_opening_hours.sql

The approved table gets its generated 1:1 raw model.

generated: do not edit
switch routes · orange is the file you edit · grey files are generated

The diagram shows where a raw model comes from. The detail that matters for your first PR is the last box: the raw layer is always generated, never edited by hand. How a table earns a raw model in the first place — the source registry, manual versus automatic schemas, the generation pipeline — is a larger, project-specific topic the handbook covers in full.

step 1 of 3