Español

AI in the Data Analyst Workflow: Where It Helps, Where It Breaks

A VP of Sales pings you on Slack at 8:47 a.m. The message is one line: "The AI says revenue is up 14% — can you double-check?"

You open the BI tool's copilot, paste in the same prompt the VP used, and get back a query that runs in 1.2 seconds. The number it returns is 14%. The query is also wrong. It joins orders to customers on email instead of customer_id, double-counting anyone who's ever updated their email address. It treats status = 'completed' as revenue without filtering refunds. The 14% is real arithmetic on the wrong dataset.

The VP doesn't know that. The copilot doesn't know that. You know that, because you've worked in this warehouse for nine months and you've been burned by both joins before.

This is the actual job in 2026. Not writing SQL faster. Verifying SQL that's already written, plausibly, by something that doesn't understand the business.

Why this matters now

Every BI vendor and every IDE has shipped an "ask in plain English" feature. Leadership has noticed. The CFO read a McKinsey piece about AI productivity and now expects analytics to deliver more with the same headcount. Refusing to use AI makes you look slow. Trusting it blindly makes you the human rubber stamp on hallucinated numbers that ship to the board deck.

The only sustainable position is the third one: use AI as a force multiplier on the parts of the job that are mechanical, and become the governance layer on the parts that aren't. The analyst who can confidently explain why an AI-drafted query is wrong, fix it in two minutes, and ship the right answer is more valuable in 2026, not less. The analyst who pastes copilot output into a dashboard and walks away is a junior with extra steps.

Where AI actually helps

Be specific. "AI helps with productivity" is the kind of sentence I want to delete from this article. Here's where it earns its keep, by name.

SQL drafts to refactor

Cursor with Claude as the model is the current safe default for working analysts. Where it shines is the second draft, not the first. You wrote a 200-line query with five CTEs to compute month-over-month cohort retention. It works. It's also unreadable. Drop it into Cursor, ask for a refactor that consolidates the CTEs and adds comments, and you'll get back something cleaner in 30 seconds. You read it, push back on two changes that broke the logic, accept the rest, and you've saved an afternoon of cleanup.

The same applies to window functions you write twice a year, gnarly self-joins for hierarchical data, and pivot logic. Treat the output as a first draft from a smart junior who's never seen your warehouse. Useful, not finished.

Dashboard schema documentation

Feed Claude your dbt model file, your LookML, or the dashboard JSON, and ask it to write the data dictionary entry. It will produce reviewable prose that's 80% correct. You edit the 20% where it guessed. Total time: 10 minutes per dashboard instead of two hours, and the failure mode is "wrong description" not "wrong number." Much easier to catch in review.

This is the highest-leverage AI use I've found. Documentation is the thing every analytics team says it'll do "next quarter" and never does. AI removes the activation energy.

Requirements interview prep

Before you meet a stakeholder about a new dashboard, paste their Slack thread, the email chain, and the rough ask into Claude. Prompt it: "What are the five questions I should clarify before writing SQL for this request?" You'll get a list. Half the questions will be obvious. Two will catch ambiguity you missed. One will be useless. Net positive in 90 seconds.

The point isn't that AI knows your business. It's that AI is a competent rubber duck that asks better follow-up questions than you do at 9 a.m. on a Tuesday.

Anomaly detection narrative

You spotted the spike. Conversion is down 23% in the southeast region, week-over-week. You know it's the new pricing test. Now you need to write the Slack message in your team's voice, with the right hedge language, the right next steps, and a call to the affected stakeholders. AI drafts that message in 15 seconds. You edit the tone, ship it, move on.

Note the order. You did the analysis. AI did the writing. Reverse that order and you're back to "AI says revenue is up 14%."

Data dictionary maintenance

Most teams have no column descriptions in their warehouse. Zero. Empty strings. Auto-generating descriptions from column name plus sample values plus parent table is not perfect, but "imperfect description" beats "no description" every time. Run it as a batch job once a quarter, human-edit the obviously wrong ones, ship.

Where AI breaks

These are the failure modes that ship wrong numbers to executives. Memorize them.

Data semantics

orders.status = 'completed' does not mean "revenue" in your warehouse. It might exclude refunded orders, or it might not. It might count subscription renewals as separate orders, or roll them up. It might use gross_amount or net_amount or amount_after_tax_and_discount. AI does not know which. AI will guess. The guess will be plausible. The guess will frequently be wrong, and it will be wrong in a way that's almost impossible to spot from the query alone. The SQL is syntactically perfect, the join compiles, the number returns. You have to know the warehouse to catch it.

NULL handling

COUNT(column) excludes NULLs. COUNT(*) doesn't. SUM over a column with NULLs returns NULL if every value is NULL, but a number if any value is non-NULL. LEFT JOIN on a one-to-many relationship blows up your row count if you forget to aggregate. AI gets these wrong roughly half the time on real schemas, because half the time the public training data has the bug too. If your dashboard suddenly shows 4x the customers it had yesterday, check the joins.

Business logic

"Active customer" means something different at every company. At a B2B SaaS company it might be "logged in within 30 days." At a marketplace it might be "completed a transaction in the last 90 days." At a fintech it might be "balance above $0 and no fraud flag." AI defaults to whatever definition is most common in its training data, which is almost certainly not yours. Same with "MRR," "churn," "engagement," "retention." Every metric has five plausible definitions. Your team uses one of them. AI doesn't know which one.

Governance and lineage

AI happily writes a query against customers_legacy_v2, a deprecated table that hasn't been refreshed since November. AI does not know your dbt freshness SLA. AI does not know that the marketing team forks the customers table on Tuesdays for a campaign export and the fork has slightly different logic. AI does not know that you migrated revenue tracking to a new table six weeks ago and the old one is read-only.

This is the failure mode that scales worst. As your warehouse evolves, AI's mental model of it falls further behind, and the queries it drafts get more confidently wrong over time.

The "AI generated this query" trap

Here's the hard line. Never paste an AI-generated query into a dashboard, a stakeholder report, or an executive deck without doing all four of these checks:

  1. Run it against a known result. Pick a slice you've validated before (last month's number that the CFO already signed off on) and confirm the AI query reproduces it.
  2. Eyeball the row counts. If you expect ~10,000 customers and the query returns 47,000, you have a fanout. If it returns 12, you have a filter that's too aggressive.
  3. Check joins for fanout. Look at every JOIN. Is the right side guaranteed unique on the join key? If not, you need DISTINCT or aggregation.
  4. Confirm the date filter does what it claims. "Last month" in BI tool A might mean "last 30 days." In tool B it might mean "previous calendar month." In SQL written by AI, it could be either, plus an off-by-one error.

The pattern to internalize is: AI wrote it, I verified it, I own it. Not: AI said the number is X. If you can't defend the query line by line in front of the VP of Finance, you can't ship the answer. If you ship it anyway and it's wrong, "the AI wrote it" is not a defense. You wrote it, by accepting it.

Governance and versioning

Treat AI-assisted SQL like any other code. Commit it to your dbt repo or your analytics GitHub. Use pull request review, even if the only reviewer is you 24 hours later with fresh eyes. Tag the model and prompt in the commit message if it materially shaped the logic, so future you knows where the weird CTE structure came from.

Build a small forbidden_patterns.md file in your team's repo. Ten to twenty entries, each one a trap you've personally hit:

  • Joins that look right but aren't (the email vs customer_id example above)
  • Columns that have changed meaning (status used to include "shipped," now it doesn't)
  • Tables not to query directly (raw.events is firehose, use analytics.sessions)
  • Metric definitions that differ from the public default (your "active user" definition)
  • SLA-sensitive tables (this one has a 24-hour lag, this one is real-time)

Feed that file into Cursor's context for every SQL session. It's the cheapest, highest-leverage governance tool I've found. The AI is much less likely to walk into a known trap if you've told it where the traps are.

The 30-day plan to integrate AI without losing your craft

Don't try to AI-ify your whole workflow on day one. Stair-step it.

Week 1, calibration. Pick one tool. Cursor plus Claude is the safe default; if your company has Copilot deployed, use that. Use it only for SQL refactoring on queries you already understand and have already validated. Compare every output to what you would have written. Build a sense of where it's reliable and where it hallucinates. The goal is calibration, not productivity.

Week 2, documentation. Add the low-risk, high-leverage tasks. Auto-draft data dictionary entries. Generate dashboard READMEs. Write runbook drafts for your team's recurring asks. Failure mode here is a sentence you have to rewrite, not a number that's wrong on the CFO's desk.

Week 3, requirements prep. Before every stakeholder meeting, run AI on the thread first. Ask for the five clarifying questions. Track which ones actually saved you a rewrite. After two weeks of this, you'll have a pattern for what AI catches and what it misses.

Week 4, codify. Write your team's ai-usage.md. Three sections: what AI is allowed to draft autonomously, what humans must verify before merge, and what is off-limits. A reasonable starting point:

  • Allowed: documentation drafts, refactor suggestions, anomaly narrative drafts after human analysis, requirements clarifying questions.
  • Verify before merge: any SQL touching production dashboards, any metric definition changes, any new dbt models.
  • Off-limits: auto-running AI-drafted SQL against prod without a LIMIT 100 and a human review, pasting any column with PII into a third-party AI tool that doesn't have a Data Processing Agreement signed, using AI to write SQL in dialects you don't read fluently.

That last one is the one most people skip. If you can't read Snowflake-specific window function syntax, you can't review what Cursor wrote. You're trusting it on faith. Don't.

Optional: the ACE Framework angle

If your company is rolling out an AI Operating Model based on the ACE Framework, the analyst workflow maps cleanly onto it. AI handles Generate (drafting SQL, drafting docs, drafting Slack updates) and assists Analyze (anomaly summaries, refactor suggestions). Humans own Ingest (data semantics, what each column actually means in this business), Predict (causal interpretation of why a metric moved), and Execute (shipping the answer to a stakeholder with confidence and a defensible logic trail).

That's the one-paragraph version. The point is that the high-trust, business-context-heavy parts of the job stay with humans for a long time. The mechanical parts go to AI. Your career is built on the first half.

Common pitfalls

A few traps I see analysts walk into, in rough order of frequency:

  • Letting stakeholders self-serve with the BI copilot and treating analyst review as optional. The copilot ships wrong numbers; the analyst gets blamed anyway.
  • Pasting prod schema with PII into a third-party AI tool that doesn't have a DPA. This is a fireable offense at most companies. Check before you paste.
  • Using AI to write SQL in dialects you don't read fluently. BigQuery's ARRAY_AGG is not Postgres's, Snowflake's QUALIFY is not Redshift's. You can't review what you can't read.
  • Skipping the "compare to a known result" step because the query "looks right." This is how 14% revenue growth ships when actual growth is 3%.
  • Treating the BI copilot's confidence as evidence of correctness. It will say "revenue is up 14%" with the same tone whether the query is right or catastrophically wrong.

Templates and tools

Three artifacts to build in your first 30 days. Keep them in your team's analytics repo.

  1. forbidden_patterns.md: start with ten entries from your warehouse. Real joins that have burned someone. Add one per month as you find them.
  2. SQL review checklist: eight items to run on any AI-drafted query before merge: known-result check, row count sanity, fanout check, date filter check, NULL handling check, business logic check (does "active" mean what we mean?), governance check (is this table current?), readability check.
  3. Stakeholder interview prep prompt: a saved Claude prompt you paste a Slack thread into, gets back five clarifying questions. Refine it monthly.
  4. ai-usage.md: your team policy. Living document. Review quarterly.

Measuring success

You'll know this is working when three things are true. You ship faster on the documentation and refactoring side, and you can point to specific deliverables that didn't exist before. Stakeholders trust your numbers more, not less, because you're routinely catching the BI copilot's errors before they land in Slack. And you can articulate, in one sentence per query, why the AI's first draft was wrong.

That last sentence is the one that makes you more senior in 2026, not more replaceable. "It joined on email instead of customer_id." "It missed the refund filter." "It used the deprecated revenue table." Each sentence is a piece of warehouse-specific judgment that AI does not have and cannot have without you. That's the moat. Build it.

The job is no longer typing the query. The job is owning the answer. AI wrote it, you verified it, you own it. That's the line. That's the whole article.

Learn More