🟢 How to Turn "Here Are the Numbers" Into "Here's What We Should Do"


Hello Reader,

Imagine you're an analyst at Summit Adventures.

Monday morning, you get called into a meeting and your VP asks: "How's revenue looking across our expedition types?"

You pull up your analysis. You've got clean numbers. You present them:

"Cultural expeditions brought in $374K. Photography brought in $370K. Hiking was $352K. Safari was $349K. Climbing was $298K."

Silence. Then someone asks: "Okay... but what should we do about it?"

You've answered the question accurately. But you haven't answered the question that actually matter.

This is the gap that separates "reporting" from "analysis". And one simple question closes it.

The So What Framework

Every time you present a number, ask yourself: "So what?"

Not once. At least twice.

Here's the difference:

  • Level 1 (The Number): "Cultural expeditions generated $374K in revenue."
  • Level 2 (The Context): "Cultural expeditions lead revenue at $374K, but photography has 39% more bookings at a lower average value."
  • Level 3 (The Recommendation): "Photography drives the most volume (193 bookings) but at the lowest per-booking value ($1,441). Raising photography prices by 10% to match safari's average ($1,459) could generate an additional $37K annually without reducing demand."

Same data. Three levels of usefulness. Level 1 gets you a nod. Level 3 starts a conversation.

The Query: Revenue by Expedition Type

Here's what I ran against the Summit Adventures database (the fake adventure tourism company I created to help people learn business analytics):

-- Revenue performance with context metrics
SELECT 
    e.expedition_type,
    COUNT(DISTINCT b.booking_id) AS total_bookings,
    SUM(p.amount) AS total_revenue,
    ROUND(AVG(p.amount), 2) AS avg_booking_value,
    ROUND(
        SUM(p.amount) * 100.0 / (
            SELECT SUM(amount) 
            FROM payments 
            WHERE payment_status = 'completed'
        ), 1
    ) AS pct_of_total_revenue
FROM expeditions e
    INNER JOIN expedition_instances ei 
        ON e.expedition_id = ei.expedition_id
    INNER JOIN bookings b 
        ON ei.instance_id = b.instance_id
    INNER JOIN payments p 
        ON b.booking_id = p.booking_id
WHERE p.payment_status = 'completed'
    AND b.status IN ('completed', 'confirmed')
GROUP BY e.expedition_type
ORDER BY total_revenue DESC;

Now here's where the So What Framework earns its name.

Applying "So What?" to Each Finding

Finding 1: Cultural expeditions lead in total revenue ($374K).

  • So what? They generate the most revenue with fewer bookings (139) than photography (193). Their per-booking value ($1,959) is 36% higher than photography.
  • So what? Cultural trips attract customers willing to spend more per experience. This segment may respond to premium upsells — upgraded accommodations, exclusive guide access, private tours.

Recommendation: Test a "premium cultural" tier at $2,400+ and measure conversion vs. the current average.


Finding 2: Photography leads in booking volume (193) but has the lowest average value ($1,441).

  • So what? High demand, lower price point. This is your widest funnel. Your most popular entry point.
  • So what? These customers are already buying. The question is whether you can increase their lifetime value. Do photography customers come back for other trip types?

Recommendation: Create a "photography + cultural" bundle. Cross-sell your highest-margin category to your highest-volume audience.


Finding 3: Hiking has the highest per-booking value ($2,095) with moderate volume (125 bookings).

  • So what? Hiking customers pay more per trip than any other segment. But there are fewer of them.
  • So what? Is the lower volume a supply issue (not enough hiking trips offered) or a demand issue (smaller market)? If supply: add more hiking instances. If demand: maintain premium pricing and protect margins.

Recommendation: Check how many hiking expedition instances ran vs. other types. If hiking runs fewer trips, the fix is operational, not marketing.

The Pattern: Three Levels of "So What?"

Use this progression with any metric:

Level 1: THE NUMBER
"Revenue was $374K."
Level 2: THE CONTEXT  
"Revenue was $374K — 16.3% of total, with the second-highest 
per-booking value across all categories."
Level 3: THE RECOMMENDATION
"Revenue was $374K with strong per-booking value. 
We should test premium pricing and cross-sell from 
our highest-volume category (photography) into cultural."

Each level answers the question that the previous level creates. The number creates "is that good?" The context creates "what should we do?" The recommendation creates a decision.

Adding Time Context: The Quarterly View

The So What Framework works even better with trends. Here's the quarterly breakdown:

-- Quarterly revenue with context
SELECT 
    EXTRACT(QUARTER FROM b.booking_date)::int AS quarter,
    COUNT(*) AS bookings,
    ROUND(SUM(p.amount)::numeric, 2) AS quarterly_revenue
FROM bookings b
    INNER JOIN payments p ON b.booking_id = p.booking_id
WHERE p.payment_status = 'completed'
    AND b.status IN ('completed', 'confirmed')
    AND EXTRACT(YEAR FROM b.booking_date) = 2025
GROUP BY EXTRACT(QUARTER FROM b.booking_date)
ORDER BY quarter;

Without "So What": "Revenue peaked in Q2 and declined in Q3-Q4."

With "So What": "Q2 was our strongest quarter at $556K, but Q3 dropped 60% to $222K. This isn't necessarily alarming — adventure travel is seasonal, and Q3-Q4 typically see lower bookings. The question is: did we capture the Q2 peak effectively, and can we shift some demand into Q3 with early-bird pricing?"

See how the same numbers tell a completely different story when you add context and direction?

Common Mistakes When Presenting Metrics

Mistake 1: Leading with methodology

"I joined the bookings table to payments using the booking_id foreign key, then grouped by expedition_type with a SUM aggregation..."

Your executive stopped listening after "joined." Lead with the finding, keep the method for the appendix.

Mistake 2: Presenting all five categories as equally important

Not every row in your results deserves equal airtime. Pick the 2-3 that drive decisions and go deep. Mention the rest briefly.

Mistake 3: Stopping at "Here are the numbers"

This is the biggest one. A table of numbers isn't analysis — it's a spreadsheet. Analysis starts when you add interpretation.

Try This at Your Job

Next time you present any metric:

  1. State the number (Level 1)
  2. Add context - compare it to something: last quarter, the average, another segment (Level 2)
  3. Make a recommendation - even if it's tentative: "I'd suggest we explore..." (Level 3)

You'll notice the conversation shifts. Instead of "okay, thanks" you'll hear "that's interesting - let's discuss."

That's the difference the So What Framework makes.

Until next time,

Brian

Brian Graves, creator of Analytics in Action

Say 👋 on X/Twitter, LinkedIn, or book a call with me. You can always reply to these emails. I check them all.


P.S. The So What Framework is the core concept behind Module 6 of SQL for Business Impact. Every module teaches you not just the SQL, but how to make your results meaningful to the people making decisions. Check it out at sqlforbusinessimpact.com.

P.P.S. What's a finding you've presented recently that could have used a better "so what"? Hit reply and tell me — I'd love to help you reframe it. I read every response.

Starting With Data

Learn to build analytics projects with SQL, Tableau, Excel, and Python. For data analysts looking to level up their career and complete beginners looking to get started. No fluff. No theory. Just step-by-step tutorials anyone can follow.

Read more from Starting With Data

Hello Reader, This week's newsletter is a bit different. There's SQL in here, but the real topic is career strategy. Because one of the most common questions I get from readers is some version of: "I've been learning SQL for a few months. How do I prove I can actually do this job?" The honest answer: a portfolio of 2-3 projects that demonstrate business thinking, not just technical syntax. The problem is most portfolios I've reviewed look the same. A Kaggle competition. A tutorial from...

Hello Reader, A common analytics question that sounds simple but isn't: "Which customers have booked the same type of expedition more than once?" You can't answer this with a regular JOIN between two different tables. The information lives in one table. You need to compare rows within that table to find patterns. That's what a self-JOIN does. It joins a table to itself. It sounds unusual, but once you see the pattern, you'll recognize situations where it's exactly what you need. The Business...

Hello Reader, You've built a clean customer report. Locations, booking history, revenue by region. You send it off to whoever asked for it. Ten minutes later: "Why does this report show blank cells in the location column? And why do the totals not add up?" Welcome to the NULL problem. You're going to learn how to solve it once and for all today. In the Summit Adventures database (the fake adventure tourism company I created to help people learn business analytics), 78.2% of customers don't...