LMNT — Omni pilot: wholesale reporting dashboard specification
Status: Draft for stakeholder review
Prepared for: LMNT (Wholesale: Laura Putnam, Madison; Partnerships: Blake; Leadership: Shivani Amar; Finance alignment: Bess Ross, Jacob Rogers as needed)
Prepared by: Brainforge
Last updated: 2026-04-06
Related artifacts
| Artifact | Link / path |
|---|---|
| Data Platform Documentation (Core Metrics) | Google Sheet |
| Pilot / program tracker (confirm wholesale tabs) | Google Sheet |
| Locked metric definitions (repo mirror) | METRIC_DEFINITIONS_LOCKED.md |
| Establishing Omni (Accelerator) — wholesale questions | lmnt-omni-accelerator-ramp-up-memo.md (Appendix §1 Wholesale, §3 Revenue / reconciliation) |
| POS pilot spec (format reference) | Google Doc |
| Existing wholesale reporting (inventory) | Google Drive folder |
| Brainforge Deck Guidelines | Notion |
1. Context
1.1 Pilot intent
LMNT is standing up Omni on Snowflake so wholesale stakeholders can answer recurring questions from governed marts without exporting CSVs or reconciling ad hoc spreadsheets. This document specifies what dashboards to build for the wholesale slice of the pilot, which metrics and cuts each tile uses, and how definitions align with Finance vs Operations.
1.2 Stakeholders and primary questions
| Stakeholder | Role in pilot |
|---|---|
| Shivani Amar | Leadership view: top partners, time-windowed revenue, confidence in numbers |
| Laura Putnam / Madison | Day-to-day wholesale: partner list in mart, reorder and activity patterns |
| Blake | Partnerships context where relevant |
| Bess Ross / Jacob Rogers (Finance) | Alignment on wholesale revenue definition vs GL; optional review of dual-labeled measures |
Questions the pilot must answer (from Establishing Omni / Accelerator appendix):
- Who are the top wholesale partners by revenue, and for which time window?
- What does wholesale revenue look like by week or by month (operations view from Shopify / marts)?
- How does operations wholesale revenue compare to finance—same Topic with two labeled views, or one reconciled number once definition is locked?
- Which partners are in the mart, and what is their reorder / activity pattern (using fields available on
wholesale_dm_customer)?
1.3 Data scope
| Object | Use in pilot |
|---|---|
wholesale_mart | Time-series and aggregated wholesale KPIs at agreed grain (confirm week vs day in Topic) |
wholesale_dm_customer | Partner-level attributes, lifetime and recency metrics, CRM + Shopify combined grain (one row per partner / customer as modeled) |
Sources (summary): Shopify wholesale-tagged orders; wholesale CRM (Google Sheets) merged in wholesale_dm_customer. Manual / QuickBooks-only wholesale activity may not appear in Shopify-sourced revenue until ingestion and definitions are extended—call out in Topic description and in finance comparison dashboard.
1.4 Definition authority
If this document disagrees with the Brainforge x LMNT Data Platform Documentation spreadsheet, the spreadsheet wins. Update this spec and METRIC_DEFINITIONS_LOCKED.md after spreadsheet changes.
1.5 CPG wholesale reporting lens (achievable scope)
Use common CPG / brand wholesale norms as a design lens, not a requirement to replicate distributor-EDI depth. LMNT’s stack is Shopify wholesale + CRM (Sheets) + marts, not a full broker deduction workflow.
| CPG norm | How the pilot addresses it |
|---|---|
| Concentration (top accounts, % of revenue) | Dashboard A — top partners, optional top-N share KPI |
| Trended revenue by period (sell-in / ops view) | Dashboard A — week and month series |
| Net / finance-aligned revenue | Dashboard B — Ops vs Finance labels and variance |
| Customer health (recency, frequency) | Dashboard C — days since last order, order counts, segment cuts |
| Category / mix | Tile A6 when wholesale_revenue_by_product_category is in the Topic |
| Deductions, chargebacks, trade terms at scale | Out of pilot unless modeled in warehouse; document in Topic if partial |
1.6 Existing reporting inventory vs Omni pilot dashboards
Sources reviewed for this table: LMNT knowledge base (wholesale customer report specs, CRM workflow transcripts), wholesale reporting Drive folder (canonical location for live files). Action: LMNT or Brainforge to open the Drive folder and add missing rows (file names, owners) directly in the copy of this spec used for client review.
| Existing artifact (as documented in vault) | Primary metrics / purpose | Refresh / grain (if known) | Omni pilot dashboard that supersedes or parallels it |
|---|---|---|---|
| Wholesale CRM Google Sheet — tabs such as All partners, Wholesale application data (Jan 2026 wholesale reporting call) | Partner master, application pipeline, tagging | Manual / daily team process | C (mart-backed roster); funnel Topic remains separate if needed |
| Report — All Wholesale Customers (wholesale_customers_report_specification.md) | Company, segment, status, total orders, total revenue, AOV, first/last order, days since last order | Linked to RAW application export | C |
| Wholesale Customers Data — Daily Updates RAW / Formatted (wholesale_customers_formatting_guide.md) | Same column set as formatted customer report | Daily pipeline | C |
| Finance OKR / GL-aligned wholesale totals (e.g. Shopify “Sales by Product” + manual adjustments per Feb 2026 alignment) | Monthly wholesale revenue vs GL | Monthly close | B |
| Legacy BI / Source Medium exports (phase-out per accelerator memo) | Ad hoc cuts | Varies | A–C replace with governed Topics once live |
| (Add rows) |
Gaps Omni is meant to close: single definition for Ops revenue in-tool, self-serve time windows and partner drilldown, documented Ops vs Finance bridge, less CSV stitching between CRM and Shopify.
1.7 Pilot program tracker alignment (1-WFK spreadsheet)
When the pilot tracker includes wholesale or Omni milestones, map each row to a dashboard or acceptance criterion below so Instagantt and build tickets stay aligned.
| Tracker row / milestone (paste from sheet) | Owner | Target date | Maps to |
|---|---|---|---|
| (fill) | §3 Dashboard A / B / C, or §6 acceptance #n |
2. Principles (all wholesale dashboards)
2.1 Date and grain
- Default behavior: Document in the Topic which date drives “wholesale revenue” for ops (e.g. order date at midnight vs ship date). Match the signed Omnichannel / Definitions Council choice when available.
- Spec default for pilot: Prefer order placed date for ops trending unless Finance requires an alternate field for reconciliation views—confirm before build.
- Period controls: Expose calendar week and calendar month (and optional rolling 4-week window for pacing) on trend tiles. State the default range in the spec (e.g. last 13 weeks + MTD).
2.2 Operations vs Finance revenue
Until a single reconciled definition is signed:
- Surface two clearly labeled measures (or two saved workbook views from the same Topic), e.g. Wholesale revenue (Ops — Shopify / mart) and Wholesale revenue (Finance — methodology TBD).
- If Finance view is not yet queryable in Omni, ship Ops view only plus a static or linked reconciliation note (owner, refresh cadence, known gaps such as QuickBooks-only orders).
Reference: Feb 2026 alignment on Shopify vs GL splits, refunds, and manual orders (wholesale revenue definition alignment transcript).
2.3 Formatting and readability (Deck Guidelines A)
- Currency:
$in column / measure titles; LMNT customer-facing preference where applicable: whole dollars ($#,##0) unless Finance requires cents. - Counts: Integer formatting; label as (count) or (partners) where ambiguity exists.
- Percent:
%in titles; state whether ratio is of revenue, of partners, or of orders.
2.4 Storytelling defaults (Deck Guidelines B)
- 3–4 core metrics per dashboard, each with explicit definition; subgroup cuts (partner, segment, state) must roll up to those cores where possible.
- Directionality: Document whether “up” is good or bad per metric (e.g. revenue ↑ good; refund dollars ↑ bad).
3. Dashboard specifications
Dashboard A — Wholesale executive pulse
Why this dashboard exists
Leadership and Shivani need a single place to see whether wholesale revenue is on track and which partners concentrate risk and opportunity, using the same definitions as the rest of the pilot. Without it, answers depend on one-off exports and inconsistent time windows. This dashboard supports weekly operating reviews and board-ready consistency once numbers are trusted.
Primary audience
- Shivani Amar
- Extended leadership as viewers
Questions answered
- Top wholesale partners by revenue for a user-selected window (and a sensible default).
- Wholesale revenue trend by week and by month.
- High-level segment or channel cut if present in the Topic (e.g. product category from locked metrics).
Core metrics (3–4) — numerator / denominator
| Core metric | Business definition | Formula / logic | Locked ref (if any) |
|---|---|---|---|
| Wholesale revenue (Ops) | Total revenue from wholesale channel for the selected period | SUM(revenue) at agreed date grain | wholesale_total_revenue — METRIC_DEFINITIONS_LOCKED § Wholesale |
| Wholesale orders (Ops) | Order count from wholesale channel | COUNT(orders) | wholesale_total_orders |
| Active wholesale partners (pilot definition) | Count of partners with ≥1 qualifying order in period or status = active — pick one and document in Topic | COUNT(DISTINCT partner_id) per documented rule | Align toward wholesale_active_partner_count; formal definition may still be in flight |
| Top-N partner share of revenue (optional KPI tile) | Sum of revenue for top N partners ÷ total revenue for period | SUM(revenue WHERE partner IN top_N) / SUM(revenue) | Derivative; label Top N share of wholesale revenue (%) |
Filters and defaults
- Time: Date range parameter; default last 13 completed calendar weeks plus MTD (or client-preferred retail-style week if wholesale adopts Walmart calendar—only if aligned).
- Partner / segment: Optional multi-select.
- Retailer / region: If available on mart.
Tiles (build list)
| # | Tile type | Content | Sort / notes |
|---|---|---|---|
| A1 | KPI | Wholesale revenue (Ops), selected period | Compare to prior period (WoW or MoM) once comparison fields exist |
| A2 | KPI | Wholesale orders (Ops), same period | Same |
| A3 | Line chart | Wholesale revenue (Ops) by week | X = week start/end label; show last 26 weeks default in explorer |
| A4 | Line or bar | Wholesale revenue (Ops) by month | Last 12–18 months |
| A5 | Table or horizontal bar | Top 20 partners by revenue (Ops), selected period | Columns: Partner name, Revenue ($), Orders (count), % of period revenue |
| A6 | Table (optional) | wholesale_revenue_by_product_category if in model | METRIC_DEFINITIONS_LOCKED |
Known gaps / caveats
- Shopify-only paths may undercount vs Finance until QuickBooks / manual orders are in warehouse.
- “Active partner” may differ from CRM PARTNER_STATUS; document which source wins.
Pilot out of scope (do not require for sign-off)
- Formal at-risk or churn flags (definitions not standardized per accelerator memo).
- Wholesale LTV and full RFM.
Dashboard B — Operations vs finance wholesale revenue
Why this dashboard exists
Finance and Operations have historically disagreed on wholesale totals when windows, refunds, and off-Shopify orders differ. This dashboard prevents metric drift in meetings by showing side-by-side or clearly labeled series and short methodology notes so stakeholders know which number answers which question. It directly supports Definitions Council alignment and reduces Slack back-and-forth.
Primary audience
- Shivani, Laura, Finance (Bess, Jacob)
- Brainforge / LMNT analytics (builders)
Questions answered
- What is wholesale revenue in the mart (Ops) for a period?
- What is wholesale revenue under Finance methodology when available—or where to find it until it lives in Snowflake?
- What adjustments explain the gap (refunds, manual orders, classification)?
Core metrics
| Measure | Label in UI | Notes |
|---|---|---|
| Ops wholesale revenue | Wholesale revenue (Ops — Shopify / mart) | From wholesale_mart / orders Topic per locked definition |
| Finance wholesale revenue | Wholesale revenue (Finance — GL-aligned) | Populate when Finance source is queryable; else placeholder tile with owner + link to reconciliation workbook |
| Gap | Variance (Ops − Finance) or % variance | Only when both exist; footnote timezone and refund treatment |
Filters and defaults
- Month and quarter presets for Finance alignment; custom range for deep dives.
- Optional: product split (Drink Mix / Sparkling / reseller classes) per Feb 2026 alignment transcript.
Tiles
| # | Tile type | Content |
|---|---|---|
| B1 | KPI row | Ops revenue, Finance revenue (or TBD), variance |
| B2 | Table | Month-by-month (or week) Ops revenue vs Finance columns |
| B3 | Text / callout | Methodology (5–8 bullets): date field, refund handling, exclusions, manual orders |
| B4 | Link tile (if supported) or appendix in doc | Link to reconciliation artifact (sheet or NetSuite export) |
Known gaps
- Full NetSuite / QuickBooks parity in Omni may be post-pilot per accelerator §3 Revenue / reconciliation. Pilot success = clear labeling + documented gap, not necessarily automated Finance pull.
Dashboard C — Partner coverage and reorder behavior
Why this dashboard exists
The wholesale team needs to know which accounts are represented in the mart and how they behave over time (orders, revenue, recency) to prioritize outreach and fix CRM vs Shopify mismatches. wholesale_dm_customer already combines CRM and Shopify; this dashboard makes that inspectable in Omni without re-deriving spreadsheets.
Primary audience
- Laura Putnam, Madison
- Blake (partnerships) as viewer
Questions answered
- Which partners are in
wholesale_dm_customer? - What are total orders, total revenue, first / last order dates, days since last order?
- How do partners group by segment, business type, status?
Field mapping (Omni labels)
Align display names to wholesale customers report spec where useful:
| Theme | Example source fields / concepts |
|---|---|
| Identity | Company name, contact, customer ID |
| Classification | Segment, application business type, partner status |
| Order / revenue | Total orders, total revenue, average order value |
| Activity | First order date, last order date, first wholesale order date, days since last order |
| Lifecycle | Customer created, onboarded date (for funnel context later) |
Core metrics (partner grain)
| Core metric | Definition |
|---|---|
| Partners in mart | Row count or COUNT(DISTINCT customer_id) with documented filter (e.g. exclude test accounts) |
| Total revenue (lifetime or window) | SUM of partner-level revenue field — confirm whether tile is lifetime vs filterable period |
| Total orders | Sum or count per partner |
| Days since last order | As modeled; flag stale CRM |
Filters and defaults
- Default sort: revenue descending or days since last order descending (team choice).
- Filters: Segment, state, partner status, minimum revenue threshold.
Tiles
| # | Tile type | Content |
|---|---|---|
| C1 | KPI | Count of partners in mart (with filter note) |
| C2 | KPI | Median or average days since last order (define population) |
| C3 | Detail table | Partner roster: name, segment, status, total revenue, total orders, first/last order, days since last order |
| C4 | Bar or treemap | Revenue by segment or business type |
| C5 | Histogram (optional) | Distribution of days since last order (buckets: 0–30, 31–60, 61–90, 90+) |
Known gaps
- Formal “at risk” scoring deferred (accelerator memo). Buckets above are descriptive, not signed operational triggers unless LMNT approves.
- CRM + Shopify tag hygiene may skew segment splits (LMNT Analysis Roadmap).
4. Phase 2 (not pilot acceptance)
Document in Omni README or folder description; do not block pilot sign-off.
- Locked active / churned / at-risk definitions and calculated flags.
- Wholesale LTV, RFM, geographic concentration dashboards.
- Root-cause drill templates (Deck Guidelines C) when revenue moves materially week over week.
- Doomsday triggers with named owners (Deck Guidelines D) once thresholds are agreed.
5. Topic, workbook, and Blobby notes
- Topic naming: Keep focused Topics (e.g. wholesale customer grain vs order grain) per Omni best practices; join in model rather than overloading one Topic if grain conflicts.
- Parameters:
default_filtersfor date range; document in Topic YAML / UI description. - Sample queries (for Blobby): e.g. “Top 10 wholesale partners by revenue last 8 weeks”; “Wholesale revenue by month this year”; “Partners with no order in 90 days” (if filter supported).
- Permissions: Viewer vs Creator per LMNT RBAC; Finance folder may restrict sensitive reconciliation workbooks.
6. Pilot acceptance criteria
Pilot wholesale reporting is accepted when:
- Stakeholders can answer all four accelerator wholesale questions using published dashboards (or published workbooks + documented Finance bridge).
- Ops revenue tiles reference locked or spreadsheet-approved definitions.
- Finance comparison is either live with two labels or explicitly documented as TBD with owner and artifact link.
- Partner roster dashboard reflects
wholesale_dm_customerwith core fields listed in §3C. - Deck Guidelines compliance appendix (§7) is filled for dashboards A–C.
7. Appendix — Brainforge Deck Guidelines compliance
Reference: Brainforge Deck Guidelines (Notion).
Dashboard A — Wholesale executive pulse
| Guideline | How this dashboard satisfies it |
|---|---|
| A — Readability | Takeaway-style title; $ / % / counts in measure names; assumptions in §2 and Topic description |
| B — Storytelling | Default periods; 3–4 core metrics with formulas in §3A; top-20 rolls up to total revenue; WoW/MoM callouts when data supports |
| C — RCA (V2) | Optional later: drill from total revenue → partner → segment; not required for pilot |
| D — Decision-oriented | Candidate triggers (LMNT to assign owners): e.g. week-over-week revenue down > X% vs trailing 4w; top-5 partner revenue down > Y%. Final thresholds out of pilot scope unless provided |
| E — Reality check | Ops vs Finance caveat in §2.2; no external benchmark claims without source |
Dashboard B — Ops vs finance wholesale revenue
| Guideline | How this dashboard satisfies it |
|---|---|
| A | Two unambiguous measure names; methodology callout tile |
| B | Month/quarter aligned to Finance rhythm; variance formula explicit |
| C | V2: breakdown of variance by adjustment class when data exists |
| D | Trigger: unexplained variance > threshold → Finance + Ops huddle (threshold TBD) |
| E | Reconciles operational view with Finance / GL narrative; flags unverified claims |
Dashboard C — Partner coverage and reorder behavior
| Guideline | How this dashboard satisfies it |
|---|---|
| A | Roster columns match agreed labels; dates formatted consistently |
| B | Segment cuts sum to filtered total; recency buckets explained |
| C | V2: click partner → order history Topic if joined |
| D | Candidate tiering: partners with revenue > $Z and days since order > 60 → account owner (thresholds TBD) |
| E | CRM vs Shopify limitations stated in §3C |
8. Stakeholder review and sign-off
Use this section during pilot spec review (per plan: Shivani, Laura, Finance as needed). Record decisions so build does not churn on ambiguous defaults.
8.1 Review checklist
| Topic | Question for LMNT | Decision / notes |
|---|---|---|
| Date field | Which field defines Ops wholesale revenue in Omni (order date vs ship vs other)? | |
| Active partner | Definition for pilot: orders-in-period, CRM status, or both? | |
| Default windows | Confirm default trend window (e.g. last 13 weeks + MTD) | |
| Finance view | Is Finance wholesale revenue available in Snowflake for pilot, or link-only for B? | |
| Top-N | Default N for top-partner table (e.g. 20) | |
| Sign-off | Pilot acceptance §6 satisfied for wholesale slice? | Yes / No — date: |
8.2 Sign-off
| Role | Name | Date | Signature / “Approved in Slack/email” ref |
|---|---|---|---|
| Wholesale leadership / ops | Shivani Amar | ||
| Wholesale team | Laura Putnam or delegate | ||
| Finance (if dual revenue view) | Bess Ross / Jacob Rogers | ||
| Analytics build owner |
9. Changelog
| Date | Author | Change |
|---|---|---|
| 2026-04-06 | Brainforge | Initial pilot spec from accelerator appendix, locked metrics, deck guidelines, and wholesale customer field map |
| 2026-04-06 | Brainforge | Added §1.5 CPG lens, §1.6–1.7 inventory and tracker mapping (plan gather-external), §8 stakeholder review/sign-off |