Finance
Date Range:
YTD 2026
to
2026 YTD Net Rev
$316K
Loading...
2025 Full Net Rev
$3.39M
Comparison year
2024 Full Net Rev
$2.48M
+36.7% YoY
NOI (2026 YTD)
-$156K
-49.4% of net rev
📋 P&L Summary — 2026 Monthly Detail vs 2025/2024 Full Year
Line Item2026 Jan2026 Feb2026 Total% of RevYoY Var2025 FY% of Rev2024 FY% of Rev
Loading P&L data...
Last updated: —
📊 Revenue by Channel
2024 FY
2025 FY
2026 YTD
📈 Marketing Efficiency Ratio (MER)
Shopify Gross MER0.34
Ad spend / Gross revenue. Target: <0.40
Shopify Net MER0.29
Ad spend / Net revenue after fees
Total Ad Spend$95K
Meta $75K + Google $18K + Shopify Collabs $2.5K
🎯 Break-Even Framework — Monthly Revenue Target
Monthly Break-Even
Net revenue needed to cover all fixed + variable costs
Current Run Rate
Annualized from YTD actuals
Gap to Break-Even
Monthly shortfall (or surplus)
ComponentMonthly BudgetMonthly ActualVarianceType
Calculating break-even...
Break-even = (Fixed Costs + Marketing) / Gross Margin %. Fixed costs = G&A + Warehouse Rent. Variable costs (COGS, shipping, platform fees) scale with revenue. Budget from Nikita's 2026 plan.
🎯 Trend vs Target — 2026 YTD Action Gap
Line ItemTREND (Actual)TARGET (Budget)Gap% to TargetStatus
Loading budget data...
Budget sourced from finance_budget_monthly (2,577 rows). Actuals from fact_orders + fact_ad_spend. Gap shows where intervention may be needed.
Cross-Reference: Revenue Validation
Shopify and Amazon revenue are validated against fact_orders in the Datahub. Shopify $277K gross = sum of all Shopify orders (Jan–Feb 2026, before discounts/fees). Amazon $95K includes pack decomposition. See the Dashboard for channel-level drill-down and customer metrics.
Cross-Reference: Ad Spend Detail
Meta and Google spend are pulled from fact_ad_spend in the Datahub. Weekly granularity. All amounts are actual spend, not attributed revenue. ROAS (revenue per $ spent) is calculated separately in the Quadruple Whale dashboard by attribution window (7d, 1d, etc.).
What this shows: P&L sourced from fact_orders and fact_ad_spend in the Datahub, plus BOM-sourced COGS and budget-sourced G&A. Revenue is net (gross − discounts − returns − platform fees). TREND = actuals (where the business IS going). TARGET = budget (where the business WANTS to go). The gap = Action Gap.
⚙️ Needs Config: Bank reconciliations and monthly close data. Monthly P&L is currently sourced from fact_orders + budget. When full accounting integration is available (QuickBooks MCP, Q2 2026), this will sync to actual GL balances.
Loading...
📊 Channel P&L Waterfall — Annual Summary
COGS allocation method: COGS is allocated to each channel proportionally by unit volume (channel units sold / total units sold). This means channels with higher unit volume absorb more COGS. Raw material cost per unit is consistent across channels (same product = same BOM), but fulfillment labor varies by channel ($0.38 Shopify, $0.40 Amazon, $0.37 Faire). Shipping costs are channel-specific from ShipStation data.
📋 Channel P&L Detail
Line ItemShopify%Amazon%Faire%Total
Loading channel P&L data...
ℹ️ Faire (wholesale) note: Faire's margin profile differs structurally from DTC channels — lower gross revenue per unit, no paid ad spend, 15% Faire commission, and net-30–60 payment terms. High operating margin % on Faire reflects the absence of ad costs, not superior unit economics. Do not compare Faire margin % directly to Shopify/Amazon without accounting for channel mix and AOV differences.
📈 Operating Margin by Channel — Monthly Trend
📦 Unit Volume by Channel & Format (Nikita #7)
FormatShopifyAmazonFaireTotal% of Total
Loading unit volume data...
💰 Per-Unit Economics by Channel
MetricShopifyAmazonFaire
Loading per-unit data...
Per-unit metrics derived from channel P&L annual summary (net revenue, COGS, ad spend, G&A) divided by total units sold per channel. YELLOW — Blended across all product formats; spray-only vs candle-only unit economics differ significantly.
⚙️ Assumptions & Parameters
Every number on this tab comes from the inputs below. Nothing is hidden or estimated without being labeled.
Revenue GREEN
Sourcefact_orders (net_revenue = gross − discounts − returns − platform_fees)
ChannelsShopify, Amazon, Faire — identified by order source
Ad Spend Attribution YELLOW
Meta + Google100% → Shopify (simplification — some Meta drives Amazon halo)
Amazon Ads100% → Amazon
Collabs100% → Shopify
FaireNo ad spend attributed
Yellow becauseMeta halo effect (~$0.54 Amazon lift per $1 Meta) not yet split. Future: 85/15 Shopify/Amazon.
G&A Allocation YELLOW
MethodMonthly revenue share (channel net rev / total net rev)
SourceQBO P&L G&A lines via finance_qbo_pnl
Yellow becauseProportional to revenue is simplistic — doesn't reflect actual resource usage per channel
Labor Allocation YELLOW
WarehouseBy unit share (channel units / total units)
OfficeBy revenue share (same as G&A)
Data Sources
Model scriptetl/export_channel_pnl.py
Output tablechannel_pnl_monthly (81 rows)
JSON pathfinance_data.json → cost_model.channel_pnl
Cross-Reference: Ad Spend Attribution
Meta and Google ad spend is attributed 100% to Shopify (they drive DTC traffic). Amazon Ads → Amazon. Faire has no ad spend. This is a simplification — Meta spend drives some Amazon halo effect (~$0.54 Amazon lift per $1 Meta). A future refinement could split Meta 85/15 Shopify/Amazon.
What this shows: Full P&L by sales channel — Shopify (DTC), Amazon (marketplace), and Faire (wholesale). Revenue from fact_orders, ad spend from fact_ad_spend (Meta+Google → Shopify, Amazon Ads → Amazon), G&A allocated by revenue share from QBO P&L, labor from payroll summary. This is the first place to look when asking "which channel is actually making money?" YELLOW — G&A allocation is proportional to revenue (simplistic). Fulfillment labor rates are BOM-Channel estimates, not task-timed.
Loading...
📊 COGS Trend — 2024 vs 2025 vs 2026 YTD (% of Net Revenue)
Line Item2024 FY2025 FY2026 YTDYoY Trend (24→25)
Loading COGS data...
🧭 BOM Inventory Summary
Loading BOM data...
🏪 BOM Cost by Channel
ChannelProductsAvg RMAvg LaborAvg TotalMinMax
Loading BOM channel data...
Source: BOM - Channel v2.xlsx (Nikita). RM = Warehouse RM + Fulfillment RM Packaging. Labor = Warehouse Labor + Fulfillment Labor. Total = full landed channel cost.
💰 SKU-Level Margin Analysis
⚠️ Data Source & Method Disclosure
Avg PriceACTUAL gross_revenue / units from order CSVs
BOM CostACTUAL finance_bom_channel (Nikita BOM v2). Faire uses Shopify BOM as proxy (same product cost). SKUs without BOM show "—" with no cost deducted
Disc/UnitALLOCATED Order-level discounts split to line items by revenue share (Method A)
Ship/UnitACTUAL Real carrier fees from ShipStation. 95%+ coverage for 2024-2025
Fees/UnitACTUAL Platform fees per line item from Shopify/Faire
True MarginCALCULATED Gross - BOM - Discounts - Shipping - Fees. Only reliable where BOM status = Full
Free shipping threshold: $70. "Free Ship %" = % of units where carrier cost was $0 (customer paid nothing). Period: 2025 full year, min 5 units.
Loading margin data...
Product ↕ Ch Units ↕ Avg Price ↕ BOM/Unit ↕ Disc/Unit ↕ Ship/Unit ↕ Fees/Unit ↕ Margin % ↕ True Margin $ ↕ BOM
Loading margin data...
Cross-Reference: COGS per Unit vs True Margin
The cogs_per_unit field in dim_products covers RM only (~$3–9/unit). The BOM/Unit column above uses finance_bom_channel.total_cost which includes warehouse RM + fulfillment RM + warehouse labor + fulfillment labor (~$6–19/unit). True Margin further deducts allocated discounts, actual shipping (ShipStation carrier fees), and platform fees. SKUs without BOM match show inflated margins — filter to "Full BOM Only" for reliable margin analysis. YELLOW — BOM coverage is % of SKUs. Discounts use revenue-weighted allocation (not per-item breakdown).
⚠️ Data Quality Status
Raw Material Costs YELLOW: BOM refreshed March 2026 from Nikita's Purchasing Framework (370 RM pricing rows with MOQs and price breaks). Costs generally increased 1-11% (sprays ~1-2%, candles ~7-11%). Path to Green: Nikita spot-check review on key products.
Production Labor YELLOW: Per-type BOM rates (not flat): sprays $1.16, candles $2.20, inserts $2.15, 2oz $0.44, discovery sets $2.54, car fresheners $0.77-$0.93. 93.2% of production units matched. Path to Green: Drew task-timing validation.
Shipping Cost GREEN: Validated from ShipStation carrier data (108K shipments, $988K total, Dec 2023-Mar 2026). 95% Shopify match rate. Avg ~$3.22/line-item.
What this shows: Breakdown of COGS by category (Raw Materials, Shipping, Warehouse Rent, Warehouse Labor). Product costing sourced from Nikita's BOM (refreshed March 2026): formulations (363 rows), components (844 rows), RM pricing (370 rows with MOQs and price breaks), and per-type production labor rates. 186 products in dim_products (126 BOM-costed + 25 Amazon + 35 Shopify unmapped).
💸 Cash Flow Statement (QB Actuals)
CategoryJanFebCumulative
Loading cash flow data...
Source: QuickBooks Statement of Cash Flows · Jan 2025–Mar 2026 · LIVE DATA
🏦 Bank & Credit Card — Cash Flow by Category (Q1 2026)
Stacked bar = monthly cash movement by category. Inflows (green) from Shopify, Amazon, Faire payouts + owner transfers. Outflows split by Payroll, Taxes, Warehouse (RM + supplies), Marketing (ads + agency), G&A, Rent, and Vendors. CC payments excluded to avoid double-counting (spend shown via CC statements instead).
💳 Checking Account — Inflows vs Outflows
MonthInflowsOutflowsNet
Loading bank data...
📥 Inflow Breakdown by Source
SourceJanFebMarTotal
Loading...
📤 Outflow Breakdown by Category CC payments excluded (see CC spend below)
CategoryJanFebMarTotal
Loading...
💳 Credit Card Spend by Category (Chase 6511 + Capital One)
Category / SubcategoryJanFebMarTotal
Loading...
Spend categories from CC statements. Marketing = Meta/Google ads + agencies. G&A = software, professional services, office. Warehouse = raw materials, shipping, supplies. This is the underlying detail behind the CC payment line in the checking account.
Data sources: Chase 5880 checking (Jan–Mar 2026), Chase 6511 CC (Jan–Mar 2026), Capital One CC (Jan–Mar 2026). 809 transactions total. Categories assigned by vendor pattern matching. YELLOW — First load; category rules should be reviewed by Nikita.
📊 Working Capital Assumptions
MetricDaysNotes
Days Sales Outstanding (DSO)1–2Shopify/Amazon are immediate settlement. Wholesale terms vary (net 30–60).
Days Inventory Outstanding (DIO)35–45Inventory turns ~8x/year. Seasonal peaks (summer, holiday) require higher working capital.
Days Payable Outstanding (DPO)30–45RM suppliers: net 30. Logistics: immediate or net 15. Depends on vendor mix.
Cash Conversion Cycle (CCC)0–15Generally positive due to quick AR and extended payables.
⚠️ Coverage: Q1 2026 only. Bank/CC data loaded from CSV exports (Jan–Mar 2026). For continuous coverage, Nikita should submit quarterly CSV batches or enable QBO bank feed integration.
What this shows: Cash flow model and liquidity analysis. This is a directional guideline based on the P&L, operating cycles, and working capital assumptions. Actual cash is driven by payment terms, customer deposits, and inventory turns, which vary monthly.
Loading...
📊 G&A Trend — 2024 vs 2025 vs 2026 YTD
Category2024 $2024 %2025 $2025 %2026 YTD $2026 YTD %
Loading G&A data...
📋 G&A Detail by Line Item — 2025 Monthly
AccountJanFebMarAprMayJunJulAugSepOctNovDecAnnual Total
Loading QBO detail...
Expanded G&A breakdown from QuickBooks P&L. Grouped by category (Bank Charges, Supplies, Taxes & Fees, Travel & Conferences, etc.). Click a parent category to expand/collapse detail items.
🎯 Key Observations
Office Labor jump (15.3% → 30.2%): 2026 YTD includes recent headcount additions in Customer Service, Product Development, and Technical direction. Full-year 2025 was spread over 12 months. In a full 12-month 2026 (annualized), expect ~18–20% of net revenue.
Consultant spike (3.5% → 6.3%): External consultants ramped for data architecture and warehouse/GRP strategic projects. This will normalize to 3–4% once projects complete. Purchasing & Finance Manager is a full employee, not a contractor.
What this shows: Detailed breakdown of G&A expenses: office labor, contractors, software subscriptions, facilities rent, insurance, legal, and miscellaneous. G&A is running 49.4% of net revenue in 2026 YTD vs. 30.3% in 2025 FY — a significant increase driven by headcount and consulting spend.
📦 Current Inventory Snapshot
CategoryCount / UnitsStatusNotes
Loading inventory data...
Source: WMS Control Board · LIVE DATA
🔢 Finished Goods by SKU (Top 20 In-Stock)
ProductUnitsCOGS Value
Loading...
📊 Inventory Turnover Ratio (Computed)
Loading turnover data...
Estimated from order-level COGS (dim_products × fact_orders units) divided by average inventory. YELLOW — uses BOM COGS which is directionally correct but RM costs need supplier verification.
Cross-Reference: GRP Integration
Current inventory snapshot will feed into the GRP (Grow Resource Planning) system. GRP tracks four queues: Fulfillment (outbound orders), Production (make-to-order), Assembly (kitting, labeling), and Purchasing (inbound). Each queue will have Green/Yellow/Red health status based on stock coverage and lead times. See GRP Design Spec (repo: docs/GRP_Design_Spec_v1.md).
What this shows: Current raw materials on hand (899 RM items) and finished goods (30,712 ecom-available units across 152 SKUs) from the WMS Control Board. Data refreshed whenever Nikita uploads a new WMS.xlsx. Ties to production forecasting and GRP.
⚠️ Values are temporary pending task-timing validation. Production rates are BOM estimates (🟡 Yellow); fulfillment rates are BOM-Channel estimates (🟡/🔴 Yellow/Red). All numbers will be updated once Drew's time-trial study and Nikita's BOM review are complete. Do not use for external reporting.
Production Labor
$386K
72.9% of WH payroll
Fulfillment Labor
$83K
15.6% of WH payroll
Scale Variance
$60K
11.4% of WH payroll
📊 Monthly Labor Decomposition — Production + Fulfillment + Scale Variance
Stacked bar = total warehouse payroll. Green = production labor (absorbed into COGS via BOM per-type rates). Blue = fulfillment labor (variable cost by channel). Orange = scale variance (underutilization + overhead). Variance should shrink as volume grows.
📊 Monthly Production Volume by Format
FormatTotal Units% of TotalAvg/Month
Loading production data...
⚙️ Production Labor — BOM Per-Type Rates
Product TypeRate/UnitAnnual UnitsAnnual Cost% of ProductionQuality
5oz Spray$1.16YELLOW
Candle$2.20YELLOW
Insert$2.15YELLOW
2oz Spray$0.44YELLOW
Discovery Set$2.54YELLOW
Car Freshener$0.77–$0.93YELLOW
Retail Spray$0.56YELLOW
Rates from Nikita's BOM (March 2026 refresh). 93.2% of production units matched to BOM rates. Remaining 6.8% are old/discontinued SKUs. Path to Green: Drew task-timing validation + Nikita review.
📦 Fulfillment Labor — Per-Unit by Channel
ChannelRate/UnitAnnual UnitsAnnual CostSource
Shopify$0.38YELLOW/RED BOM-Channel estimate
Amazon$0.40YELLOW/RED BOM-Channel estimate
Faire$0.37YELLOW/RED BOM-Channel estimate
Rates from BOM-Channel.xlsx Shopify sheet (fulfillment labor column). Blended across product types. Path to Green: Drew fulfillment timing study (actual pick/pack/ship operations), ShipStation orders-per-hour analysis.
💼 Real Payroll Summary — Office vs Warehouse (2025)
MonthOffice CostOffice HCWarehouse CostWarehouse HCTotal Cost
Loading payroll data...
Department-level aggregates from payroll records. Includes gross pay, benefits, taxes, and headcount. Office = headquarters staff (Owner, HR, Marketing, Technology, Customer Service, Product Development, Technical Director, Purchasing & Finance). Warehouse = production and fulfillment team (Warehouse Manager + staff). Individual salary data restricted for privacy.
📊 Monthly Production Volume (Last 24 Months)
Loading...
🔮 Path Forward: Task-Level Labor Model
LayerCurrent StateTarget StateStatus
Production RatesBOM per-type rates (7 types, 93.2% match)Drew task-timed rates per process per SKUBOM Rates
Fulfillment RatesBOM-Channel blended ($0.37-$0.40/unit)Drew pick/pack/ship timing by channelEstimate
Scale VarianceSingle residual bucket (11.4%)Split: overhead vs true underutilizationCombined
Overhead AllocationScale variance absorbs all overheadExplicit overhead line (meetings, receiving, cleanup)Future
Drew is lead on task-timing validation. Dan defines overhead categories. Current model balances to $0.00 against actual payroll — accuracy improves as Drew and Nikita validate inputs.
⚙️ Assumptions & Parameters
Every number on this tab comes from the inputs below. Nothing is hidden or estimated without being labeled.
Production Labor Rates YELLOW
SourceNikita's BOM - Goods (Ecommerce + Retail Summary)
5 oz Spray (ecom)$1.16 / unit
5 oz Spray (retail)$0.56 / unit
8 oz Candle$2.20 / unit
6.5 oz Candle Insert$2.15 / unit
2 oz Spray$0.44 / unit
Discovery Set$2.54 / unit
Car Freshener$0.77–$0.93 / unit
Match rate93.2% BOM + 6.8% format-inferred = 100%
Yellow becauseBOM estimates, not task-timed by Drew
Fulfillment Labor Rates YELLOW/RED
SourceBOM - Channel (Shopify/Amazon/Wholesale sheets)
Shopify$0.38 / unit (blended spray $0.37 + candle $0.41)
Amazon$0.40 / unit (blended single $0.33 + multipack $0.46)
Faire$0.37 / unit (wholesale = spray rate)
Yellow/Red becauseBOM-Channel estimates only — not validated against actual pick/pack/ship timing
Scale Variance DERIVED
FormulaWarehouse payroll − production labor − fulfillment labor
Annual total−$4,406 (−0.8% of payroll)
InterpretationTeam is right-sized. Monthly swings (±$22K) are seasonal timing.
BOM rates embed overheadAbsorption >100% in 9 of 12 months — rates cover production + overhead time
Data Sources
Warehouse payrollfinance_payroll_summary (dept = warehouse, 2025)
Production unitsfinance_production_log (441,812 units, 2025)
Fulfillment unitsfact_orders (units sold by channel, 2025)
Model scriptetl/build_cost_model.py
Model outputdashboards/labor_model_data.json
Key Assumptions
Payroll year2025 (full year, 12 months)
Headcount7–9 (seasonal: 9 in Jan/Dec, 7 in summer)
Unmatched SKUsFormat-inferred: product name → type → BOM rate
Fulfillment blendingFlat rate per channel (not per product type)
OverheadNOT separated — embedded in BOM rates (confirmed by >100% absorption)
Cross-Reference: COGS Integration
Production labor flows into COGS via dim_products.cogs_per_unit (which includes BOM per-type labor rates). Fulfillment labor is a separate variable cost line, NOT in COGS. Scale variance is isolated as its own P&L line — it's the cost of underutilization, not a product cost. See the Channels tab for how these flow into channel-level profitability.
What this shows: Warehouse payroll decomposed into three parts: Production Labor (BOM per-type rates x units produced — in COGS), Fulfillment Labor (per-unit rates x units sold — variable cost), and Scale Variance (residual underutilization — separate P&L line). COGS uses Nikita's per-type rates (stable, not a blended average). This is the standard cost accounting framework. YELLOW — Production rates from BOM estimates, not task-timed. Fulfillment rates from BOM-Channel estimates YELLOW/RED.
Grow Fragrance · Datahub v1.0 · datahub.growfragrance.ai · Data sourced from Datahub via finance_data.json