Weeks 1–3 · Foundations
Select, filter, group, and checking your row counts.
Four programs of 8 to 12 weeks, written on real queries and real questions.
We build SQL from the inside: what a join actually does to row counts, when aggregation lies to you, readable CTEs instead of nested subqueries, and window functions — which unlock most of the analysis people think requires a scripting language.
Select, filter, group, and checking your row counts.
Every type, and what each does to your data.
Queries another person can read.
Running totals, ranks and period comparisons.
What decision does this number serve.
Nulls, duplicates and honest handling.
Definitions people can agree on.
Saying what the data can't tell you.
An analysis starts with the decision someone needs to make. We work on getting to that, on cleaning data without quietly deleting the inconvenient rows, on choosing metrics that can't be gamed, and on stating limitations plainly — which builds far more trust than confident overreach.
Most dashboards are a wall of charts nobody opens twice. We work on choosing the right chart, on layout and hierarchy, on documenting metric definitions so numbers stop being argued about, and on keeping a dashboard maintainable after you've moved on.
Matching the shape of the question.
Hierarchy, and what goes above the fold.
Documented, agreed, consistent.
Something that still works in six months.
Questions to ask before you open the database.
Answer first, method underneath.
Five minutes, one slide, one recommendation.
When people dislike the number.
Good analysis dies in bad communication. We work on scoping requests before starting, writing a summary that leads with the answer, presenting to people who want a decision rather than a method, and handling the pushback that arrives when findings are inconvenient.
Twenty minutes on your work and where it gets difficult. Free.