A ref call links a model to another model in the project. dbt uses that link to resolve the relation name and build parents before children.
The dependency graph is useful even when you could type a schema and table directly: it records which datasets a change can affect. Sources sit outside the model graph's transformation work, and source calls make that boundary visible.
Keep the grain of the parent in mind when you build a child. A reference doesn't remove duplicates, filter canceled orders, or fix an unsafe join. It only points to a resource.
Use the Lineage panel to inspect parents and children, then verify the output. One exercise deliberately starts with a misspelled parent. Correct the dependency rather than copying the parent's SQL into every downstream file.