Analytics Engineer
Ship dbt PRs without breaking production. See blast radius before merge, auto-generate tests, and attach lineage diffs to every PR.
Executive summary
Connect dbt manifest + warehouse + BI into Metroflow. Run impact queries before every PR. Certify core models in 60 days.
Analytics engineers own the staging → analytics layer, but every column rename is a guessing game. Metroflow replaces spreadsheet lineage with a live graph and answers "what breaks?" in minutes.
What broken lineage costs you
Typical patterns for Analytics Engineer teams. Ranges, not guarantees.
Column rename in staging
Half-day Slack threads + rollback PR
With Metroflow: Blast-radius query lists every dashboard and model affected.
New AE joins the team
2–3 weeks to learn tribal lineage
With Metroflow: Living graph + Company Brain from day one.
schema.yml tests missing
Bad data ships to production
With Metroflow: Agent generates tests from manifest metadata.
PR merged without BI sign-off
Stale explores Monday morning
With Metroflow: Downstream owners notified automatically before merge.
Metadata only. Metroflow crawls schemas, job names, manifests, and dashboard definitions. Your production data rows never leave your network.
Your stack, one graph
Metroflow sits above the data path, not inside it. One searchable map for your entire role.
When you rename customer_id in stg_orders, trace impact: dbt downstream models → Looker explores → exec dashboards. One query, full picture.
Where are you today?
Most teams land at L1 or L2. Target L4 in 90 days.
Quick self-check
- Answer "what breaks if X fails?" in under 15 minutes?
- Cross-functional teams share one definition of core KPIs?
- Incidents include downstream dashboard impact without Slack archaeology?
- Changes include cross-layer impact checks before merge?
- Named owners for certified metrics and critical pipelines?
0–2: Start Week 1 connect · 3–4: Certify metrics · 5: Add change gates
Choose your path
Every org is different. Pick the track closest to your context.
Greenfield dbt project
Models: stg_* → fct_* → dim_*
Priority: Certify first: revenue, orders, customers
Mature warehouse + legacy SQL
Mix of dbt models and historical views
Priority: Certify first: map rogue explores, migrate top 5
Multi-project monorepo
Shared staging, domain-specific marts
Priority: Certify first: cross-project dependency graph
Who owns what
Assign decision rights up front. Metric fights are governance problems.
| Role | Owns | On Metroflow |
|---|---|---|
| Analytics Engineer | dbt models, schema.yml, PR quality | Impact queries before merge. Lineage diff in PR description. |
| Data platform | Airflow, warehouse slots | DAG failures linked to your models. Shared on-call runbook. |
| BI lead | Looker explores, certified metrics | Approve explores affected by your PRs. Certified metric IDs only. |
| Head of data | Certification sign-off | Gate breaking changes. Weekly trust score on models. |
30 · 60 · 90 day rollout
A program with gates, not just a connector checklist.
Connect & first win
- Connect dbt Cloud/Core + warehouse + BI
- Import manifest into semantic graph
- First impact query on a real PR
PR guardrails
- Impact query required on every PR
- Auto-generated schema.yml tests
- Notify BI on affected explores
Certify & scale
- Certify top 10 models
- Deprecation policy for rogue SQL
- Onboarding playbook for new AEs
Incident runbook
When daily_revenue_dbt_run is in trouble. Follow this timeline.
Airflow alert or CI failure. Open Metroflow, search model name.
Paste Slack template. Tag BI lead and finance.
Patch SQL, re-run dbt. Platform monitors warehouse slots.
Re-run lineage. Close with affected dashboard list.
Slack template
Metric certification pack
Copy into your governance doc. One definition. One owner. Full lineage.
Gross revenue (daily)
Certify first- Formula
- Sum of order_line_amount after refunds, USD, calendar day UTC.
- Source
stg_orders→fct_revenue
- Owner
- Analytics Eng + Finance
- Lineage
raw_stripe→stg_orders→fct_revenue→ Revenue Dashboard
Active customers (monthly)
Certify second- Formula
- Distinct customer_id with ≥1 paid order in calendar month.
- Exclusions
- Test accounts, internal orders, $0 trials.
- Owner
- Analytics Eng + Growth
Daily workflows
Four situations you will hit every week.
Before opening a dbt PR
- Impact query
Renamed or dropped columns in staging.
- Notify BI
If certified explore affected.
- Attach diff
Lineage diff in PR description.
Monday model review
- Check freshness
Any stale marts from weekend DAG failures?
- Certified models
Top dashboards on certified IDs?
- Ask Brain
Pipeline delay or definition change?
Onboard a new AE
- Tour the graph
Staging → marts → BI path.
- First impact query
On a sandbox PR.
- Pair on certification
Walk through one metric spec.
Metric dispute
- Open spec
Formula, exclusions, owner.
- Trace lineage
Dashboard tile → dbt model → source.
- Flag rogues
Migrate explores off legacy SQL.
Copy-paste queries
Company Brain or lineage search. Context included.
Glossary
Plain English. "Why it matters" tells you when to care.
Outcomes checklist
Measure if the program is working.
| Success metric | 90-day target |
|---|---|
| Time to answer "what breaks if I change X?" | < 10 minutes |
| PRs with lineage diff attached | 100% |
| Surprise stale explores from AE PRs | Zero |
| New AE time to first impact query | < 1 week |
Ready to put this playbook to work?
Week 1: connect your stack and run your first blast-radius query. Week 4: certify your first KPI. Week 8: operationalize the runbook.