Queries · q362 · Head of Pricing and Promotions · week 2, night 2
“With a query that doesn't silently drop unmatched orders, how do all 291 orphan orders (customer's most-recent subscription status = 'active') actually break down: preceded their first subscription, fell between two subscription stints, or genuinely unexplained?”
Fictional people at a fictional company, each played by a language-model agent. Who they are and what they are told
Week 1; shared with Tobias Lindqvist, Chief Financial Officer
Finance questions the cost of discounts. Which promotions and coupons brought additional sales, which only gave away margin, and is anything being misused?
The manager, at the start of week 2
Subject: Good work — here's where I want to go next
Oliver,
This is exactly the kind of memo I needed — it separates real findings from artifacts, which is rarer than it should be. A few reactions and where I want to push next week.
The lapsed-subscriber giveaway (~€57k) is now the headline for Tobias, not the promo/coupon story — good catch pulling it out. Before I take that number upstairs, I want it airtight. And the Welcome10 broad refund pattern is the one piece of "margin erosion" I think is genuinely actionable rather than a sample-size illusion, so I want to go a layer deeper there before we talk about capping anything.
On incrementality — I accept we may never get a clean causal answer here, but I'd like one more honest attempt before I write it off as "probably just bigger carts clear the threshold anyway."
Questions for this week:
No need to re-litigate the B2B volume-tier outlier — just keep it excluded as you planned. Let's talk Wednesday before the last batch so I can steer based on what the orphan-subscription check turns up.
Thanks, Marco
The analyst · week 2, night 2, request 1 of 3
Night 1 raised one real problem and gave two solid answers:
Report 1 (the 'active' bucket breakdown) came back broken: only 1 of the 3 categories printed (88 orders, 30.2%), leaving 203 of the 291 orders unaccounted for entirely rather than showing 0-count rows. That smells like an inner-join dropping orders that had no matching 'older subscription' row — i.e. the 'preceded first-ever subscription' case was silently excluded rather than counted as zero. I can't hand Marco a number built on a query that's missing 70% of its own population, so this is priority one tonight: re-run with explicit NOT EXISTS/LEFT JOIN logic and a self-check total that must sum to 291.
Report 2 is a genuinely good, clean answer to Marco's trend question: leakage rose from ~€200/month in 2023 to a 2024 peak (~€2,000-3,300/month, Feb-Oct 2024), then has declined every month since, down to €819 in Nov 2025 and €0 in Dec 2025. This is the opposite of accelerating — it looks like a historical, now-shrinking gap. I want one more cut — by tenant — before I tell Marco it's broadly resolved, in case the decline is really just one or two tenants fixing something while others stay flat (which would change the "how urgent" answer).
Report 3 (Welcome10 drivers) shows returns spread across many apparel/footwear categories (Outerwear and Boots are the largest single contributors but no runaway concentration), with 9-19 day order-to-return gaps — consistent with normal apparel fit/try-and-return behavior, not quick-flip abuse. Combined with last week's finding that this instance's return rate is only +2.3pp above this tenant's own baseline (which is already ~37%), I think the right framing is shifting: refund-exceeding-discount-cost looks largely mechanical for any % discount at a high-baseline-return apparel merchant, not something the coupon itself is causing. I don't think this needs another report — I'll fold it into the memo with that caveat.
Tonight's three slots: (1) fix the broken categorization query, (2) the size-matched incrementality re-cut Marco asked for, (3) a tenant-level cut of the leakage trend to confirm the decline is broad-based before I call it resolved.
The engineer · 1 dry run on the empty schema, then the submission
WITH discount_filtered AS ( SELECT od0.tenant_id, od0.order_id, SUM(od0.amount) AS discount_amount, MIN(od0.currency_code) AS currency_code FROM order_discounts od0 JOIN discounts d0 ON d0.id = od0.discount_id AND d0.tenant_id = od0.tenant_id WHERE d0.name = 'Subscription delivery (prepaid)' GROUP BY od0.tenant_id, od0.order_id ), base_orders AS ( SELECT o1.id AS order_id, o1.tenant_id, o1.user_id, o1.placed_at, df1.discount_amount, df1.currency_code AS discount_currency_code FROM orders o1 JOIN discount_filtered df1 ON df1.order_id = o1.id AND df1.tenant_id = o1.tenant_id WHERE o1.placed_at >= DATE '2025-01-01' AND o1.placed_at < DATE '2026-01-01' AND o1.status <> 'cancelled' ), orphan_orders AS ( SELECT bo2.* FROM base_orders bo2 WHERE NOT EXISTS ( SELECT 1 FROM subscriptions s2 WHERE s2.tenant_id = bo2.tenant_id AND s2.user_id = bo2.user_id AND s2.status IN ('trialing', 'active', 'past_due') AND s2.started_at <= bo2.placed_at AND (s2.ended_at IS NULL OR s2.ended_at >= bo2.placed_at) ) ), ranked_subs AS ( SELECT s3.tenant_id, s3.user_id, s3.id AS subscription_id, s3.started_at, s3.ended_at, s3.status, ROW_NUMBER() OVER ( PARTITION BY s3.tenant_id, s3.user_id ORDER BY s3.started_at DESC, s3.id DESC ) AS recency_rank FROM subscriptions s3 ), most_recent_sub AS ( SELECT rs4.tenant_id, rs4.user_id, rs4.subscription_id AS mrs_subscription_id, rs4.status AS mrs_status FROM ranked_subs rs4 WHERE rs4.recency_rank = 1 ), active_bucket_orphans AS ( SELECT oo5.order_id, oo5.tenant_id, oo5.user_id, oo5.placed_at, oo5.discount_amount, oo5.discount_currency_code, mrs5.mrs_subscription_id FROM orphan_orders oo5 JOIN most_recent_sub mrs5 ON mrs5.tenant_id = oo5.tenant_id AND mrs5.user_id = oo5.user_id WHERE mrs5.mrs_status = 'active' ), classified AS ( SELECT abo6.order_id, abo6.tenant_id, abo6.user_id, abo6.placed_at, abo6.discount_amount, abo6.discount_currency_code, CASE WHEN NOT EXISTS ( SELECT 1 FROM subscriptions s7 WHERE s7.tenant_id = abo6.tenant_id AND s7.user_id = abo6.user_id AND s7.id <> abo6.mrs_subscription_id AND s7.started_at <= abo6.placed_at ) THEN 'preceded first-ever subscription' WHEN EXISTS ( SELECT 1 FROM subscriptions s8 WHERE s8.tenant_id = abo6.tenant_id AND s8.user_id = abo6.user_id AND s8.id <> abo6.mrs_subscription_id AND s8.started_at <= abo6.placed_at AND (s8.ended_at IS NULL OR s8.ended_at >= abo6.placed_at) ) THEN 'unexplained' ELSE 'fell between two subscription stints' END AS category FROM active_bucket_orphans abo6 ), converted AS ( SELECT c9.category, c9.order_id, c9.tenant_id, c9.user_id, CAST(c9.tenant_id AS varchar) || ':' || CAST(c9.user_id AS varchar) AS customer_key, CASE WHEN c9.discount_currency_code = 'EUR' THEN c9.discount_amount ELSE c9.discount_amount / NULLIF(er9.rate, 0) END AS discount_amount_eur FROM classified c9 LEFT JOIN exchange_rates er9 ON er9.base_code = 'EUR' AND er9.quote_code = c9.discount_currency_code AND er9.as_of = CAST(c9.placed_at AS date) ), totals AS ( SELECT COUNT(*) AS total_orders FROM converted ) SELECT conv10.category, COUNT(*) AS order_count, ROUND(100.0 * COUNT(*) / t10.total_orders, 1) AS pct_of_bucket, COUNT(DISTINCT conv10.customer_key) AS distinct_customers, ROUND(SUM(conv10.discount_amount_eur), 2) AS total_discount_eur FROM converted conv10 CROSS JOIN totals t10 GROUP BY conv10.category, t10.total_orders ORDER BY order_count DESC, conv10.category ASC
WITH discount_filtered AS ( SELECT od0.tenant_id, od0.order_id, SUM(od0.amount) AS discount_amount, MIN(od0.currency_code) AS currency_code FROM order_discounts od0 JOIN discounts d0 ON d0.id = od0.discount_id AND d0.tenant_id = od0.tenant_id WHERE d0.name = 'Subscription delivery (prepaid)' GROUP BY od0.tenant_id, od0.order_id),base_orders AS ( SELECT o1.id AS order_id, o1.tenant_id, o1.user_id, o1.placed_at, df1.discount_amount, df1.currency_code AS discount_currency_code FROM orders o1 JOIN discount_filtered df1 ON df1.order_id = o1.id AND df1.tenant_id = o1.tenant_id WHERE o1.placed_at >= DATE '2025-01-01' AND o1.placed_at < DATE '2026-01-01' AND o1.status <> 'cancelled'),orphan_orders AS ( -- Orders with the subscription-delivery discount that have no subscription -- covering placed_at with status in (trialing, active, past_due). SELECT bo2.* FROM base_orders bo2 WHERE NOT EXISTS ( SELECT 1 FROM subscriptions s2 WHERE s2.tenant_id = bo2.tenant_id AND s2.user_id = bo2.user_id AND s2.status IN ('trialing', 'active', 'past_due') AND s2.started_at <= bo2.placed_at AND (s2.ended_at IS NULL OR s2.ended_at >= bo2.placed_at) )),ranked_subs AS ( SELECT s3.tenant_id, s3.user_id, s3.id AS subscription_id, s3.started_at, s3.ended_at, s3.status, ROW_NUMBER() OVER ( PARTITION BY s3.tenant_id, s3.user_id ORDER BY s3.started_at DESC, s3.id DESC ) AS recency_rank FROM subscriptions s3),most_recent_sub AS ( -- Each customer's most-recent subscription by started_at (the "bucket" status). SELECT rs4.tenant_id, rs4.user_id, rs4.subscription_id AS mrs_subscription_id, rs4.status AS mrs_status FROM ranked_subs rs4 WHERE rs4.recency_rank = 1),active_bucket_orphans AS ( -- The 291-order population: orphan orders for customers whose most-recent -- subscription is currently 'active'. SELECT oo5.order_id, oo5.tenant_id, oo5.user_id, oo5.placed_at, oo5.discount_amount, oo5.discount_currency_code, mrs5.mrs_subscription_id FROM orphan_orders oo5 JOIN most_recent_sub mrs5 ON mrs5.tenant_id = oo5.tenant_id AND mrs5.user_id = oo5.user_id WHERE mrs5.mrs_status = 'active'),classified AS ( -- Every order is assigned to exactly one of the three mutually-exclusive -- categories below (LEFT/NOT EXISTS pattern, no inner join drops rows). SELECT abo6.order_id, abo6.tenant_id, abo6.user_id, abo6.placed_at, abo6.discount_amount, abo6.discount_currency_code, CASE WHEN NOT EXISTS ( SELECT 1 FROM subscriptions s7 WHERE s7.tenant_id = abo6.tenant_id AND s7.user_id = abo6.user_id AND s7.id <> abo6.mrs_subscription_id AND s7.started_at <= abo6.placed_at ) THEN 'preceded first-ever subscription' WHEN EXISTS ( SELECT 1 FROM subscriptions s8 WHERE s8.tenant_id = abo6.tenant_id AND s8.user_id = abo6.user_id AND s8.id <> abo6.mrs_subscription_id AND s8.started_at <= abo6.placed_at AND (s8.ended_at IS NULL OR s8.ended_at >= abo6.placed_at) ) THEN 'unexplained' ELSE 'fell between two subscription stints' END AS category FROM active_bucket_orphans abo6),converted AS ( SELECT c9.category, c9.order_id, c9.tenant_id, c9.user_id, CAST(c9.tenant_id AS varchar) || ':' || CAST(c9.user_id AS varchar) AS customer_key, CASE WHEN c9.discount_currency_code = 'EUR' THEN c9.discount_amount ELSE c9.discount_amount / NULLIF(er9.rate, 0) END AS discount_amount_eur FROM classified c9 LEFT JOIN exchange_rates er9 ON er9.base_code = 'EUR' AND er9.quote_code = c9.discount_currency_code AND er9.as_of = CAST(c9.placed_at AS date)),totals AS ( SELECT COUNT(*) AS total_orders FROM converted)SELECT conv10.category, COUNT(*) AS order_count, ROUND(100.0 * COUNT(*) / t10.total_orders, 1) AS pct_of_bucket, COUNT(DISTINCT conv10.customer_key) AS distinct_customers, ROUND(SUM(conv10.discount_amount_eur), 2) AS total_discount_eurFROM converted conv10CROSS JOIN totals t10GROUP BY conv10.category, t10.total_ordersORDER BY order_count DESC, conv10.category ASC
“Submitted. Summary of the approach:
- Rebuilt the identical 291-order population (subscription-delivery discount, 2025 orders, not cancelled, no covering subscription in trialing/active/past_due, most-recent subscription by started_at = 'active') using NOT EXISTS so no orphan order is silently dropped.
- For each order, used NOT EXISTS/EXISTS checks against other (non-most-recent) subscriptions with started_at ≤ placed_at to classify into the three exhaustive, mutually-exclusive categories — so the counts are guaranteed by construction to sum to the full bucket.
- Converted discount amounts to EUR via exchange_rates (base EUR, quote = discount currency, as_of = placed_at date).
- Flagged two caveats in the submission note: the analyst should confirm the total equals 291 against last week's population, and there's no subscription status-history table, so coverage checks rely only on each subscription's own started_at/ended_at window.”
As Oliver Grant saw it, from the small dataset the agents worked on
category | order_count | pct_of_bucket | distinct_customers | total_discount_eur ------------+-------------+---------------+--------------------+------------------- unexplained | 291 | 100.0 | 60 | 11746.39 (1 rows)
The memo and the queries that followed; links found by title, so inferred
Later queries that build on this report:
It builds on:
Changed only where the benchmark needs the same result on every system
WITH discount_filtered AS ( SELECT od0.tenant_id, od0.order_id, od0.tenant_id AS tenant_id, od0.order_id AS order_id, SUM(od0.amount) AS discount_amount, MIN(od0.currency_code) AS currency_code FROM order_discounts od0 JOIN discounts d0 ON d0.id = od0.discount_id AND d0.tenant_id = od0.tenant_id WHERE d0.name = 'Subscription delivery (prepaid)' GROUP BY od0.tenant_id, od0.order_id),base_orders AS ( SELECT o1.id AS order_id, o1.tenant_id, o1.user_id, o1.placed_at, df1.discount_amount, o1.tenant_id AS tenant_id, o1.user_id AS user_id, o1.placed_at AS placed_at, df1.discount_amount AS discount_amount, df1.currency_code AS discount_currency_code FROM orders o1 JOIN discount_filtered df1 ON df1.order_id = o1.id AND df1.tenant_id = o1.tenant_id WHERE o1.placed_at >= DATE '2025-01-01' AND o1.placed_at < DATE '2026-01-01' AND o1.status <> 'cancelled'),orphan_orders AS ( -- Orders with the subscription-delivery discount that have no subscription -- covering placed_at with status in (trialing, active, past_due). SELECT bo2.* FROM base_orders bo2 WHERE NOT EXISTS ( SELECT 1 FROM subscriptions s2 WHERE s2.tenant_id = bo2.tenant_id AND s2.user_id = bo2.user_id AND s2.status IN ('trialing', 'active', 'past_due') AND s2.started_at <= bo2.placed_at AND (s2.ended_at IS NULL OR s2.ended_at >= bo2.placed_at) )),ranked_subs AS ( SELECT s3.tenant_id, s3.user_id, s3.tenant_id AS tenant_id, s3.user_id AS user_id, s3.id AS subscription_id, s3.started_at, s3.ended_at, s3.status, s3.started_at AS started_at, s3.ended_at AS ended_at, s3.status AS status, ROW_NUMBER() OVER ( PARTITION BY s3.tenant_id, s3.user_id ORDER BY s3.started_at DESC, s3.id DESC ORDER BY s3.started_at DESC NULLS FIRST, s3.id DESC NULLS FIRST ) AS recency_rank FROM subscriptions s3),most_recent_sub AS ( -- Each customer's most-recent subscription by started_at (the "bucket" status). SELECT rs4.tenant_id, rs4.user_id, rs4.tenant_id AS tenant_id, rs4.user_id AS user_id, rs4.subscription_id AS mrs_subscription_id, rs4.status AS mrs_status FROM ranked_subs rs4 WHERE rs4.recency_rank = 1),active_bucket_orphans AS ( -- The 291-order population: orphan orders for customers whose most-recent -- subscription is currently 'active'. SELECT oo5.order_id, oo5.tenant_id, oo5.user_id, oo5.placed_at, oo5.discount_amount, oo5.discount_currency_code, mrs5.mrs_subscription_id oo5.order_id AS order_id, oo5.tenant_id AS tenant_id, oo5.user_id AS user_id, oo5.placed_at AS placed_at, oo5.discount_amount AS discount_amount, oo5.discount_currency_code AS discount_currency_code, mrs5.mrs_subscription_id AS mrs_subscription_id FROM orphan_orders oo5 JOIN most_recent_sub mrs5 ON mrs5.tenant_id = oo5.tenant_id AND mrs5.user_id = oo5.user_id WHERE mrs5.mrs_status = 'active'),classified AS ( -- Every order is assigned to exactly one of the three mutually-exclusive -- categories below (LEFT/NOT EXISTS pattern, no inner join drops rows). SELECT abo6.order_id, abo6.tenant_id, abo6.user_id, abo6.placed_at, abo6.discount_amount, abo6.discount_currency_code, abo6.order_id AS order_id, abo6.tenant_id AS tenant_id, abo6.user_id AS user_id, abo6.placed_at AS placed_at, abo6.discount_amount AS discount_amount, abo6.discount_currency_code AS discount_currency_code, CASE WHEN NOT EXISTS ( SELECT 1 FROM subscriptions s7 WHERE s7.tenant_id = abo6.tenant_id AND s7.user_id = abo6.user_id AND s7.id <> abo6.mrs_subscription_id AND s7.started_at <= abo6.placed_at ) THEN 'preceded first-ever subscription' WHEN EXISTS ( SELECT 1 FROM subscriptions s8 WHERE s8.tenant_id = abo6.tenant_id AND s8.user_id = abo6.user_id AND s8.id <> abo6.mrs_subscription_id AND s8.started_at <= abo6.placed_at AND (s8.ended_at IS NULL OR s8.ended_at >= abo6.placed_at) ) THEN 'unexplained' ELSE 'fell between two subscription stints' END AS category FROM active_bucket_orphans abo6),converted AS ( SELECT c9.category, c9.order_id, c9.tenant_id, c9.user_id, c9.category AS category, c9.order_id AS order_id, c9.tenant_id AS tenant_id, c9.user_id AS user_id, CAST(c9.tenant_id AS varchar) || ':' || CAST(c9.user_id AS varchar) AS customer_key, CASE WHEN c9.discount_currency_code = 'EUR' THEN c9.discount_amount ELSE c9.discount_amount / NULLIF(er9.rate, 0) ELSE CAST(c9.discount_amount / NULLIF(er9.rate, 0) AS NUMERIC(18,6)) END AS discount_amount_eur FROM classified c9 LEFT JOIN exchange_rates er9 ON er9.base_code = 'EUR' AND er9.quote_code = c9.discount_currency_code AND er9.as_of = CAST(c9.placed_at AS date)),totals AS ( SELECT COUNT(*) AS total_orders FROM converted)SELECT conv10.category, conv10.category AS category, COUNT(*) AS order_count, ROUND(100.0 * COUNT(*) / t10.total_orders, 1) AS pct_of_bucket, 100.0 * COUNT(*) / t10.total_orders AS pct_of_bucket, COUNT(DISTINCT conv10.customer_key) AS distinct_customers, ROUND(SUM(conv10.discount_amount_eur), 2) AS total_discount_eur SUM(conv10.discount_amount_eur) AS total_discount_eurFROM converted conv10CROSS JOIN totals t10GROUP BY conv10.category, t10.total_ordersORDER BY order_count DESC, conv10.category ASCORDER BY order_count DESC NULLS FIRST, conv10.category ASC NULLS LAST
WITH discount_filtered AS ( SELECT od0.tenant_id AS tenant_id, od0.order_id AS order_id, SUM(od0.amount) AS discount_amount, MIN(od0.currency_code) AS currency_code FROM order_discounts od0 JOIN discounts d0 ON d0.id = od0.discount_id AND d0.tenant_id = od0.tenant_id WHERE d0.name = 'Subscription delivery (prepaid)' GROUP BY od0.tenant_id, od0.order_id ), base_orders AS ( SELECT o1.id AS order_id, o1.tenant_id AS tenant_id, o1.user_id AS user_id, o1.placed_at AS placed_at, df1.discount_amount AS discount_amount, df1.currency_code AS discount_currency_code FROM orders o1 JOIN discount_filtered df1 ON df1.order_id = o1.id AND df1.tenant_id = o1.tenant_id WHERE o1.placed_at >= DATE '2025-01-01' AND o1.placed_at < DATE '2026-01-01' AND o1.status <> 'cancelled' ), orphan_orders AS ( -- Orders with the subscription-delivery discount that have no subscription -- covering placed_at with status in (trialing, active, past_due). SELECT bo2.* FROM base_orders bo2 WHERE NOT EXISTS ( SELECT 1 FROM subscriptions s2 WHERE s2.tenant_id = bo2.tenant_id AND s2.user_id = bo2.user_id AND s2.status IN ('trialing', 'active', 'past_due') AND s2.started_at <= bo2.placed_at AND (s2.ended_at IS NULL OR s2.ended_at >= bo2.placed_at) ) ), ranked_subs AS ( SELECT s3.tenant_id AS tenant_id, s3.user_id AS user_id, s3.id AS subscription_id, s3.started_at AS started_at, s3.ended_at AS ended_at, s3.status AS status, ROW_NUMBER() OVER ( PARTITION BY s3.tenant_id, s3.user_id ORDER BY s3.started_at DESC NULLS FIRST, s3.id DESC NULLS FIRST ) AS recency_rank FROM subscriptions s3 ), most_recent_sub AS ( -- Each customer's most-recent subscription by started_at (the "bucket" status). SELECT rs4.tenant_id AS tenant_id, rs4.user_id AS user_id, rs4.subscription_id AS mrs_subscription_id, rs4.status AS mrs_status FROM ranked_subs rs4 WHERE rs4.recency_rank = 1 ), active_bucket_orphans AS ( -- The 291-order population: orphan orders for customers whose most-recent -- subscription is currently 'active'. SELECT oo5.order_id AS order_id, oo5.tenant_id AS tenant_id, oo5.user_id AS user_id, oo5.placed_at AS placed_at, oo5.discount_amount AS discount_amount, oo5.discount_currency_code AS discount_currency_code, mrs5.mrs_subscription_id AS mrs_subscription_id FROM orphan_orders oo5 JOIN most_recent_sub mrs5 ON mrs5.tenant_id = oo5.tenant_id AND mrs5.user_id = oo5.user_id WHERE mrs5.mrs_status = 'active' ), classified AS ( -- Every order is assigned to exactly one of the three mutually-exclusive -- categories below (LEFT/NOT EXISTS pattern, no inner join drops rows). SELECT abo6.order_id AS order_id, abo6.tenant_id AS tenant_id, abo6.user_id AS user_id, abo6.placed_at AS placed_at, abo6.discount_amount AS discount_amount, abo6.discount_currency_code AS discount_currency_code, CASE WHEN NOT EXISTS ( SELECT 1 FROM subscriptions s7 WHERE s7.tenant_id = abo6.tenant_id AND s7.user_id = abo6.user_id AND s7.id <> abo6.mrs_subscription_id AND s7.started_at <= abo6.placed_at ) THEN 'preceded first-ever subscription' WHEN EXISTS ( SELECT 1 FROM subscriptions s8 WHERE s8.tenant_id = abo6.tenant_id AND s8.user_id = abo6.user_id AND s8.id <> abo6.mrs_subscription_id AND s8.started_at <= abo6.placed_at AND (s8.ended_at IS NULL OR s8.ended_at >= abo6.placed_at) ) THEN 'unexplained' ELSE 'fell between two subscription stints' END AS category FROM active_bucket_orphans abo6 ), converted AS ( SELECT c9.category AS category, c9.order_id AS order_id, c9.tenant_id AS tenant_id, c9.user_id AS user_id, CAST(c9.tenant_id AS varchar) || ':' || CAST(c9.user_id AS varchar) AS customer_key, CASE WHEN c9.discount_currency_code = 'EUR' THEN c9.discount_amount ELSE CAST(c9.discount_amount / NULLIF(er9.rate, 0) AS NUMERIC(18,6)) END AS discount_amount_eur FROM classified c9 LEFT JOIN exchange_rates er9 ON er9.base_code = 'EUR' AND er9.quote_code = c9.discount_currency_code AND er9.as_of = CAST(c9.placed_at AS date) ), totals AS ( SELECT COUNT(*) AS total_orders FROM converted ) SELECT conv10.category AS category, COUNT(*) AS order_count, 100.0 * COUNT(*) / t10.total_orders AS pct_of_bucket, COUNT(DISTINCT conv10.customer_key) AS distinct_customers, SUM(conv10.discount_amount_eur) AS total_discount_eur FROM converted conv10 CROSS JOIN totals t10 GROUP BY conv10.category, t10.total_orders ORDER BY order_count DESC NULLS FIRST, conv10.category ASC NULLS LAST
The agents' own records, as the role play wrote them; only the personal data of the person who ran it is redacted
Report request from Oliver Grant (analyst for the Head of Pricing and Promotions): Title: Corrected categorization of all 291 active-bucket orphan subscription-delivery orders Question: With a query that doesn't silently drop unmatched orders, how do all 291 orphan orders (customer's most-recent subscription status = 'active') actually break down: preceded their first subscription, fell between two subscription stints, or genuinely unexplained? Grain: one row per explanation category, covering the full 291-order population Columns: - category: 'preceded first-ever subscription' (no other subscription row exists with started_at <= order date) / 'fell between two subscription stints' (an older subscription row exists with started_at <= order date, but its own started_at/ended_at window plus status history does not cover the order date) / 'unexplained' - order count - % of the 291-order bucket - distinct customers - total discount amount (EUR) Details: Source: identical population to last week's report (order_discounts + discounts name='Subscription delivery (prepaid)' + orders placed_at in 2025, status != 'cancelled', no overlapping subscription with status in trialing/active/past_due) restricted to the subset whose most-recent subscription (by started_at) has status='active' (291 orders). For each order, use a LEFT JOIN or NOT EXISTS pattern (not an INNER JOIN) against subscriptions to find any OTHER subscription row for that user+tenant with started_at <= order.placed_at that is not the most-recent one; classify based on whether such a row exists and whether it covers placed_at. Every one of the 291 orders must land in exactly one category — add a check that order counts sum to 291 (note this explicitly in the report). Convert discount amounts to EUR via exchange_rates (base_code='EUR', quote_code=currency_code, as_of=placed_at). Order by order count descending. Print all categories. Check your query with the warehouse's dry_run tool, then hand it in with submit.
dry_runWITH discount_filtered AS ( SELECT od0.tenant_id, od0.order_id, SUM(od0.amount) AS discount_amount, MIN(od0.currency_code) AS currency_code FROM order_discounts od0 JOIN discounts d0 ON d0.id = od0.discount_id AND d0.tenant_id = od0.tenant_id WHERE d0.name = 'Subscription delivery (prepaid)' GROUP BY od0.tenant_id, od0.order_id ), base_orders AS ( SELECT o1.id AS order_id, o1.tenant_id, o1.user_id, o1.placed_at, df1.discount_amount, df1.currency_code AS discount_currency_code FROM orders o1 JOIN discount_filtered df1 ON df1.order_id = o1.id AND df1.tenant_id = o1.tenant_id WHERE o1.placed_at >= DATE '2025-01-01' AND o1.placed_at < DATE '2026-01-01' AND o1.status <> 'cancelled' ), orphan_orders AS ( SELECT bo2.* FROM base_orders bo2 WHERE NOT EXISTS ( SELECT 1 FROM subscriptions s2 WHERE s2.tenant_id = bo2.tenant_id AND s2.user_id = bo2.user_id AND s2.status IN ('trialing', 'active', 'past_due') AND s2.started_at <= bo2.placed_at AND (s2.ended_at IS NULL OR s2.ended_at >= bo2.placed_at) ) ), ranked_subs AS ( SELECT s3.tenant_id, s3.user_id, s3.id AS subscription_id, s3.started_at, s3.ended_at, s3.status, ROW_NUMBER() OVER ( PARTITION BY s3.tenant_id, s3.user_id ORDER BY s3.started_at DESC, s3.id DESC ) AS recency_rank FROM subscriptions s3 ), most_recent_sub AS ( SELECT rs4.tenant_id, rs4.user_id, rs4.subscription_id AS mrs_subscription_id, rs4.status AS mrs_status FROM ranked_subs rs4 WHERE rs4.recency_rank = 1 ), active_bucket_orphans AS ( SELECT oo5.order_id, oo5.tenant_id, oo5.user_id, oo5.placed_at, oo5.discount_amount, oo5.discount_currency_code, mrs5.mrs_subscription_id FROM orphan_orders oo5 JOIN most_recent_sub mrs5 ON mrs5.tenant_id = oo5.tenant_id AND mrs5.user_id = oo5.user_id WHERE mrs5.mrs_status = 'active' ), classified AS ( SELECT abo6.order_id, abo6.tenant_id, abo6.user_id, abo6.placed_at, abo6.discount_amount, abo6.discount_currency_code, CASE WHEN NOT EXISTS ( SELECT 1 FROM subscriptions s7 WHERE s7.tenant_id = abo6.tenant_id AND s7.user_id = abo6.user_id AND s7.id <> abo6.mrs_subscription_id AND s7.started_at <= abo6.placed_at ) THEN 'preceded first-ever subscription' WHEN EXISTS ( SELECT 1 FROM subscriptions s8 WHERE s8.tenant_id = abo6.tenant_id AND s8.user_id = abo6.user_id AND s8.id <> abo6.mrs_subscription_id AND s8.started_at <= abo6.placed_at AND (s8.ended_at IS NULL OR s8.ended_at >= abo6.placed_at) ) THEN 'unexplained' ELSE 'fell between two subscription stints' END AS category FROM active_bucket_orphans abo6 ), converted AS ( SELECT c9.category, c9.order_id, c9.tenant_id, c9.user_id, CAST(c9.tenant_id AS varchar) || ':' || CAST(c9.user_id AS varchar) AS customer_key, CASE WHEN c9.discount_currency_code = 'EUR' THEN c9.discount_amount ELSE c9.discount_amount / NULLIF(er9.rate, 0) END AS discount_amount_eur FROM classified c9 LEFT JOIN exchange_rates er9 ON er9.base_code = 'EUR' AND er9.quote_code = c9.discount_currency_code AND er9.as_of = CAST(c9.placed_at AS date) ), totals AS ( SELECT COUNT(*) AS total_orders FROM converted ) SELECT conv10.category, COUNT(*) AS order_count, ROUND(100.0 * COUNT(*) / t10.total_orders, 1) AS pct_of_bucket, COUNT(DISTINCT conv10.customer_key) AS distinct_customers, ROUND(SUM(conv10.discount_amount_eur), 2) AS total_discount_eur FROM converted conv10 CROSS JOIN totals t10 GROUP BY conv10.category, t10.total_orders ORDER BY order_count DESC, conv10.category ASC
STATUS: COMPILES (dry run on the empty schema, no data read) COLUMNS: category, order_count, pct_of_bucket, distinct_customers, total_discount_eur
submitWITH discount_filtered AS ( SELECT od0.tenant_id, od0.order_id, SUM(od0.amount) AS discount_amount, MIN(od0.currency_code) AS currency_code FROM order_discounts od0 JOIN discounts d0 ON d0.id = od0.discount_id AND d0.tenant_id = od0.tenant_id WHERE d0.name = 'Subscription delivery (prepaid)' GROUP BY od0.tenant_id, od0.order_id ), base_orders AS ( SELECT o1.id AS order_id, o1.tenant_id, o1.user_id, o1.placed_at, df1.discount_amount, df1.currency_code AS discount_currency_code FROM orders o1 JOIN discount_filtered df1 ON df1.order_id = o1.id AND df1.tenant_id = o1.tenant_id WHERE o1.placed_at >= DATE '2025-01-01' AND o1.placed_at < DATE '2026-01-01' AND o1.status <> 'cancelled' ), orphan_orders AS ( -- Orders with the subscription-delivery discount that have no subscription -- covering placed_at with status in (trialing, active, past_due). SELECT bo2.* FROM base_orders bo2 WHERE NOT EXISTS ( SELECT 1 FROM subscriptions s2 WHERE s2.tenant_id = bo2.tenant_id AND s2.user_id = bo2.user_id AND s2.status IN ('trialing', 'active', 'past_due') AND s2.started_at <= bo2.placed_at AND (s2.ended_at IS NULL OR s2.ended_at >= bo2.placed_at) ) ), ranked_subs AS ( SELECT s3.tenant_id, s3.user_id, s3.id AS subscription_id, s3.started_at, s3.ended_at, s3.status, ROW_NUMBER() OVER ( PARTITION BY s3.tenant_id, s3.user_id ORDER BY s3.started_at DESC, s3.id DESC ) AS recency_rank FROM subscriptions s3 ), most_recent_sub AS ( -- Each customer's most-recent subscription by started_at (the "bucket" status). SELECT rs4.tenant_id, rs4.user_id, rs4.subscription_id AS mrs_subscription_id, rs4.status AS mrs_status FROM ranked_subs rs4 WHERE rs4.recency_rank = 1 ), active_bucket_orphans AS ( -- The 291-order population: orphan orders for customers whose most-recent -- subscription is currently 'active'. SELECT oo5.order_id, oo5.tenant_id, oo5.user_id, oo5.placed_at, oo5.discount_amount, oo5.discount_currency_code, mrs5.mrs_subscription_id FROM orphan_orders oo5 JOIN most_recent_sub mrs5 ON mrs5.tenant_id = oo5.tenant_id AND mrs5.user_id = oo5.user_id WHERE mrs5.mrs_status = 'active' ), classified AS ( -- Every order is assigned to exactly one of the three mutually-exclusive -- categories below (LEFT/NOT EXISTS pattern, no inner join drops rows). SELECT abo6.order_id, abo6.tenant_id, abo6.user_id, abo6.placed_at, abo6.discount_amount, abo6.discount_currency_code, CASE WHEN NOT EXISTS ( SELECT 1 FROM subscriptions s7 WHERE s7.tenant_id = abo6.tenant_id AND s7.user_id = abo6.user_id AND s7.id <> abo6.mrs_subscription_id AND s7.started_at <= abo6.placed_at ) THEN 'preceded first-ever subscription' WHEN EXISTS ( SELECT 1 FROM subscriptions s8 WHERE s8.tenant_id = abo6.tenant_id AND s8.user_id = abo6.user_id AND s8.id <> abo6.mrs_subscription_id AND s8.started_at <= abo6.placed_at AND (s8.ended_at IS NULL OR s8.ended_at >= abo6.placed_at) ) THEN 'unexplained' ELSE 'fell between two subscription stints' END AS category FROM active_bucket_orphans abo6 ), converted AS ( SELECT c9.category, c9.order_id, c9.tenant_id, c9.user_id, CAST(c9.tenant_id AS varchar) || ':' || CAST(c9.user_id AS varchar) AS customer_key, CASE WHEN c9.discount_currency_code = 'EUR' THEN c9.discount_amount ELSE c9.discount_amount / NULLIF(er9.rate, 0) END AS discount_amount_eur FROM classified c9 LEFT JOIN exchange_rates er9 ON er9.base_code = 'EUR' AND er9.quote_code = c9.discount_currency_code AND er9.as_of = CAST(c9.placed_at AS date) ), totals AS ( SELECT COUNT(*) AS total_orders FROM converted ) SELECT conv10.category, COUNT(*) AS order_count, ROUND(100.0 * COUNT(*) / t10.total_orders, 1) AS pct_of_bucket, COUNT(DISTINCT conv10.customer_key) AS distinct_customers, ROUND(SUM(conv10.discount_amount_eur), 2) AS total_discount_eur FROM converted conv10 CROSS JOIN totals t10 GROUP BY conv10.category, t10.total_orders ORDER BY order_count DESC, conv10.category ASC
Submitted to tonight's batch. Your work on this request is done.