@michael_cooper Since dbt runs inside the database, it only runs after the data has been extracted and loaded in the destination, which is why it's ELT, not ETL 🙂
So Meltano runs the tap, then the target, and then runs DBT, passing along some env vars so that it knows where to find the loaded data.