The signal log
One row per quote. A structured way to hold raw feedback without losing the exact words.
Any time a pile of reviews, tickets, or call notes needs to become something you can sort and defend.
- 1
Source
Keeps every claim traceable back to where it came from, so nobody has to trust your summary.
What it asksWhere did this come from? Channel, date, and who said it if you know.
Filled inApp Store review, 14 Aug, iOS, 3 stars
How it goes wrongSkipping the date. Six months later nobody can tell if a complaint is about the current release or one three versions ago.
- 2
Quote, verbatim
The exact words carry information a paraphrase throws away: tone, specificity, whether they blame themselves or the app.
What it asksCopy the sentence exactly. Do not summarise, do not fix the grammar.
Filled in"it keeps saying my bank isnt supported but its literally chase, one of the biggest banks in the country"
How it goes wrongParaphrasing it into "user reports bank search issue," which is exactly what a model does when asked to summarise instead of extract. The mention of a specific well-known bank is lost, and with it the fact that this is a search index problem, not a coverage problem.
- 3
Label
Groups the same underlying problem said different ways so you can count it.
What it asksWhat's the underlying problem, in two or three words? Use a short fixed vocabulary, don't invent a new label per row.
Filled inbank-search-fuzzy-match
How it goes wrongA new label for every row because every sentence is worded differently. Cap the vocabulary at 8 to 10 labels before reading a single row, and force each one into the closest fit.
- 4
Who it's from
Not every user is equally informative. A churned power user and a day one signup are different signals.
What it asksNew user, existing user, or churned. Guess if you have to, and say you guessed.
Filled inNew user, signed up but never linked a bank (guessed from context: "I just downloaded this")
How it goes wrongTreating every row as equally weighted when a churned power user complaining is worth more than ten day one signups hitting a rough edge they'll happily forgive.
- 5
Severity
Not every complaint is equally costly, so rank before counting.
What it asksOn a 1 to 5 scale, how much does this block the person from getting value, not how angry they sound.
Filled in5, they cannot complete signup at all
How it goes wrongScoring by how angry the review sounds rather than how blocking the problem is. A calm review about a total blocker matters more than a furious one about a font size.
Take the whole thing
# Signal log One row per distinct quote. Never edit the words. | Date | Source | Quote (verbatim) | Label | User type | Severity 1-5 | |---|---|---|---|---|---| | | | | | | | Label vocabulary (fix this before you start, 8 to 10 max): 1. 2. 3. 4. Rules: - One row per quote, not per person. - Copy the quote exactly, misspellings and all. - Severity measures how much it blocks value, not how angry it sounds. - Guess user type if you must, but write "guessed" next to it.
The PRD that survives contact with engineering
One page. Four sections engineers actually read before they start arguing about scope.
The opportunity tree, on one page
Outcome, opportunity, solution, experiment. The map from what you're chasing down to what you're testing this week.
The experiment brief
The hypothesis, the metric, the sample, and the rule for stopping, all written before the test runs, not after.