Livestreams & show cockpit

Use WhatCopilot livestreams history and the show cockpit: prepare lineup from inventory, project auction/floor/target prices, generate a sell timeline, then review plan vs actual after CSV import.

Livestreams covers two surfaces: the **imported history table** (`/app/livestreams`) and the **show cockpit** (`/app/livestreams/[id]`), which is the operational hub for preparing and reviewing a scheduled Whatnot live.

Two surfaces

History list

  • Path: `/app/livestreams`
  • Source: CSV aggregates (livestream_id)
  • Rank by net revenue, orders, buyers
  • Multi-select → Analyze with Orion
  • Open prep when a calendar slot is linked

Show cockpit

  • Path: `/app/livestreams/[calendar-event-id]`
  • Source: calendar slot + lineup
  • Prepare products, prices, order
  • Sidebar: Prepare vs Review
  • Ask Orion about this show plan

Cockpit sections

The left sidebar groups the page by intent so you always know what each block is for.

GroupSectionIntent
PrepareSlotWhen and why this show runs (title, times, theme, notes)
PrepareLineupWhat you plan to sell and at which prices
PrepareTimelineSuggested order across the scheduled window
ReviewResultsImported livestream KPIs after the show
ReviewDebriefPlan vs what actually sold

Tutorial: connect inventory

  1. Stock first

    Build Inventory for the same Whatnot shop (manual, from sold SKUs, or inventory CSV). Unit COGS unlocks projected prices.

  2. Open the show cockpit

    From Calendar, click the event → `/app/livestreams/[id]`. Ensure the event’s shop matches the inventory shop.

  3. Connect inventory

    In Lineup, click Connect inventory, tick the lots for this show, then Add selected. Items already in the lineup are hidden.

  4. Or add a manual product

    Use Add manual product for a one-off lot (title, optional SKU/category, quantity, unit COGS). Prices fill in automatically.

  5. Tune prices

    Edit auction start, floor, and target (+10%) inline, then Save on the row. Roles (opener / peak / filler / closer / VIP bait) can be set manually too.

Projected prices

When you add a lot, WhatCopilot proposes three levels from COGS so you know your floor before you open auctions:

  • **Floor (profitable)** ≈ `unit_cogs / (1 − 0.10)` — break-even after ~10% fee buffer
  • **Target (+10%)** = `floor × 1.10` — modest net margin goal
  • **Auction start** ≈ `35% of floor` (min step 1), optionally capped by the 25th percentile of past auction starts for that SKU/category
Example
  • COGS = $10 → floor ≈ $11.11 → target ≈ $12.22 → auction start ≈ $4
  • If past auctions for that SKU often opened near $3, auction start may be capped lower.

Suggestion algorithm

Generate timeline suggestions computes an explainable score per product × hour inside your slot, then places lots greedily on ~20-minute windows.

Signals (shop history from imports)

  • Hour heat — when your shop sells most (order timestamps)
  • SKU / category × hour fit — which product types convert in which hours
  • Velocity — revenue strength of the SKU
  • Margin score — net vs COGS when available
  • Stock pressure — prioritize low / critical on-hand quantities
  • Top-buyer hours — when high spenders tend to buy (closers / VIP)
  • Novelty — new SKUs with little history are steered away from blind peak placement

Score shape

`score(item, hour) = w_hour·heat + w_fit·fit + w_margin·margin + w_velocity·velocity + w_stock·stock + w_buyer·buyerHour + w_novelty·novelty − w_risk·underFloorRisk`

Default weights favor fit + heat + margin/velocity, with smaller weights for stock, buyers, and novelty. Each placement stores a `score_breakdown` you (and Orion) can inspect.

Show placement rules

  • Early window → openers (known lots, energy)
  • Peak heat hours → headliners (velocity / margin)
  • Softer hours → fillers and controlled novelty tests
  • Late window → closers / VIP bait when top-buyer overlap is strong

Results & debrief

  1. Import the Seller Weekly Orders Report after the show (Imports)
  2. On Results, confirm auto-match or manually link the imported livestream
  3. Review KPI cards (orders, unique buyers, estimated duration, buyer / net revenue)
  4. Open Debrief to see which planned lots sold, units, net, and vs floor / target

Ask Orion about the plan

From the cockpit, Ask Orion opens a conversation with your event id and lineup. Orion calls `suggestLiveLineup` to read the same structured coach pack (insights, scores, prices — no raw CSV). It may call `proposeLiveLineupChanges` with real `itemId`s; **you** confirm Apply in the UI. Orion never writes the lineup. Set `recompute=true` only when you ask to refresh engine suggestions.

History table features

  • Account filter; search by title / id
  • Columns: live, orders, unique buyers, estimated duration (tooltip), buyer revenue, net revenue
  • Default sort: net revenue; multi-select → Analyze with Orion
  • Open prep when the livestream is linked to a calendar event

Limits

  • No real-time Whatnot API — prep is offline; results arrive with the weekly CSV lag
  • Demo cockpit is read-only
  • Matching lineup to sales uses SKU first, then product title
  • Estimated duration on history is not the official stream length

FAQ

What is the difference between /app/livestreams and /app/livestreams/[id]?
The list is imported CSV history (ranked KPIs). The detail page is the show cockpit for a calendar event: lineup, pricing, timeline, then results/debrief once linked.
Is livestream duration exact?
On the history table, duration is estimated from order activity in the CSV, not the official Whatnot show length. The cockpit timeline uses your calendar start/end.
How are auction start, floor, and target calculated?
From unit COGS: floor ≈ COGS / (1 − 10% fees), target = floor × 1.10, auction start ≈ 35% of floor (capped by historical auction p25 when available). All three remain editable.
Can I use the cockpit in demo mode?
Yes, read-only. Demo shows seeded lineups and timelines; create/edit/suggest writes are blocked.