Making Data Sing
A framework for asking better questions of data

Make your data sing.

Handed a new dataset, most of us group by a column, sum a number, sort, and stop. "The most common name is James." True, but nobody leans forward. Better questions come from noticing what kinds of columns you have and which ones appear together.

The whole framework in five notes. Each step climbs from a flat group-by toward a question worth answering. Click a note to jump to it.

The difference in one example
Flat
“Michael is the most common boys' name.”

Group by name, sum, sort. Done.

Singing
“Michael held #1 for decades, but today's #1 name covers a far smaller share of babies. Parents are spreading out.”
rankshareconcentration

Data: U.S. Social Security Administration baby names by state, 1910–2021 (names with fewer than 5 babies in a state and year are left out). Hover the charts for values.

1Type

Name each column's job

Every column does one of five jobs. Say it in plain English. Bottom row: the five columns of the baby-names dataset, one per job.

💡 Some columns have two jobs. A year is a When, but also an ordering. A state is a Where, but also a Kind that nests inside a region. Spotting double jobs is how you find step 4.

2Pair

Every pair of types asks its own question

Pick two columns and find their types on the grid. The cell is a ready-made question. Outlined cells are the richest pairs: start there.

3Move

Nine moves, three families

A move is a small transformation that turns a flat answer into an interesting one. Almost every good question uses at least one. Try to use moves from two different families.

Moves in action

Spotlight · peak

Jennifer shot up and fell back within one generation. Elizabeth never left. Who × When + peak, measured as a share, so baby booms don't distort it.

Contrast · over-index

The most common names in Utah look like everywhere else. The most distinctive ones don't. Who × Where + over-index.

Spotlight · reversal

The pattern breaks: a name switches sides. Who × Kind × When + share + reversal.

Spotlight · the identifier is data

The name itself is a column

Treat the text as data: its length, first letter, last letter, number of vowels. Then any other move applies.

Seed: “boys' names ending in n.”
Full question: “What share of boys born each year got a name ending in ‘n’, and when did it start rising?”

4Shape (advanced)

Knock on three doors

So far every row stands alone. When certain columns appear together, rows start to relate to each other and become a journey, a basket, a network or a hierarchy. Ask three questions of every dataset. Each "yes" opens a new toolkit, and the technical step is usually small.

⭐ Hidden event logs. Case + activity + time = an event log, ready for process mining. Clickstreams, support tickets, course enrollments, order fulfillment and git commits are all event logs that nobody treats that way. Ask: what paths do cases actually take, and where do they get stuck?
5Sharpen

Grow a seed into a full question

Good questions start as short, vague seed phrases. You can't compute a seed. A full question spells out five parts.

🧪 The test: could two classmates compute the same answer from your question? If not, it's still a seed. And write down what you expect before you compute. The gap between expectation and result is where insight lives.

Checklist for any new dataset

  1. Type every column: Who, Kind, When, Where, How much.
  2. Pair types: pick two outlined cells and write their questions.
  3. Move: apply moves from at least two families.
  4. Shape: knock on all three doors. Order? Pair? Nest?
  5. Sharpen three seeds into full questions, and write your expected answer first.