SQL for Product Managers
The Query Lifecycle, From Question to Decision

Writing the query is the middle of the process, not the whole thing. Most bad decisions from data happen at the two ends.
Stage | What happens | The PM question that saves the analysis |
|---|---|---|
01 Frame the question | Turn a vague curiosity into something a query can actually answer | Is this genuinely one question, or three questions wearing a trench coat? |
02 Find the tables | Identify where the relevant data lives | Am I looking at the table that actually reflects what happened, or a table that reflects what someone intended to happen? |
03 Write the query | The SQL itself | Am I filtering, grouping, and joining in a way that matches the real-world question, not just a way that runs without an error? |
04 Sanity-check | Compare the result against something you already know | Does this number pass the smell test against anything else I already know to be true? |
05 Interpret | Turn the number into a statement about the product | Am I confusing correlation in this result for causation? |
06 Share | Communicate the finding | Would someone reading only my summary, not my query, come away with an accurate picture? |
07 Decide | Use the finding to actually do something | What decision does this number change, and would a different plausible number have changed it differently? |
Two stages deserve special attention because they're where nearly all "the data was wrong" stories actually originate: 04 Sanity-check and 07 Decide. A query that runs without an error is not the same as a query that's correct. SQL will happily and confidently return a wrong number if your JOIN silently duplicated rows or your WHERE clause excluded more than you meant it to. We'll build the specific sanity-check habits in Module 4, but the mental model starts here: the query executing successfully is the beginning of trusting a number, not the end.
YOUR MOVE THIS WEEK
Think of the last data-driven decision your team made. Walk it through these seven stages. Which stage, if any, got skipped? In most teams, it's Sanity-check