Queries · q033 · Chief Operating Officer · week 1, night 3
“Do the merchants with the worst delivery reliability simply ship disproportionately with the weaker carriers?”
Fictional people at a fictional company, each played by a language-model agent. Who they are and what they are told
The manager, at the start of week 1
Subject: Getting my bearings on fulfillment — questions for this week
Hi Lena,
Thanks for taking these on. I'm new here and coming from the logistics side, so my first priority is understanding whether the delivery promise we make to shoppers actually holds up — that's the lens for most of what's below. Given the slot budget, here's what matters most, roughly in priority order:
What I'll use this for: I'm forming my first impressions of operational health in this area and want to walk into conversations with merchants and carrier partners armed with facts, not assumptions. I'd rather have a smaller number of really clear answers than a lot of surface-level ones — so if you need to cut scope to fit your slots this week, prioritize #1 and #2, and we can pick up the rest next week.
Thanks — looking forward to Friday's memo.
Priya
The analyst · week 1, night 3, request 3 of 3
Night 2 findings, read critically: (1) Report 1 only printed 50 of 56 carrier-quarter rows -- it's missing the last few carriers' Q3/Q4 figures, so I can't yet see the full carrier picture for peak; I'm fixing that tonight by re-running Q4 only (one quarter -> all ~14 carriers fit on one page) and adding a volume-share column so I can judge materiality, not just rates. (2) Within what I could see, two carriers (Landfall Freight, Lowlands Express) are chronically mediocre all year -- not a peak story, a structural one. But Albion Parcel is the standout: rock-solid in Q1-Q3 (88-97% within 3 days) then collapses in Q4 (avg transit 6.54 days, only 50.7% within 3 days) -- a sharp, carrier-specific peak failure that deserves its own drill-down by month to see exactly when it broke and whether it recovered by year-end. (3) Report 3 (stage breakdown) is a clean, important result: warehouse processing time stayed flat (~1.1-1.2 days) straight through peak even as volume nearly doubled, while carrier transit time is what stretched (2.5-2.9 days baseline -> 3.46 in Nov) -- so the peak slowdown from Night 1 is a carrier/transit problem, not a warehouse-capacity problem. That reframes priority #3: warehouses look fine; carriers are the lever. (4) The warehouse report's worst performers (Thistlecombe, Purrfect Pantry, Chocolaterie Mireille, Kayak Corner, etc.) all have unremarkable processing times, so their poor delivery reliability must come from somewhere in the transit leg -- I want to test whether they're simply the merchants who happen to ship with the weak carriers. Tonight: complete the Q4 carrier picture, isolate Albion Parcel's break, and test the carrier-mix hypothesis for the best/worst merchants.
The engineer · 1 dry run on the empty schema, then the submission
WITH selected_tenants AS ( SELECT t0.id AS tenant_id, t0.name AS tenant_name, CASE WHEN t0.name IN ('Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging') THEN 'worst' WHEN t0.name IN ('Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply') THEN 'best' END AS performance_group FROM tenants t0 WHERE t0.name IN ( 'Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging', 'Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply' ) ), shipment_base AS ( SELECT s1.tenant_id, s1.carrier, s1.shipped_at, s1.delivered_at FROM shipments s1 JOIN fulfillments f1 ON f1.id = s1.fulfillment_id JOIN orders o1 ON o1.id = f1.order_id WHERE s1.shipped_at >= TIMESTAMP '2025-01-01' AND s1.shipped_at < TIMESTAMP '2026-01-01' AND s1.tenant_id IN (SELECT st0.tenant_id FROM selected_tenants st0) ), tenant_carrier_counts AS ( SELECT sb0.tenant_id, sb0.carrier, COUNT(*) AS shipments_count FROM shipment_base sb0 GROUP BY sb0.tenant_id, sb0.carrier ), tenant_totals AS ( SELECT sb1.tenant_id, COUNT(*) AS total_shipments FROM shipment_base sb1 GROUP BY sb1.tenant_id ), transit_stats AS ( SELECT sb2.tenant_id, sb2.carrier, AVG(CASE WHEN sb2.delivered_at IS NOT NULL THEN DATE_PART('day', sb2.delivered_at - sb2.shipped_at) END) AS avg_transit_days, 100.0 * SUM(CASE WHEN sb2.delivered_at IS NOT NULL AND DATE_PART('day', sb2.delivered_at - sb2.shipped_at) <= 3 THEN 1 ELSE 0 END) / NULLIF(SUM(CASE WHEN sb2.delivered_at IS NOT NULL THEN 1 ELSE 0 END), 0) AS pct_within_3_days FROM shipment_base sb2 GROUP BY sb2.tenant_id, sb2.carrier ) SELECT st.tenant_name AS tenant_name, st.performance_group AS performance_group, tcc.carrier AS carrier, tcc.shipments_count AS shipments_count, ROUND(100.0 * tcc.shipments_count / tt.total_shipments, 1) AS share_of_tenant_shipments_pct, ROUND(COALESCE(ts.avg_transit_days, 0), 2) AS avg_transit_days, ROUND(COALESCE(ts.pct_within_3_days, 0), 1) AS pct_within_3_days FROM tenant_carrier_counts tcc JOIN selected_tenants st ON st.tenant_id = tcc.tenant_id JOIN tenant_totals tt ON tt.tenant_id = tcc.tenant_id LEFT JOIN transit_stats ts ON ts.tenant_id = tcc.tenant_id AND ts.carrier = tcc.carrier ORDER BY CASE st.performance_group WHEN 'worst' THEN 0 ELSE 1 END, st.tenant_name ASC, tcc.shipments_count DESC, tcc.carrier ASC
“Query compiles and produces the expected columns. Submitting.”
“Submitted. Summary of what the report does:
- Grain: one row per tenant × carrier, restricted to the 20 named tenants.
- Scope: shipments joined through fulfillments → orders, filtered to shipped_at in 2025.
- Metrics: shipment count, each carrier's share of that tenant's 2025 shipments, average transit days, and % delivered within 3 days — the latter two computed over the delivered subset only.
- Ordering: worst group first, then best, then tenant name, then shipment count descending (carrier as final tiebreak for determinism).
One deviation noted to the analyst: transit-day metrics are based only on shipments that actually have a delivered_at timestamp (as the spec implied), and tenant/carrier combos with no delivered shipments show 0 instead of null.”
As Lena Hartmann saw it, from the small dataset the agents worked on
tenant_name | performance_group | carrier | shipments_count | share_of_tenant_shipments_pct | avg_transit_days | pct_within_3_days ----------------------+-------------------+----------------------+-----------------+-------------------------------+------------------+------------------ Chocolaterie Mireille | worst | Landfall Freight | 38 | 38.0 | 3.86 | 43.2 Chocolaterie Mireille | worst | Lowlands Express | 32 | 32.0 | 3.0 | 59.4 Chocolaterie Mireille | worst | Gallia Colis | 30 | 30.0 | 2.63 | 76.7 Grind Collective | worst | Albion Parcel | 515 | 47.1 | 3.12 | 80.7 Grind Collective | worst | Kennet Freight | 222 | 20.3 | 1.97 | 88.7 Grind Collective | worst | Regent Parcels | 187 | 17.1 | 1.91 | 94.0 Grind Collective | worst | Landfall Freight | 109 | 10.0 | 6.27 | 19.4 Grind Collective | worst | Lowlands Express | 61 | 5.6 | 6.98 | 11.7 Kayak Corner | worst | Albion Parcel | 38 | 37.6 | 4.45 | 84.2 Kayak Corner | worst | Kennet Freight | 21 | 20.8 | 2.05 | 81.0 Kayak Corner | worst | Landfall Freight | 19 | 18.8 | 3.42 | 42.1 Kayak Corner | worst | Regent Parcels | 13 | 12.9 | 1.38 | 100.0 Kayak Corner | worst | Lowlands Express | 10 | 9.9 | 3.9 | 50.0 Kettle & Key | worst | Polder Post | 26 | 44.1 | 2.04 | 92.0 Kettle & Key | worst | Landfall Freight | 18 | 30.5 | 4.22 | 27.8 Kettle & Key | worst | Lowlands Express | 15 | 25.4 | 2.4 | 80.0 Polder Packaging | worst | Lowlands Express | 27 | 49.1 | 2.85 | 74.1 Polder Packaging | worst | Polder Post | 18 | 32.7 | 2.39 | 72.2 Polder Packaging | worst | Landfall Freight | 10 | 18.2 | 4.0 | 50.0 Purrfect Pantry | worst | Skerrylane Logistics | 46 | 62.2 | 2.07 | 87.0 Purrfect Pantry | worst | Lowlands Express | 17 | 23.0 | 8.12 | 0.0 Purrfect Pantry | worst | Landfall Freight | 11 | 14.9 | 9.27 | 0.0 Sourdough Club | worst | Liffey Couriers | 142 | 46.4 | 2.2 | 87.3 Sourdough Club | worst | Albion Parcel | 76 | 24.8 | 3.0 | 85.1 Sourdough Club | worst | Landfall Freight | 52 | 17.0 | 4.84 | 35.3 Sourdough Club | worst | Lowlands Express | 36 | 11.8 | 4.91 | 28.6 Spice Route Box | worst | Lowlands Express | 360 | 47.2 | 2.11 | 83.2 Spice Route Box | worst | Polder Post | 311 | 40.8 | 2.21 | 83.5 Spice Route Box | worst | Landfall Freight | 92 | 12.1 | 3.85 | 42.4 Studio Vrij | worst | Lowlands Express | 347 | 58.1 | 2.04 | 87.8 Studio Vrij | worst | Polder Post | 188 | 31.5 | 2.21 | 83.2 Studio Vrij | worst | Landfall Freight | 62 | 10.4 | 3.82 | 33.3 Thistlecombe | worst | Albion Parcel | 29 | 33.3 | 5.0 | 65.5 Thistlecombe | worst | Kennet Freight | 22 | 25.3 | 2.48 | 76.2 Thistlecombe | worst | Landfall Freight | 20 | 23.0 | 6.0 | 15.0 Thistlecombe | worst | Regent Parcels | 10 | 11.5 | 2.2 | 80.0 Thistlecombe | worst | Lowlands Express | 6 | 6.9 | 6.83 | 33.3 Brennquell Kaffee | best | Strombogen Kurier | 2050 | 49.7 | 1.73 | 96.7 Brennquell Kaffee | best | Alpenpaket | 1368 | 33.1 | 1.72 | 96.3 Brennquell Kaffee | best | Landfall Freight | 409 | 9.9 | 3.76 | 42.7 Brennquell Kaffee | best | Lowlands Express | 300 | 7.3 | 3.89 | 40.1 Cragsley Outfitters | best | Liberty Ground | 1634 | 46.9 | 1.71 | 95.4 Cragsley Outfitters | best | Trailhead Express | 1253 | 36.0 | 1.92 | 89.7 Cragsley Outfitters | best | Prairie Line Express | 511 | 14.7 | 2.0 | 88.8 Cragsley Outfitters | best | Landfall Freight | 85 | 2.4 | 3.71 | 44.6 Feather & Fin | best | Liberty Ground | 108 | 50.0 | 1.81 | 94.4 Feather & Fin | best | Trailhead Express | 79 | 36.6 | 1.64 | 94.9 Feather & Fin | best | Prairie Line Express | 29 | 13.4 | 2.14 | 89.3 Honeycomb Larder | best | Liberty Ground | 248 | 41.1 | 1.69 | 95.9 Honeycomb Larder | best | Trailhead Express | 246 | 40.7 | 2.0 | 88.0 (73 rows, first 50 printed)
The memo and the queries that followed; links found by title, so inferred
It builds on:
Changed only where the benchmark needs the same result on every system
WITH selected_tenants AS ( SELECT t0.id AS tenant_id, t0.name AS tenant_name, CASE WHEN t0.name IN ('Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging') THEN 'worst' WHEN t0.name IN ('Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply') THEN 'best' END AS performance_group FROM tenants t0 WHERE t0.name IN ( 'Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging', 'Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply' )),shipment_base AS ( SELECT s1.tenant_id, s1.carrier, s1.shipped_at, s1.delivered_at s1.tenant_id AS tenant_id, s1.carrier AS carrier, s1.shipped_at AS shipped_at, s1.delivered_at AS delivered_at FROM shipments s1 JOIN fulfillments f1 ON f1.id = s1.fulfillment_id JOIN orders o1 ON o1.id = f1.order_id WHERE s1.shipped_at >= TIMESTAMP '2025-01-01' AND s1.shipped_at < TIMESTAMP '2026-01-01' AND s1.tenant_id IN (SELECT st0.tenant_id FROM selected_tenants st0) AND s1.tenant_id IN (SELECT st0.tenant_id AS tenant_id FROM selected_tenants st0)),tenant_carrier_counts AS ( SELECT sb0.tenant_id, sb0.carrier, sb0.tenant_id AS tenant_id, sb0.carrier AS carrier, COUNT(*) AS shipments_count FROM shipment_base sb0 GROUP BY sb0.tenant_id, sb0.carrier),tenant_totals AS ( SELECT sb1.tenant_id, sb1.tenant_id AS tenant_id, COUNT(*) AS total_shipments FROM shipment_base sb1 GROUP BY sb1.tenant_id),transit_stats AS ( SELECT sb2.tenant_id, sb2.carrier, AVG(CASE WHEN sb2.delivered_at IS NOT NULL THEN DATE_PART('day', sb2.delivered_at - sb2.shipped_at) END) AS avg_transit_days, 100.0 * SUM(CASE WHEN sb2.delivered_at IS NOT NULL AND DATE_PART('day', sb2.delivered_at - sb2.shipped_at) <= 3 THEN 1 ELSE 0 END) sb2.tenant_id AS tenant_id, sb2.carrier AS carrier, AVG(CASE WHEN sb2.delivered_at IS NOT NULL THEN {{whole_days_between(sb2.shipped_at, sb2.delivered_at)}} END) AS avg_transit_days, 100.0 * SUM(CASE WHEN sb2.delivered_at IS NOT NULL AND {{whole_days_between(sb2.shipped_at, sb2.delivered_at)}} <= 3 THEN 1 ELSE 0 END) / NULLIF(SUM(CASE WHEN sb2.delivered_at IS NOT NULL THEN 1 ELSE 0 END), 0) AS pct_within_3_days FROM shipment_base sb2 GROUP BY sb2.tenant_id, sb2.carrier)SELECT st.tenant_name AS tenant_name, st.performance_group AS performance_group, tcc.carrier AS carrier, tcc.shipments_count AS shipments_count, ROUND(100.0 * tcc.shipments_count / tt.total_shipments, 1) AS share_of_tenant_shipments_pct, ROUND(COALESCE(ts.avg_transit_days, 0), 2) AS avg_transit_days, ROUND(COALESCE(ts.pct_within_3_days, 0), 1) AS pct_within_3_days 100.0 * tcc.shipments_count / tt.total_shipments AS share_of_tenant_shipments_pct, COALESCE(ts.avg_transit_days, 0) AS avg_transit_days, COALESCE(ts.pct_within_3_days, 0) AS pct_within_3_daysFROM tenant_carrier_counts tccJOIN selected_tenants st ON st.tenant_id = tcc.tenant_idJOIN tenant_totals tt ON tt.tenant_id = tcc.tenant_idLEFT JOIN transit_stats ts ON ts.tenant_id = tcc.tenant_id AND ts.carrier = tcc.carrierORDER BY CASE st.performance_group WHEN 'worst' THEN 0 ELSE 1 END, st.tenant_name ASC, tcc.shipments_count DESC, tcc.carrier ASC CASE st.performance_group WHEN 'worst' THEN 0 ELSE 1 END NULLS LAST, st.tenant_name ASC NULLS LAST, tcc.shipments_count DESC NULLS FIRST, tcc.carrier ASC NULLS LAST, tcc.tenant_id ASC NULLS LAST
WITH selected_tenants AS ( SELECT t0.id AS tenant_id, t0.name AS tenant_name, CASE WHEN t0.name IN ('Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging') THEN 'worst' WHEN t0.name IN ('Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply') THEN 'best' END AS performance_group FROM tenants t0 WHERE t0.name IN ( 'Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging', 'Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply' ) ), shipment_base AS ( SELECT s1.tenant_id AS tenant_id, s1.carrier AS carrier, s1.shipped_at AS shipped_at, s1.delivered_at AS delivered_at FROM shipments s1 JOIN fulfillments f1 ON f1.id = s1.fulfillment_id JOIN orders o1 ON o1.id = f1.order_id WHERE s1.shipped_at >= TIMESTAMP '2025-01-01' AND s1.shipped_at < TIMESTAMP '2026-01-01' AND s1.tenant_id IN (SELECT st0.tenant_id AS tenant_id FROM selected_tenants st0) ), tenant_carrier_counts AS ( SELECT sb0.tenant_id AS tenant_id, sb0.carrier AS carrier, COUNT(*) AS shipments_count FROM shipment_base sb0 GROUP BY sb0.tenant_id, sb0.carrier ), tenant_totals AS ( SELECT sb1.tenant_id AS tenant_id, COUNT(*) AS total_shipments FROM shipment_base sb1 GROUP BY sb1.tenant_id ), transit_stats AS ( SELECT sb2.tenant_id AS tenant_id, sb2.carrier AS carrier, AVG(CASE WHEN sb2.delivered_at IS NOT NULL THEN EXTRACT(DAY FROM sb2.delivered_at - sb2.shipped_at) END) AS avg_transit_days, 100.0 * SUM(CASE WHEN sb2.delivered_at IS NOT NULL AND EXTRACT(DAY FROM sb2.delivered_at - sb2.shipped_at) <= 3 THEN 1 ELSE 0 END) / NULLIF(SUM(CASE WHEN sb2.delivered_at IS NOT NULL THEN 1 ELSE 0 END), 0) AS pct_within_3_days FROM shipment_base sb2 GROUP BY sb2.tenant_id, sb2.carrier ) SELECT st.tenant_name AS tenant_name, st.performance_group AS performance_group, tcc.carrier AS carrier, tcc.shipments_count AS shipments_count, 100.0 * tcc.shipments_count / tt.total_shipments AS share_of_tenant_shipments_pct, COALESCE(ts.avg_transit_days, 0) AS avg_transit_days, COALESCE(ts.pct_within_3_days, 0) AS pct_within_3_days FROM tenant_carrier_counts tcc JOIN selected_tenants st ON st.tenant_id = tcc.tenant_id JOIN tenant_totals tt ON tt.tenant_id = tcc.tenant_id LEFT JOIN transit_stats ts ON ts.tenant_id = tcc.tenant_id AND ts.carrier = tcc.carrier ORDER BY CASE st.performance_group WHEN 'worst' THEN 0 ELSE 1 END NULLS LAST, st.tenant_name ASC NULLS LAST, tcc.shipments_count DESC NULLS FIRST, tcc.carrier ASC NULLS LAST, tcc.tenant_id ASC NULLS LAST
WITH selected_tenants AS ( SELECT t0.id AS tenant_id, t0.name AS tenant_name, CASE WHEN t0.name IN ('Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging') THEN 'worst' WHEN t0.name IN ('Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply') THEN 'best' END AS performance_group FROM tenants t0 WHERE t0.name IN ( 'Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging', 'Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply' ) ), shipment_base AS ( SELECT s1.tenant_id AS tenant_id, s1.carrier AS carrier, s1.shipped_at AS shipped_at, s1.delivered_at AS delivered_at FROM shipments s1 JOIN fulfillments f1 ON f1.id = s1.fulfillment_id JOIN orders o1 ON o1.id = f1.order_id WHERE s1.shipped_at >= TIMESTAMP '2025-01-01' AND s1.shipped_at < TIMESTAMP '2026-01-01' AND s1.tenant_id IN (SELECT st0.tenant_id AS tenant_id FROM selected_tenants st0) ), tenant_carrier_counts AS ( SELECT sb0.tenant_id AS tenant_id, sb0.carrier AS carrier, COUNT(*) AS shipments_count FROM shipment_base sb0 GROUP BY sb0.tenant_id, sb0.carrier ), tenant_totals AS ( SELECT sb1.tenant_id AS tenant_id, COUNT(*) AS total_shipments FROM shipment_base sb1 GROUP BY sb1.tenant_id ), transit_stats AS ( SELECT sb2.tenant_id AS tenant_id, sb2.carrier AS carrier, AVG(CASE WHEN sb2.delivered_at IS NOT NULL THEN intDiv(dateDiff('microsecond', sb2.shipped_at, sb2.delivered_at), 86400000000) END) AS avg_transit_days, 100.0 * SUM(CASE WHEN sb2.delivered_at IS NOT NULL AND intDiv(dateDiff('microsecond', sb2.shipped_at, sb2.delivered_at), 86400000000) <= 3 THEN 1 ELSE 0 END) / NULLIF(SUM(CASE WHEN sb2.delivered_at IS NOT NULL THEN 1 ELSE 0 END), 0) AS pct_within_3_days FROM shipment_base sb2 GROUP BY sb2.tenant_id, sb2.carrier ) SELECT st.tenant_name AS tenant_name, st.performance_group AS performance_group, tcc.carrier AS carrier, tcc.shipments_count AS shipments_count, 100.0 * tcc.shipments_count / tt.total_shipments AS share_of_tenant_shipments_pct, COALESCE(ts.avg_transit_days, 0) AS avg_transit_days, COALESCE(ts.pct_within_3_days, 0) AS pct_within_3_days FROM tenant_carrier_counts tcc JOIN selected_tenants st ON st.tenant_id = tcc.tenant_id JOIN tenant_totals tt ON tt.tenant_id = tcc.tenant_id LEFT JOIN transit_stats ts ON ts.tenant_id = tcc.tenant_id AND ts.carrier = tcc.carrier ORDER BY CASE st.performance_group WHEN 'worst' THEN 0 ELSE 1 END NULLS LAST, st.tenant_name ASC NULLS LAST, tcc.shipments_count DESC NULLS FIRST, tcc.carrier ASC NULLS LAST, tcc.tenant_id 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 Lena Hartmann (analyst for the Chief Operating Officer):
Title: Carrier mix for best vs worst performing merchants, 2025
Question: Do the merchants with the worst delivery reliability simply ship disproportionately with the weaker carriers?
Grain: one row per tenant and carrier combination, for a fixed list of 20 named tenants
Columns:
- tenant_name
- performance_group ('best' or 'worst', per the fixed list below)
- carrier
- shipments_count (2025)
- share_of_tenant_shipments_pct (this carrier's shipments / tenant's total shipments in 2025, x100)
- avg_transit_days (this tenant+carrier combination, 2025)
- pct_within_3_days
Details: Scope: shipments joined via fulfillments -> orders -> tenants, shipped_at in 2025-01-01 through 2025-12-31, restricted to these 20 tenants only (matched by tenants.name): WORST group = 'Thistlecombe', 'Purrfect Pantry', 'Chocolaterie Mireille', 'Kayak Corner', 'Studio Vrij', 'Sourdough Club', 'Grind Collective', 'Spice Route Box', 'Kettle & Key', 'Polder Packaging'. BEST group = 'Pfotenglück', 'Cragsley Outfitters', 'Brennquell Kaffee', 'Feather & Fin', 'Ridgeback Gear', 'Wohnglück', 'Mirelle', 'Honeycomb Larder', 'Kontor24 Bürobedarf', 'Tail Wag Supply'. transit_days = DATEDIFF(day, shipped_at, delivered_at), delivered subset only. Round avg_transit_days to 2 decimals, pct columns to 1 decimal. Order by performance_group ('worst' first, then 'best'), then tenant_name ascending, then shipments_count descending within each tenant.
Check your query with the warehouse's dry_run tool, then hand it in with submit.dry_runWITH selected_tenants AS ( SELECT t0.id AS tenant_id, t0.name AS tenant_name, CASE WHEN t0.name IN ('Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging') THEN 'worst' WHEN t0.name IN ('Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply') THEN 'best' END AS performance_group FROM tenants t0 WHERE t0.name IN ( 'Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging', 'Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply' ) ), shipment_base AS ( SELECT s1.tenant_id, s1.carrier, s1.shipped_at, s1.delivered_at FROM shipments s1 JOIN fulfillments f1 ON f1.id = s1.fulfillment_id JOIN orders o1 ON o1.id = f1.order_id WHERE s1.shipped_at >= TIMESTAMP '2025-01-01' AND s1.shipped_at < TIMESTAMP '2026-01-01' AND s1.tenant_id IN (SELECT st0.tenant_id FROM selected_tenants st0) ), tenant_carrier_counts AS ( SELECT sb0.tenant_id, sb0.carrier, COUNT(*) AS shipments_count FROM shipment_base sb0 GROUP BY sb0.tenant_id, sb0.carrier ), tenant_totals AS ( SELECT sb1.tenant_id, COUNT(*) AS total_shipments FROM shipment_base sb1 GROUP BY sb1.tenant_id ), transit_stats AS ( SELECT sb2.tenant_id, sb2.carrier, AVG(CASE WHEN sb2.delivered_at IS NOT NULL THEN DATE_PART('day', sb2.delivered_at - sb2.shipped_at) END) AS avg_transit_days, 100.0 * SUM(CASE WHEN sb2.delivered_at IS NOT NULL AND DATE_PART('day', sb2.delivered_at - sb2.shipped_at) <= 3 THEN 1 ELSE 0 END) / NULLIF(SUM(CASE WHEN sb2.delivered_at IS NOT NULL THEN 1 ELSE 0 END), 0) AS pct_within_3_days FROM shipment_base sb2 GROUP BY sb2.tenant_id, sb2.carrier ) SELECT st.tenant_name AS tenant_name, st.performance_group AS performance_group, tcc.carrier AS carrier, tcc.shipments_count AS shipments_count, ROUND(100.0 * tcc.shipments_count / tt.total_shipments, 1) AS share_of_tenant_shipments_pct, ROUND(COALESCE(ts.avg_transit_days, 0), 2) AS avg_transit_days, ROUND(COALESCE(ts.pct_within_3_days, 0), 1) AS pct_within_3_days FROM tenant_carrier_counts tcc JOIN selected_tenants st ON st.tenant_id = tcc.tenant_id JOIN tenant_totals tt ON tt.tenant_id = tcc.tenant_id LEFT JOIN transit_stats ts ON ts.tenant_id = tcc.tenant_id AND ts.carrier = tcc.carrier ORDER BY CASE st.performance_group WHEN 'worst' THEN 0 ELSE 1 END, st.tenant_name ASC, tcc.shipments_count DESC, tcc.carrier ASC
STATUS: COMPILES (dry run on the empty schema, no data read) COLUMNS: tenant_name, performance_group, carrier, shipments_count, share_of_tenant_shipments_pct, avg_transit_days, pct_within_3_days
submitWITH selected_tenants AS ( SELECT t0.id AS tenant_id, t0.name AS tenant_name, CASE WHEN t0.name IN ('Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging') THEN 'worst' WHEN t0.name IN ('Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply') THEN 'best' END AS performance_group FROM tenants t0 WHERE t0.name IN ( 'Thistlecombe','Purrfect Pantry','Chocolaterie Mireille','Kayak Corner','Studio Vrij','Sourdough Club','Grind Collective','Spice Route Box','Kettle & Key','Polder Packaging', 'Pfotenglück','Cragsley Outfitters','Brennquell Kaffee','Feather & Fin','Ridgeback Gear','Wohnglück','Mirelle','Honeycomb Larder','Kontor24 Bürobedarf','Tail Wag Supply' ) ), shipment_base AS ( SELECT s1.tenant_id, s1.carrier, s1.shipped_at, s1.delivered_at FROM shipments s1 JOIN fulfillments f1 ON f1.id = s1.fulfillment_id JOIN orders o1 ON o1.id = f1.order_id WHERE s1.shipped_at >= TIMESTAMP '2025-01-01' AND s1.shipped_at < TIMESTAMP '2026-01-01' AND s1.tenant_id IN (SELECT st0.tenant_id FROM selected_tenants st0) ), tenant_carrier_counts AS ( SELECT sb0.tenant_id, sb0.carrier, COUNT(*) AS shipments_count FROM shipment_base sb0 GROUP BY sb0.tenant_id, sb0.carrier ), tenant_totals AS ( SELECT sb1.tenant_id, COUNT(*) AS total_shipments FROM shipment_base sb1 GROUP BY sb1.tenant_id ), transit_stats AS ( SELECT sb2.tenant_id, sb2.carrier, AVG(CASE WHEN sb2.delivered_at IS NOT NULL THEN DATE_PART('day', sb2.delivered_at - sb2.shipped_at) END) AS avg_transit_days, 100.0 * SUM(CASE WHEN sb2.delivered_at IS NOT NULL AND DATE_PART('day', sb2.delivered_at - sb2.shipped_at) <= 3 THEN 1 ELSE 0 END) / NULLIF(SUM(CASE WHEN sb2.delivered_at IS NOT NULL THEN 1 ELSE 0 END), 0) AS pct_within_3_days FROM shipment_base sb2 GROUP BY sb2.tenant_id, sb2.carrier ) SELECT st.tenant_name AS tenant_name, st.performance_group AS performance_group, tcc.carrier AS carrier, tcc.shipments_count AS shipments_count, ROUND(100.0 * tcc.shipments_count / tt.total_shipments, 1) AS share_of_tenant_shipments_pct, ROUND(COALESCE(ts.avg_transit_days, 0), 2) AS avg_transit_days, ROUND(COALESCE(ts.pct_within_3_days, 0), 1) AS pct_within_3_days FROM tenant_carrier_counts tcc JOIN selected_tenants st ON st.tenant_id = tcc.tenant_id JOIN tenant_totals tt ON tt.tenant_id = tcc.tenant_id LEFT JOIN transit_stats ts ON ts.tenant_id = tcc.tenant_id AND ts.carrier = tcc.carrier ORDER BY CASE st.performance_group WHEN 'worst' THEN 0 ELSE 1 END, st.tenant_name ASC, tcc.shipments_count DESC, tcc.carrier ASC
Submitted to tonight's batch. Your work on this request is done.