Grow Fragrance — Data Resource Report

46 tables · 9 schemas · 737,146 rows · 12 MB compressed Parquet

Generated: April 12, 2026
Source: analytics/david/_working/*.json
Scope: All active Parquet tables
B&W Printer Friendly

1. Overview

The Grow Fragrance Datahub consolidates sales, advertising, inventory, and finance data into a Parquet-based analytical lake, queried in-memory via DuckDB. The tables below represent the full active schema as of April 12, 2026.

SchemaTablesRowsDescription
channel181Derived channel P&L — computed from fact + finance inputs
dim288,658Dimension tables — slowly changing descriptors for joins
etl175ETL audit log — records every load run with row counts and status
fact10629,852Event / transactional records — append-mostly, one row per event
finance2518,298Finance tables — sourced from Excel exports, QuickBooks, and BOM system
labor325Labor efficiency model — computed from production logs + BOM rates
map2144Mapping / reference tables — cross-system ID resolution
scale112Scale variance model — residual after standard cost allocation
standard11Standard cost model — derived from BOM components + pricing
Total46737,146

2. Data Lineage & Transformations

Data flows left to right: external source systems are ingested by ETL scripts into raw Parquet tables, which are then combined and aggregated to produce derived analytical tables consumed by dashboards. Dashed borders indicate computed/derived tables. Bold borders indicate high-traffic tables.

Source Systems Raw / Source Tables Derived / Computed Dashboard Outputs Shopify API Amazon Seller API Amazon Ads API Meta Ads API Google Ads API Klaviyo API Finance Excel QuickBooks ShipStation Internal / Manual fact_ad_spend fact_amazon_returns fact_amazon_settlemen… fact_bank_transactions fact_inventory fact_klaviyo_campaigns fact_klaviyo_flows fact_orders finance_amazon_accrua… finance_bom_channel finance_bom_formulati… finance_bom_goods finance_budget_monthly finance_cashflow_mont… finance_chart_of_acco… finance_ga_detail finance_inventory_sna… finance_labor_rates finance_payroll_summa… finance_pnl_monthly finance_production_log finance_qbo_pnl finance_revenue_proje… finance_rm_costs finance_seasonal_laun… finance_vendors finance_wms_current labor_efficiency_mont… labor_model_params map_amazon_packs map_sku channel_pnl_monthly dim_customers dim_products etl_log fact_amazon_daily fact_shopify_daily finance_bom_component… finance_bom_formulati… finance_pnl_clean finance_pnl_reconcili… finance_rm_pricing finance_vendors_v2 labor_model_monthly scale_variance_monthly standard_cost_model Grow Dashboard QW Dashboard Finance Dashboard Forecasting Dashboard Channel P&L

Diagram shows inferred lineage. Solid arrows = primary data flow. Source systems on left; dashboard consumers on right.

Transformation Detail

The following tables are derived or computed from other tables in the lake:

Table Type Source Tables Transformation Notes
channel_pnl_monthlyComputedfact_orders, fact_ad_spend, finance_bom_channel, finance_labor_rates, scale_variance_monthlyCore P&L output: revenue - COGS - ad spend - labor - scale variance, by channel/month
dim_customersDimension (derived)fact_ordersCustomer dimension built from fact_orders: first-order logic, cohort tagging
dim_productsDimension (derived)map_sku, finance_bom_goodsUnified product dimension derived from map_sku with COGS from finance_bom_goods
etl_logAuditfact_orders, fact_ad_spend, fact_klaviyo_campaigns, fact_klaviyo_flowsWritten by all ETL scripts; one row per load run with status and row counts
fact_amazon_dailyComputedfact_ordersDaily aggregate of fact_orders filtered to channel=amazon
fact_shopify_dailyComputedfact_ordersDaily aggregate of fact_orders filtered to channel=shopify
finance_bom_components_v2Computedfinance_bom_formulations_v2, finance_rm_pricingComponent-level BOM: formulations_v2 × rm_pricing joined on ingredient codes
finance_bom_formulations_v2Successor (v2)finance_bom_formulationsV2 refresh of formulations — extended attributes, updated ingredient ratios
finance_pnl_cleanComputedfinance_pnl_monthly, finance_chart_of_accountsMaterialized view — pnl_monthly joined with chart_of_accounts for display metadata
finance_pnl_reconciliationComputedfinance_pnl_monthly, finance_qbo_pnl, finance_chart_of_accountsMonthly variance table: declared subtotals vs computed sums vs QBO actuals
finance_rm_pricingComputedfinance_rm_costsV2 of rm_costs — adds vendor, lead time, MOQ, and Cu/Co pricing details
finance_vendors_v2Successor (v2)finance_vendorsV2 of vendors — extended vendor master with payment terms and contacts
labor_model_monthlyComputedlabor_model_params, fact_orders, finance_labor_ratesMonthly labor efficiency: BOM rates × volume, parameterised by labor_model_params
scale_variance_monthlyComputedlabor_model_monthlyResidual between standard cost and actual spend after task-level allocation
standard_cost_modelComputedfinance_bom_components_v2, finance_rm_pricing, finance_labor_ratesFull per-unit cost build-up: raw materials + formulation + labor + overhead

3. Table Catalog

Each table card shows column classification, completeness, distinct value counts, and value ranges or top values. Completeness symbols: ● Complete  ◑ High  ◔ Moderate  ○ Low  ✕ Critical.

Schema: channel

Derived channel P&L — computed from fact + finance inputs

channel_pnl_monthly 81 rows · 22 columns · schema: channel Derived from: fact_orders, fact_ad_spend, finance_bom_channel, finance_labor_rates, scale_variance_monthly
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
yearINTEGERMetric● Complete0%3min=2.0K median=2.0K max=2.0K
monthVARCHARDimension● Complete0%272024-02, 2024-03, 2024-04, 2024-05
channelVARCHARDimension● Complete0%3faire, shopify, amazon
gross_revenueDOUBLEMetric● Complete0%81min=1.3K median=68.4K max=499.1K
discountsDOUBLEMetric● Complete0%74min=0 median=334.80 max=36.3K
returnsDOUBLEMetric● Complete0%52min=0 median=1.1K max=4.8K
net_revenueDOUBLEMetric● Complete0%81min=1.2K median=40.1K max=446.9K
unitsDOUBLEMetric● Complete0%81min=150 median=2.8K max=28.0K
cogs_totalDOUBLEMetric● Complete0%81min=215.44 median=10.4K max=117.1K
gross_marginDOUBLEMetric● Complete0%81min=913.71 median=28.3K max=329.8K
platform_feesDOUBLEMetric● Complete0%81min=40.16 median=6.8K max=41.5K
shipping_costDOUBLEMetric● Complete0%56min=0 median=204.32 max=82.9K
contribution_marginDOUBLEMetric● Complete0%81min=-10.0K median=3.7K max=231.2K
ad_spendDOUBLEMetric● Complete0%55min=0 median=7.9K max=115.8K
ga_allocationDOUBLEMetric● Complete0%81min=95.61 median=2.6K max=117.2K
warehouse_laborDOUBLEMetric● Complete0%37min=0 median=0 max=46.6K
office_laborDOUBLEMetric● Complete0%37min=0 median=0 max=74.2K
contribution_after_adDOUBLEMetric● Complete0%81min=-19.7K median=3.4K max=115.4K
operating_profitDOUBLEMetric● Complete0%81min=-138.9K median=-5.6K max=56.7K
gross_margin_pctDOUBLEMetric● Complete0%81min=52.16 median=70.41 max=85.85
contribution_margin_pctDOUBLEMetric● Complete0%81min=-30.18 median=46.59 max=73.54
operating_margin_pctDOUBLEMetric● Complete0%81min=-145.01 median=-16.65 max=66.04
Recommended Analyses:
  • Segment comparison: year by month
  • Correlation: year vs gross_revenue
  • Investigate negatives: contribution_margin has 9 negative values

Schema: dim

Dimension tables — slowly changing descriptors for joins

dim_customers 88,472 rows · 10 columns · schema: dim Derived from: fact_orders
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'shopify_customer_id', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'warn', 'col': 'shopify_customer_id', 'msg': 'Identifier column has duplicates: 0 distinct vs 88,472 rows — natural key may not be unique'}
  • {'severity': 'alert', 'col': 'ltv_cohort', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
customer_idVARCHARIdentifier● Complete0%88.5K
email_hashVARCHARIdentifier● Complete0%88.4K
shopify_customer_idVARCHARIdentifier? Sparse100%0
first_order_dateDATETemporal● Complete0%1.2K2022-12-22 → 2026-04-08
acquisition_channelVARCHARDimension● Complete0%2shopify, faire
first_order_channelVARCHARDimension● Complete0%2shopify, faire
ltv_cohortVARCHARDimension? Sparse100%0
created_atTIMESTAMPTemporal● Complete0%52026-03-21 → 2026-04-08
updated_atTIMESTAMPTemporal● Complete0%12026-04-07 → 2026-04-07
cohort_monthVARCHARDimension● Complete0%412025-11, 2023-05, 2024-09, 2023-03
FK Candidates:
  • customer_id
  • email_hash
  • shopify_customer_id
Recommended Analyses:
  • Join check: link customer_id across related tables
dim_products 186 rows · 11 columns · schema: dim Derived from: map_sku, finance_bom_goods
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'shopify_handle', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'amazon_asin', 'msg': 'Sparse column: 87.1% null — investigate before use'}
  • {'severity': 'warn', 'col': 'subcategory', 'msg': 'Incomplete: 5.9% null — understand why'}
  • {'severity': 'warn', 'col': 'cogs_per_unit', 'msg': 'Incomplete: 19.4% null — understand why'}
  • {'severity': 'alert', 'col': 'weight_oz', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
product_idVARCHARIdentifier● Complete0%186
product_nameVARCHARDimension● Complete0%185
shopify_handleVARCHARDimension? Sparse100%0
amazon_asinVARCHARDimension? Sparse87%24B0D482XHTL, B07GBJTPV2, B0CZK2896K, B07TLY5RHL
categoryVARCHARDimension● Complete0%42bundle, spray, Mix - 2 oz Pack, unknown
subcategoryVARCHARDimension? Incomplete6%115 oz Spray, Car Freshener, unmapped, 6.5 oz Candle
cogs_per_unitDECIMAL(10,2)Metric? Incomplete19%117
weight_ozDECIMAL(8,2)Metric? Sparse100%0
is_activeBOOLEANBoolean● Complete0%2
created_atTIMESTAMPTemporal● Complete0%1792026-03-21 → 2026-03-23
updated_atTIMESTAMPTemporal● Complete0%612026-03-21 → 2026-03-23
FK Candidates:
  • product_id
Recommended Analyses:
  • Trend: cogs_per_unit over time by created_at grouped by product_name
  • Segment comparison: cogs_per_unit by product_name
  • Correlation: cogs_per_unit vs weight_oz

Schema: etl

ETL audit log — records every load run with row counts and status

etl_log 75 rows · 9 columns · schema: etl Derived from: fact_orders, fact_ad_spend, fact_klaviyo_campaigns, fact_klaviyo_flows
⚠ Quality Flags
  • {'severity': 'warn', 'col': 'run_id', 'msg': 'Incomplete: 17.3% null — understand why'}
  • {'severity': 'warn', 'col': 'run_id', 'msg': 'Identifier column has duplicates: 62 distinct vs 75 rows — natural key may not be unique'}
  • {'severity': 'warn', 'col': 'source_file', 'msg': 'Incomplete: 9.3% null — understand why'}
  • {'severity': 'warn', 'col': 'rows_skipped', 'msg': 'Incomplete: 12.0% null — understand why'}
  • {'severity': 'warn', 'col': 'started_at', 'msg': 'Incomplete: 8.0% null — understand why'}
  • {'severity': 'warn', 'col': 'completed_at', 'msg': 'Incomplete: 12.0% null — understand why'}
  • {'severity': 'alert', 'col': 'error_message', 'msg': 'Sparse column: 78.7% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
run_idINTEGERIdentifier? Incomplete17%62min=1 median=31.50 max=989.8K
sourceVARCHARDimension● Complete0%22amazon_windsor, channel_pnl_export, build_cost_model, amazon_ads
source_fileVARCHARDimension? Incomplete9%51
rows_loadedINTEGERMetric● Complete0%55min=0 median=150 max=553.8K
rows_skippedINTEGERMetric? Incomplete12%23min=0 median=4.50 max=279.2K
started_atTIMESTAMPTemporal? Incomplete8%692026-03-21 → 2026-04-10
completed_atTIMESTAMPTemporal? Incomplete12%662026-03-21 → 2026-04-10
statusVARCHARDimension● Complete0%2success, SUCCESS
error_messageVARCHARDimension? Sparse79%16ShipStation CSV: 107,865 orders, $992K total. 97.7% Shopify match. Jan 2024 - Sep 2025., Updated 25 Amazon products with derived COGS (component spray COGS + $1.00/pack packaging). Singles: 7, Packs: 18., Applied actual settlement fees to 74618 orders, Applied trending settlement rates to unmatched orders
FK Candidates:
  • run_id
Recommended Analyses:
  • Trend: rows_loaded over time by started_at grouped by source
  • Segment comparison: rows_loaded by source
  • Correlation: rows_loaded vs rows_skipped

Schema: fact

Event / transactional records — append-mostly, one row per event

fact_ad_spend 1,874 rows · 16 columns · schema: fact Source: Amazon Ads + Meta Ads + Google Ads APIs
⚠ Quality Flags
  • {'severity': 'warn', 'col': 'id', 'msg': 'Incomplete: 13.2% null — understand why'}
  • {'severity': 'alert', 'col': 'campaign_id', 'msg': 'Sparse column: 69.9% null — investigate before use'}
  • {'severity': 'warn', 'col': 'campaign_id', 'msg': 'Identifier column has duplicates: 131 distinct vs 1,874 rows — natural key may not be unique'}
  • {'severity': 'alert', 'col': 'ad_set_name', 'msg': 'Sparse column: 71.6% null — investigate before use'}
  • {'severity': 'alert', 'col': 'conversions_raw', 'msg': 'Sparse column: 37.8% null — investigate before use'}
  • {'severity': 'alert', 'col': 'conversions_normalized', 'msg': 'Sparse column: 96.3% null — investigate before use'}
  • {'severity': 'alert', 'col': 'revenue_attributed', 'msg': 'Sparse column: 62.1% null — investigate before use'}
  • {'severity': 'alert', 'col': 'attribution_window', 'msg': 'Sparse column: 34.7% null — investigate before use'}
  • {'severity': 'alert', 'col': 'roas_raw', 'msg': 'Sparse column: 63.3% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
idBIGINTMetric? Incomplete13%1.6Kmin=1 median=814 max=1.8K
dateVARCHARText● Complete0%203
channelVARCHARDimension● Complete0%6amazon, meta, google, collabs
campaign_nameVARCHARText● Complete0%235
campaign_idVARCHARIdentifier? Sparse70%131
ad_set_nameVARCHARDimension? Sparse72%9Sponsored Products, Sponsored Brands, DPA1 | Air Spray | Broad, Exclude Purch 60 | oPur, SCA4 | Previous Customers | Medium Budget - Dynamic List - Copy
spendDOUBLEMetric● Complete0%1.8Kmin=0 median=165.31 max=21.9K
impressionsBIGINTMetric? Mostly complete1%1.3Kmin=0 median=8.0K max=778.9K
clicksBIGINTMetric? Mostly complete1%671min=0 median=37.50 max=7.7K
conversions_rawINTEGERMetric? Sparse38%150min=0 median=0 max=1.6K
conversions_normalizedINTEGERMetric? Sparse96%26min=0 median=3 max=341
revenue_attributedDOUBLEMetric? Sparse62%323min=0 median=59.96 max=141.6K
attribution_windowVARCHARDimension? Sparse35%614d_click, 14d, 30d_click, daily
roas_rawDOUBLEMetric? Sparse63%350min=0 median=1.96 max=66.64
source_fileVARCHARDimension● Complete0%15Campaign_-_03_24_2026T23_42_10.csv, amazon_ads_2025.csv, Grow-Fragrance-INC-Campaigns-Jan-1-2024-Mar-20-2026-v2.csv, windsor_daily_refresh_20260408
loaded_atTIMESTAMPTemporal● Complete1%1.8K2026-03-21 → 2026-04-10
FK Candidates:
  • campaign_id
Recommended Analyses:
  • Trend: id over time by loaded_at grouped by channel
  • Segment comparison: id by channel
  • Correlation: id vs spend
fact_amazon_daily 774 rows · 8 columns · schema: fact Derived from: fact_orders
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
dateDATETemporal● Complete0%7522024-03-19 → 2026-04-09
asinVARCHARDimension● Complete0%17ALL, RS-WoodlandPacific-5oz-2pk-FBA-V2, RS-Variety-GG-WS-B-5oz-3pk-FBA, RS-CucumberAloe-5oz-2pk-FBA
product_nameVARCHARDimension● Complete0%10Total, , RS-Variety-GG-WS-B-5oz-3pk-FBA, RS-CucumberAloe-5oz-2pk-FBA
sessionsINTEGERMetric? Mostly complete3%496min=0 median=840 max=2.5K
unitsINTEGERMetric● Complete0%172min=1 median=96 max=300
ordered_revenueDECIMAL(10,2)Metric● Complete0%759
source_fileVARCHARDimension● Complete0%8amazon_daily_2024_2026.csv, windsor_daily_2026_session33, windsor_daily_2026-04-09, daily_refresh_2026-04-08
loaded_atTIMESTAMPTemporal● Complete0%7392026-03-21 → 2026-04-10
Recommended Analyses:
  • Trend: sessions over time by date grouped by asin
  • Segment comparison: sessions by asin
  • Correlation: sessions vs units
fact_amazon_returns 1,867 rows · 9 columns · schema: fact Source: Amazon Seller API
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
return_dateDATETemporal● Complete0%6942024-01-02 → 2026-03-19
order_idVARCHARIdentifier● Complete0%1.8K
asinVARCHARDimension● Complete0%31B0853DY283, B0BMQTT2X4, B0CBQK15P7, B07NY9QSS9
skuVARCHARDimension● Complete0%32RS-SageBlonde-5oz-2pk-FBA, RS-WoodSage-5oz-FBA, RS-BlkCrntRose_Spring2019_5oz-FBA, RS-Blndwood-5oz-FBA
quantityINTEGERMetric● Complete0%1min=1 median=1 max=1
reasonVARCHARDimension● Complete0%20UNWANTED_ITEM, NOT_AS_DESCRIBED, DEFECTIVE, ORDERED_WRONG_ITEM
statusVARCHARDimension● Complete0%2Unit returned to inventory, Reimbursed
source_fileVARCHARDimension● Complete0%1amazon_returns_2024_2026.csv
loaded_atTIMESTAMPTemporal● Complete0%1.9K2026-03-21 → 2026-03-21
FK Candidates:
  • order_id
Recommended Analyses:
  • Trend: quantity over time by return_date grouped by asin
  • Segment comparison: quantity by asin
fact_amazon_settlement_fees 73,564 rows · 7 columns · schema: fact Source: Amazon Seller API
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
amazon_order_idVARCHARIdentifier● Complete0%72.0K
yearINTEGERMetric● Complete0%3min=2.0K median=2.0K max=2.0K
product_salesDOUBLEMetric● Complete0%212min=0 median=27.99 max=1.7K
selling_feesDOUBLEMetric● Complete0%217min=-22.50 median=2.40 max=252
fba_feesDOUBLEMetric● Complete0%957min=-25.95 median=4.99 max=335.40
other_feesDOUBLEMetric● Complete0%328min=0 median=0 max=12.35
total_feesDOUBLEMetric● Complete0%2.0Kmin=-36.10 median=8.20 max=587.40
FK Candidates:
  • amazon_order_id
Recommended Analyses:
  • Correlation: year vs product_sales
  • Investigate negatives: selling_fees has 4,543 negative values
fact_bank_transactions 809 rows · 9 columns · schema: fact Source: ShipStation + Banking
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'balance', 'msg': 'Sparse column: 55.7% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
dateVARCHARDimension● Complete0%90
monthVARCHARDimension● Complete0%42026-03, 2026-01, 2026-02, 2025-12
accountVARCHARDimension● Complete0%3Capital One CC, Chase 5880 Checking, Chase 6511 CC
descriptionVARCHARText● Complete0%353
amountDOUBLEMetric● Complete0%529min=-150.0K median=-207.53 max=250.0K
categoryVARCHARDimension● Complete0%10Inflow, Marketing, G&A, Warehouse
subcategoryVARCHARDimension● Complete0%53
balanceDOUBLEMetric? Sparse56%357min=83.5K median=206.8K max=393.4K
source_fileVARCHARDimension● Complete0%9Cap One Mar.csv, Chase5880 Jan Checking.CSV, Cap One Feb.csv, Chase 5880 Checking Mar.CSV
Recommended Analyses:
  • Segment comparison: amount by date
  • Correlation: amount vs balance
  • Investigate negatives: amount has 575 negative values
fact_inventory 161 rows · 9 columns · schema: fact Source: Amazon FBA + Shopify Inventory
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'inbound_units', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'reserved_units', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'days_of_supply', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
snapshot_dateDATETemporal● Complete0%12026-03-27 → 2026-03-27
product_idVARCHARIdentifier● Complete0%152
channelVARCHARDimension● Complete0%2shopify, retail
stock_unitsINTEGERMetric● Complete0%72min=0 median=0 max=2.7K
inbound_unitsINTEGERMetric? Sparse100%0
reserved_unitsINTEGERMetric? Sparse100%0
days_of_supplyDECIMAL(6,1)Metric? Sparse100%0
source_fileVARCHARDimension● Complete0%1WMS.xlsx
loaded_atTIMESTAMPTemporal● Complete0%1582026-03-27 → 2026-03-27
FK Candidates:
  • product_id
Recommended Analyses:
  • Trend: stock_units over time by snapshot_date grouped by channel
  • Segment comparison: stock_units by channel
  • Correlation: stock_units vs inbound_units
fact_klaviyo_campaigns 204 rows · 25 columns · schema: fact Source: Klaviyo API
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
campaign_idVARCHARIdentifier● Complete0%204
campaign_nameVARCHARText● Complete0%204
send_dateDATETemporal● Complete0%1672025-04-01 → 2026-03-30
channelVARCHARDimension● Complete0%2email, sms
statusVARCHARDimension● Complete0%2Sent, Cancelled
recipientsINTEGERMetric● Complete0%203min=1 median=62.4K max=116.9K
deliveredINTEGERMetric● Complete0%204min=1 median=62.2K max=116.1K
delivery_rateDOUBLEMetric● Complete0%174min=0.97 median=1.00 max=1
opens_uniqueINTEGERMetric● Complete0%176min=0 median=42.4K max=51.4K
open_rateDOUBLEMetric● Complete0%176min=0 median=0.61 max=1
clicks_uniqueINTEGERMetric● Complete0%177min=0 median=325 max=1.9K
click_rateDOUBLEMetric● Complete0%193min=0 median=0.01 max=1
click_to_open_rateDOUBLEMetric● Complete0%168min=0 median=0.01 max=1
conversionsINTEGERMetric● Complete0%118min=0 median=61 max=325
conversion_rateDOUBLEMetric● Complete0%152min=0 median=0.00 max=0.13
conversion_valueDOUBLEMetric● Complete0%199min=0 median=4.0K max=21.9K
revenue_per_recipientDOUBLEMetric● Complete0%199min=0 median=0.09 max=8.62
unsubscribesINTEGERMetric● Complete0%149min=0 median=149.50 max=676
unsubscribe_rateDOUBLEMetric● Complete0%165min=0 median=0.00 max=0.06
spam_complaintsINTEGERMetric● Complete0%19min=0 median=4 max=46
bouncedINTEGERMetric● Complete0%137min=0 median=92.50 max=2.2K
audience_countINTEGERMetric● Complete0%11min=1 median=4 max=11
timeframe_startDATETemporal● Complete0%12025-04-09 → 2025-04-09
timeframe_endDATETemporal● Complete0%12026-04-09 → 2026-04-09
loaded_atTIMESTAMPTemporal● Complete0%12026-04-09 → 2026-04-09
FK Candidates:
  • campaign_id
Recommended Analyses:
  • Trend: recipients over time by send_date grouped by channel
  • Segment comparison: recipients by channel
  • Correlation: recipients vs delivered
fact_klaviyo_flows 169 rows · 24 columns · schema: fact Source: Klaviyo API
⚠ Quality Flags
  • {'severity': 'warn', 'col': 'flow_id', 'msg': 'Identifier column has duplicates: 46 distinct vs 169 rows — natural key may not be unique'}
  • {'severity': 'alert', 'col': 'flow_message_name', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
flow_idVARCHARIdentifier● Complete0%46WhFsCF, RJm36M, Sv3KEL, S9Rg7H
flow_nameVARCHARDimension? Mostly complete3%43Post Purchase- 3rd Order/Fans, Post Purchase- 2nd Order/Repeats, Post Purchase- 1st order, [RIQ] Cart Flow
flow_message_idVARCHARIdentifier● Complete0%169
flow_message_nameVARCHARDimension? Sparse100%0
channelVARCHARDimension● Complete0%2email, sms
trigger_typeVARCHARDimension? Mostly complete3%2Metric, Added to List
recipientsINTEGERMetric● Complete0%166min=5 median=1.7K max=23.1K
deliveredINTEGERMetric● Complete0%168min=5 median=1.7K max=22.9K
delivery_rateDOUBLEMetric● Complete0%145min=0.94 median=1.00 max=1
opens_uniqueINTEGERMetric● Complete0%156min=0 median=905 max=15.6K
open_rateDOUBLEMetric● Complete0%161min=0 median=0.56 max=0.88
clicks_uniqueINTEGERMetric● Complete0%102min=0 median=38 max=2.6K
click_rateDOUBLEMetric● Complete0%161min=0 median=0.02 max=0.47
click_to_open_rateDOUBLEMetric● Complete0%155min=0 median=0.04 max=0.53
conversionsINTEGERMetric● Complete0%64min=0 median=10 max=1.6K
conversion_rateDOUBLEMetric● Complete0%146min=0 median=0.00 max=0.25
conversion_valueDOUBLEMetric● Complete0%153min=0 median=676.32 max=102.0K
revenue_per_recipientDOUBLEMetric● Complete0%153min=0 median=0.29 max=18.71
unsubscribesINTEGERMetric● Complete0%60min=0 median=6 max=343
unsubscribe_rateDOUBLEMetric● Complete0%146min=0 median=0.00 max=0.06
bouncedINTEGERMetric● Complete0%52min=0 median=8 max=620
timeframe_startDATETemporal● Complete0%12025-04-09 → 2025-04-09
timeframe_endDATETemporal● Complete0%12026-04-09 → 2026-04-09
loaded_atTIMESTAMPTemporal● Complete0%12026-04-09 → 2026-04-09
FK Candidates:
  • flow_id
  • flow_message_id
Recommended Analyses:
  • Trend: recipients over time by timeframe_start grouped by flow_name
  • Segment comparison: recipients by flow_name
  • Correlation: recipients vs delivered
  • Join check: link flow_id across related tables
fact_orders 550,331 rows · 24 columns · schema: fact Source: Shopify API + Amazon Seller API
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'order_timestamp', 'msg': 'Sparse column: 80.2% null — investigate before use'}
  • {'severity': 'warn', 'col': 'product_id', 'msg': 'Incomplete: 19.0% null — understand why'}
  • {'severity': 'warn', 'col': 'product_id', 'msg': 'Identifier column has duplicates: 280 distinct vs 550,331 rows — natural key may not be unique'}
  • {'severity': 'alert', 'col': 'customer_id', 'msg': 'Sparse column: 24.4% null — investigate before use'}
  • {'severity': 'warn', 'col': 'customer_id', 'msg': 'Identifier column has duplicates: 88,521 distinct vs 550,331 rows — natural key may not be unique'}
  • {'severity': 'warn', 'col': 'contribution_margin', 'msg': 'Incomplete: 18.1% null — understand why'}
  • {'severity': 'warn', 'col': 'loaded_at', 'msg': 'Incomplete: 15.4% null — understand why'}
  • {'severity': 'warn', 'col': 'is_free_item', 'msg': 'Incomplete: 15.4% null — understand why'}
  • {'severity': 'warn', 'col': 'net_revenue_excl_fees', 'msg': 'Incomplete: 15.4% null — understand why'}
  • {'severity': 'warn', 'col': 'base_order_id', 'msg': 'Identifier column has duplicates: 347,143 distinct vs 550,331 rows — natural key may not be unique'}
  • {'severity': 'alert', 'col': 'discount_code', 'msg': 'Sparse column: 47.6% null — investigate before use'}
  • {'severity': 'warn', 'col': 'discount_code', 'msg': 'Identifier column has duplicates: 625 distinct vs 550,331 rows — natural key may not be unique'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
order_idVARCHARIdentifier● Complete0%550.1K
order_dateDATETemporal● Complete0%1.2K2022-12-22 → 2026-04-09
order_timestampTIMESTAMPTemporal? Sparse80%48.6K2022-12-22 → 2026-04-09
channelVARCHARDimension● Complete0%3shopify, amazon, faire
product_idVARCHARIdentifier? Incomplete19%280
customer_idVARCHARIdentifier? Sparse24%88.5K
sku_rawVARCHARDimension● Complete0%204
unitsINTEGERMetric● Complete0%42min=0 median=1 max=350
gross_revenueDECIMAL(10,2)Metric● Complete0%483
discountsDECIMAL(10,2)Metric● Complete0%1.1Kmin=0 median=0 max=1.3K
returnsDECIMAL(10,2)Metric● Complete0%995min=0 median=0 max=133.49
net_revenueDECIMAL(10,2)Metric● Complete0%5.0K
platform_feesDECIMAL(10,2)Metric● Complete0%1.6K
shipping_costDECIMAL(10,2)Metric● Complete0%1.6K
contribution_marginDECIMAL(10,2)Metric? Incomplete18%8.1K
is_subscriptionBOOLEANBoolean● Complete0%2
source_fileVARCHARDimension● Complete0%57
loaded_atTIMESTAMPTemporal? Incomplete15%157.8K2026-03-21 → 2026-04-10
is_free_itemBOOLEANBoolean? Incomplete15%2
net_revenue_excl_feesDECIMAL(12,2)Metric? Incomplete15%4.0K
is_first_orderBOOLEANBoolean● Complete0%2
base_order_idVARCHARIdentifier● Complete0%347.1K
lineitem_discountDECIMAL(10,2)Metric● Complete0%40min=0 median=0 max=1.3K
discount_codeVARCHARIdentifier? Sparse48%625
FK Candidates:
  • order_id
  • product_id
  • customer_id
  • base_order_id
  • discount_code
Recommended Analyses:
  • Trend: units over time by order_date grouped by channel
  • Segment comparison: units by channel
  • Correlation: units vs gross_revenue
  • Join check: link order_id across related tables
fact_shopify_daily 99 rows · 8 columns · schema: fact Derived from: fact_orders
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'units', 'msg': 'Sparse column: 78.8% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
dateDATETemporal● Complete0%992026-01-01 → 2026-04-09
ordersINTEGERMetric● Complete0%62min=17 median=87 max=220
gross_revenueDECIMAL(10,2)Metric● Complete0%99
net_revenueDECIMAL(10,2)Metric● Complete0%97
unitsINTEGERMetric? Sparse79%20min=58 median=320 max=688
source_fileVARCHARDimension● Complete0%7shopify_daily_sales_2026ytd.csv, windsor_daily_2026_session33, windsor_daily_refresh_20260407, windsor_daily_refresh_20260406
loaded_atTIMESTAMPTemporal● Complete0%852026-03-21 → 2026-04-10
channelVARCHARDimension● Complete0%1shopify
Recommended Analyses:
  • Trend: orders over time by date grouped by source_file
  • Segment comparison: orders by source_file
  • Correlation: orders vs gross_revenue

Schema: finance

Finance tables — sourced from Excel exports, QuickBooks, and BOM system

finance_amazon_accruals 12 rows · 7 columns · schema: finance Source: Finance Excel (Nikita)
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
monthDATETemporal● Complete0%122025-01-01 → 2025-12-12
gross_salesDOUBLEMetric● Complete0%12min=54.8K median=83.9K max=100.1K
returns_refundsDOUBLEMetric● Complete0%12min=1.4K median=2.0K max=2.9K
platform_feesDOUBLEMetric● Complete0%12min=26.1K median=31.6K max=35.2K
advertising_feesDOUBLEMetric● Complete0%12min=6.6K median=9.5K max=11.2K
net_payoutDOUBLEMetric● Complete0%12min=20.6K median=41.9K max=51.4K
sourceVARCHARDimension● Complete0%1summary
Recommended Analyses:
  • Trend: gross_sales over time by month grouped by source
  • Segment comparison: gross_sales by source
  • Correlation: gross_sales vs returns_refunds
finance_bom_channel 185 rows · 8 columns · schema: finance Source: Finance Excel (Nikita)
⚠ Quality Flags
  • {'severity': 'warn', 'col': 'sku', 'msg': 'Incomplete: 13.5% null — understand why'}
  • {'severity': 'warn', 'col': 'rm_cost', 'msg': 'Incomplete: 16.8% null — understand why'}
  • {'severity': 'warn', 'col': 'labor_cost', 'msg': 'Incomplete: 16.8% null — understand why'}
  • {'severity': 'alert', 'col': 'total_cost', 'msg': 'Sparse column: 50.3% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
productVARCHARDimension● Complete0%185
skuVARCHARDimension? Incomplete14%157
channelVARCHARDimension● Complete0%4shopify, amazon, amazon_2pack, amazon_3pack
rm_costDECIMAL(18,3)Metric? Incomplete17%146
labor_costDECIMAL(18,3)Metric? Incomplete17%9
total_costDECIMAL(18,3)Metric? Sparse50%88
source_fileVARCHARDimension● Complete0%1BOM - Channel v2.xlsx
loaded_atTIMESTAMPTemporal● Complete0%1852026-04-05 → 2026-04-05
Recommended Analyses:
  • Trend: rm_cost over time by loaded_at grouped by product
  • Segment comparison: rm_cost by product
  • Correlation: rm_cost vs labor_cost
finance_bom_components_v2 844 rows · 8 columns · schema: finance Derived from: finance_bom_formulations_v2, finance_rm_pricing
⚠ Quality Flags
  • {'severity': 'warn', 'col': 'rm_id', 'msg': 'Identifier column has duplicates: 328 distinct vs 844 rows — natural key may not be unique'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
product_nameVARCHARText● Complete0%205
component_nameVARCHARText● Complete0%340
rm_idVARCHARIdentifier● Complete0%328
cost_per_unitDOUBLEMetric● Complete0%151min=0.02 median=0.24 max=2.58
channelVARCHARDimension● Complete0%2retail, ecommerce
skuVARCHARText● Complete0%221
source_fileVARCHARDimension● Complete0%1BOM - Goods (1) copy.xlsx
loaded_atTIMESTAMPTemporal● Complete0%12026-03-25 → 2026-03-25
FK Candidates:
  • rm_id
Recommended Analyses:
  • Trend: cost_per_unit over time by loaded_at grouped by channel
  • Segment comparison: cost_per_unit by channel
finance_bom_formulations 79 rows · 8 columns · schema: finance Source: Finance Excel (Nikita)
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'weight_pct', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'warn', 'col': 'rm_id', 'msg': 'Identifier column has duplicates: 36 distinct vs 79 rows — natural key may not be unique'}
  • {'severity': 'alert', 'col': 'cost_per_unit', 'msg': 'Sparse column: 91.1% null — investigate before use'}
  • {'severity': 'alert', 'col': 'formulation_id', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'warn', 'col': 'formulation_id', 'msg': 'Identifier column has duplicates: 0 distinct vs 79 rows — natural key may not be unique'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
productVARCHARDimension● Complete0%251115.0, 1116.0, 1166.0, 1110.0
ingredientVARCHARDimension● Complete0%241035.0, 1027.0, 1028.0, 1029.0
weight_pctDECIMAL(18,3)Metric? Sparse100%0
rm_idVARCHARIdentifier● Complete0%36Golden Wax 464-45 (5702-02-45GW), BW-921 (7628F405), Santal 33 (NF) Type (CE-216294), SPARKLING PINEAPPLE (R17-1050)
cost_per_unitDECIMAL(18,3)Metric? Sparse91%6
formulation_idVARCHARIdentifier? Sparse100%0
source_fileVARCHARDimension● Complete0%1BOM - Goods (1).xlsx
loaded_atTIMESTAMPTemporal● Complete0%792026-03-20 → 2026-03-20
FK Candidates:
  • rm_id
  • formulation_id
Recommended Analyses:
  • Trend: weight_pct over time by loaded_at grouped by product
  • Segment comparison: weight_pct by product
  • Correlation: weight_pct vs cost_per_unit
  • Join check: link rm_id across related tables
finance_bom_formulations_v2 13 rows · 11 columns · schema: finance Derived from: finance_bom_formulations
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'weight_pct', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'rm_id', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'warn', 'col': 'rm_id', 'msg': 'Identifier column has duplicates: 0 distinct vs 13 rows — natural key may not be unique'}
  • {'severity': 'alert', 'col': 'cost_5oz', 'msg': 'Sparse column: 76.9% null — investigate before use'}
  • {'severity': 'alert', 'col': 'cost_2oz', 'msg': 'Sparse column: 84.6% null — investigate before use'}
  • {'severity': 'alert', 'col': 'cost_8oz', 'msg': 'Sparse column: 84.6% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
product_nameVARCHARDimension● Complete0%135 oz Spray - Shopify, 5 oz Spray - Amazon (before carton), 2 oz Spray — Discovery Pack, 8 oz Candle
ingredient_nameVARCHARDimension● Complete0%1Labor Cost Per Unit
weight_pctDOUBLEMetric? Sparse100%0
rm_idVARCHARIdentifier? Sparse100%0
ingredient_typeVARCHARDimension● Complete0%1labor
cost_5ozDOUBLEMetric? Sparse77%3min=0.57 median=0.84 max=2.39
cost_2ozDOUBLEMetric? Sparse85%2min=0.45 median=1.53 max=2.61
cost_8ozDOUBLEMetric? Sparse85%2min=2.39 median=2.68 max=2.97
formulation_idVARCHARIdentifier● Complete0%13labor_2_oz_spray_—_individual, labor_car_freshener, labor_vessel, labor_channel
source_fileVARCHARDimension● Complete0%1BOM - Labor & Capacity Model v2.xlsx
loaded_atTIMESTAMPTemporal● Complete0%132026-04-05 → 2026-04-05
FK Candidates:
  • rm_id
  • formulation_id
Recommended Analyses:
  • Trend: weight_pct over time by loaded_at grouped by product_name
  • Segment comparison: weight_pct by product_name
  • Correlation: weight_pct vs cost_5oz
  • Join check: link rm_id across related tables
finance_bom_goods 319 rows · 8 columns · schema: finance Source: Finance Excel (Nikita)
⚠ Quality Flags
  • {'severity': 'warn', 'col': 'rm_id', 'msg': 'Identifier column has duplicates: 159 distinct vs 319 rows — natural key may not be unique'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
productVARCHARDimension● Complete0%109
skuVARCHARDimension● Complete0%109
componentVARCHARDimension● Complete0%168
rm_idVARCHARIdentifier● Complete0%159
typeVARCHARDimension● Complete0%3SPRAY, CAR FRESHENER, VESSEL
costDECIMAL(18,3)Metric● Complete0%109
source_fileVARCHARDimension● Complete0%1BOM - Goods (1).xlsx
loaded_atTIMESTAMPTemporal● Complete0%3192026-03-20 → 2026-03-20
FK Candidates:
  • rm_id
Recommended Analyses:
  • Trend: cost over time by loaded_at grouped by product
  • Segment comparison: cost by product
finance_budget_monthly 2,577 rows · 7 columns · schema: finance Source: Finance Excel (Nikita)
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
yearINTEGERMetric● Complete0%3min=2.0K median=2.0K max=2.0K
monthINTEGERMetric● Complete0%12min=1 median=7 max=12
line_itemVARCHARDimension● Complete0%58
categoryVARCHARDimension● Complete0%5G&A, Marketing, Revenue, COGS
amountDECIMAL(18,3)Metric● Complete0%954
source_fileVARCHARDimension● Complete0%3P&L and Budget.xlsx, P&L and Budget.xlsx (break_even, Q→M distributed), P&L and Budget.xlsx (budget, Q→M distributed)
loaded_atTIMESTAMPTemporal● Complete0%2.6K2026-03-20 → 2026-03-20
Recommended Analyses:
  • Trend: year over time by loaded_at grouped by line_item
  • Segment comparison: year by line_item
  • Correlation: year vs month
finance_cashflow_monthly 536 rows · 7 columns · schema: finance Source: Finance Excel (Nikita)
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
yearINTEGERMetric● Complete0%2min=2.0K median=2.0K max=2.0K
monthINTEGERMetric● Complete0%12min=1 median=5 max=12
line_itemVARCHARDimension● Complete0%86
categoryVARCHARDimension● Complete0%7Operating Activities, Revenue, Financing Activities, Net Total
amountDECIMAL(18,3)Metric● Complete0%279
source_fileVARCHARDimension● Complete0%5Grow Fragrance_Statement of Cash Flows.xlsx, Cash Flow 2025.xlsx, Cash Flow 2026 Q1.xlsx, Cash Flow Statement.xlsx
loaded_atTIMESTAMPTemporal● Complete0%4532026-03-20 → 2026-04-05
Recommended Analyses:
  • Trend: year over time by loaded_at grouped by line_item
  • Segment comparison: year by line_item
  • Correlation: year vs month
finance_chart_of_accounts 82 rows · 22 columns · schema: finance Source: Finance Excel (Nikita)
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'pnl_parent', 'msg': 'Sparse column: 32.9% null — investigate before use'}
  • {'severity': 'alert', 'col': 'revenue_block', 'msg': 'Sparse column: 93.9% null — investigate before use'}
  • {'severity': 'alert', 'col': 'display_name', 'msg': 'Sparse column: 74.4% null — investigate before use'}
  • {'severity': 'alert', 'col': 'qb_account_name', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'qb_account_number', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'sum_components', 'msg': 'Sparse column: 97.6% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
coa_idINTEGERIdentifier● Complete0%82min=1 median=41.50 max=82
line_itemVARCHARDimension● Complete0%70
categoryVARCHARDimension● Complete0%5Marketing, COGS, G&A, Revenue
pnl_sectionVARCHARDimension● Complete0%7ga, marketing, cogs, summary
pnl_parentVARCHARDimension? Sparse33%6Other, Total G&A, Total Cost of Goods Sold, Total Marketing
display_orderINTEGERMetric● Complete0%82min=110 median=480.50 max=890
indent_levelINTEGERMetric● Complete0%3min=0 median=2 max=2
row_typeVARCHARDimension● Complete0%4detail, budget_calc, subtotal, total
is_actualBOOLEANBoolean● Complete0%2
is_budgetBOOLEANBoolean● Complete0%2
is_subtotalBOOLEANBoolean● Complete0%2
is_calculatedBOOLEANBoolean● Complete0%2
revenue_blockVARCHARDimension? Sparse94%2gross, net
display_nameVARCHARDimension? Sparse74%21Shopify Gross Revenue, Wholesale / Faire, Net Revenue, Total COGS
format_typeVARCHARDimension● Complete0%1currency
show_in_dashboardBOOLEANBoolean● Complete0%2
qb_account_nameVARCHARDimension? Sparse100%0
qb_account_numberVARCHARDimension? Sparse100%0
sum_componentsVARCHARDimension? Sparse98%2["Raw Materials", "Warehouse Labor", "Shipping - Customer", "Warehouse Rent"], ["Shopify", "Amazon", "Wholesale"]
notesVARCHARDimension● Complete0%60
is_activeBOOLEANBoolean● Complete0%1
created_atTIMESTAMPTemporal● Complete0%822026-03-24 → 2026-03-24
FK Candidates:
  • coa_id
Recommended Analyses:
  • Trend: display_order over time by created_at grouped by line_item
  • Segment comparison: display_order by line_item
  • Correlation: display_order vs indent_level
finance_ga_detail 265 rows · 9 columns · schema: finance Source: GA4 / Finance Excel
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'yearly_amount', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'notes', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
yearINTEGERMetric● Complete0%4min=2.0K median=2.0K max=2.0K
quarterINTEGERMetric● Complete0%4min=1 median=2 max=4
expense_nameVARCHARDimension● Complete0%29Fees - Legal & Professional, Rent, Repair & Maintenance, Office Supplies
yearly_amountDECIMAL(18,3)Metric? Sparse100%0
quarterly_amountDECIMAL(18,3)Metric● Complete0%88
monthly_amountDECIMAL(18,3)Metric● Complete0%88
notesVARCHARDimension? Sparse100%0
source_fileVARCHARDimension● Complete0%1All G&A Costs.xlsx
loaded_atTIMESTAMPTemporal● Complete0%2652026-03-20 → 2026-03-20
Recommended Analyses:
  • Trend: year over time by loaded_at grouped by expense_name
  • Segment comparison: year by expense_name
  • Correlation: year vs quarter
finance_inventory_snapshot 165 rows · 10 columns · schema: finance Source: Finance Excel (Nikita)
⚠ Quality Flags
  • {'severity': 'warn', 'col': 'rm_id', 'msg': 'Incomplete: 19.4% null — understand why'}
  • {'severity': 'warn', 'col': 'rm_id', 'msg': 'Identifier column has duplicates: 133 distinct vs 165 rows — natural key may not be unique'}
  • {'severity': 'alert', 'col': 'quantity', 'msg': 'Sparse column: 97.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'rm_cost_each', 'msg': 'Sparse column: 44.8% null — investigate before use'}
  • {'severity': 'alert', 'col': 'rm_cost_total', 'msg': 'Sparse column: 91.5% null — investigate before use'}
  • {'severity': 'alert', 'col': 'labor_cost_each', 'msg': 'Sparse column: 91.5% null — investigate before use'}
  • {'severity': 'warn', 'col': 'labor_cost_total', 'msg': 'Incomplete: 20.0% null — understand why'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
productVARCHARDimension● Complete0%82
rm_idVARCHARIdentifier? Incomplete19%133
quantityDECIMAL(18,3)Metric? Sparse97%5
rm_cost_eachDECIMAL(18,3)Metric? Sparse45%78
rm_cost_totalDECIMAL(18,3)Metric? Sparse92%6min=0 median=0 max=1.2K
labor_cost_eachDECIMAL(18,3)Metric? Sparse92%7
labor_cost_totalDECIMAL(18,3)Metric? Incomplete20%70
locationVARCHARDimension● Complete0%2warehouse, amazon
source_fileVARCHARDimension● Complete0%1Inventory December 2025 .xlsx
loaded_atTIMESTAMPTemporal● Complete0%1652026-03-20 → 2026-03-20
FK Candidates:
  • rm_id
Recommended Analyses:
  • Trend: quantity over time by loaded_at grouped by product
  • Segment comparison: quantity by product
  • Correlation: quantity vs rm_cost_each
finance_labor_rates 2 rows · 4 columns · schema: finance Source: Finance Excel (Nikita)
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
periodVARCHARDimension● Complete0%22025, 2024
shop_rateDECIMAL(18,3)Metric● Complete0%2
source_fileVARCHARDimension● Complete0%1BOM - Labor & Capacity.xlsx
loaded_atTIMESTAMPTemporal● Complete0%22026-03-20 → 2026-03-20
Recommended Analyses:
  • Trend: shop_rate over time by loaded_at grouped by period
  • Segment comparison: shop_rate by period
finance_payroll_summary 24 rows · 6 columns · schema: finance Source: Finance Excel (Nikita)
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
monthTIMESTAMP_NSDimension● Complete0%122025-02-01 00:00:00, 2025-05-01 00:00:00, 2025-07-01 00:00:00, 2025-09-01 00:00:00
departmentVARCHARDimension● Complete0%2warehouse, office
gross_payDOUBLEMetric● Complete0%24min=31.1K median=39.0K max=75.4K
benefitsDOUBLEMetric● Complete0%24min=7.2K median=9.4K max=17.0K
total_costDOUBLEMetric● Complete0%24min=38.3K median=48.1K max=91.2K
headcountBIGINTMetric● Complete0%4min=6 median=7 max=9
Recommended Analyses:
  • Segment comparison: gross_pay by month
  • Correlation: gross_pay vs benefits
finance_pnl_clean 1,859 rows · 21 columns · schema: finance Derived from: finance_pnl_monthly, finance_chart_of_accounts
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'sub_category', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'pnl_parent', 'msg': 'Sparse column: 42.2% null — investigate before use'}
  • {'severity': 'alert', 'col': 'revenue_block', 'msg': 'Sparse column: 90.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'display_name', 'msg': 'Sparse column: 60.6% null — investigate before use'}
  • {'severity': 'alert', 'col': 'qb_account_name', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
yearINTEGERMetric● Complete0%4min=2.0K median=2.0K max=2.0K
monthINTEGERMetric● Complete0%12min=1 median=6 max=12
line_itemVARCHARDimension● Complete0%70
categoryVARCHARDimension● Complete0%6COGS, G&A, Marketing, Revenue
sub_categoryINTEGERMetric? Sparse100%0
amountDECIMAL(18,3)Metric● Complete0%1.1K
pnl_sectionVARCHARDimension? Mostly complete2%7ga, summary, cogs, marketing
pnl_parentVARCHARDimension? Sparse42%6Total G&A, Other, Total Cost of Goods Sold, Total Gross Revenue
display_orderINTEGERMetric? Mostly complete2%82min=110 median=455 max=890
indent_levelINTEGERMetric? Mostly complete2%3min=0 median=1 max=2
row_typeVARCHARDimension? Mostly complete2%4detail, subtotal, total, budget_calc
is_actualBOOLEANBoolean? Mostly complete2%2
is_budgetBOOLEANBoolean? Mostly complete2%2
is_subtotalBOOLEANBoolean? Mostly complete2%2
is_calculatedBOOLEANBoolean? Mostly complete2%2
revenue_blockVARCHARDimension? Sparse90%2gross, net
display_nameVARCHARDimension? Sparse61%21Total Marketing / Advertising, Net Revenue, Total COGS, Total G&A
format_typeVARCHARDimension? Mostly complete2%1currency
show_in_dashboardBOOLEANBoolean? Mostly complete2%2
qb_account_nameVARCHARDimension? Sparse100%0
quality_flagVARCHARDimension● Complete0%2valid, unmapped
Recommended Analyses:
  • Segment comparison: year by line_item
  • Correlation: year vs month
finance_pnl_monthly 2,593 rows · 10 columns · schema: finance Source: Finance Excel (Nikita)
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'channel', 'msg': 'Sparse column: 94.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'pct_of_revenue', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'row_id', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'warn', 'col': 'row_id', 'msg': 'Identifier column has duplicates: 0 distinct vs 2,593 rows — natural key may not be unique'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
yearINTEGERMetric● Complete0%4min=2.0K median=2.0K max=2.0K
monthINTEGERMetric● Complete0%12min=1 median=6 max=12
line_itemVARCHARDimension● Complete0%134
categoryVARCHARDimension● Complete0%7COGS, G&A, Revenue, Expense
channelVARCHARDimension? Sparse94%3shopify, amazon, wholesale
amountDECIMAL(18,3)Metric● Complete0%1.4K
pct_of_revenueDECIMAL(18,3)Metric? Sparse100%0
source_fileVARCHARDimension● Complete0%4P&L and Budget.xlsx, P&L 2024.xlsx, P&L 2026 Q1.xlsx, dedup_fix
loaded_atTIMESTAMPTemporal● Complete0%2.5K2026-03-20 → 2026-04-05
row_idINTEGERIdentifier? Sparse100%0
FK Candidates:
  • row_id
Recommended Analyses:
  • Trend: year over time by loaded_at grouped by line_item
  • Segment comparison: year by line_item
  • Correlation: year vs month
finance_pnl_reconciliation 72 rows · 15 columns · schema: finance Derived from: finance_pnl_monthly, finance_qbo_pnl, finance_chart_of_accounts
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'qb_amount', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'qb_variance', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'qb_is_reconciled', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'notes', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
recon_idINTEGERIdentifier● Complete0%72min=1 median=36.50 max=72
yearINTEGERMetric● Complete0%4min=2.0K median=2.0K max=2.0K
monthINTEGERMetric● Complete0%12min=1 median=6.50 max=12
subtotal_line_itemVARCHARDimension● Complete0%2Total Cost of Goods Sold, Total Gross Revenue
subtotal_categoryVARCHARDimension● Complete0%2COGS, Revenue
declared_amountDECIMAL(18,3)Metric● Complete0%53
computed_sumDECIMAL(18,3)Metric● Complete0%53
varianceDECIMAL(18,3)Metric● Complete0%8min=-4.5K median=0 max=1.2K
variance_pctDECIMAL(18,3)Metric● Complete0%8min=-1.87 median=0 max=1.14
is_reconciledBOOLEANBoolean● Complete0%2
qb_amountDECIMAL(18,3)Metric? Sparse100%0
qb_varianceDECIMAL(18,3)Metric? Sparse100%0
qb_is_reconciledBOOLEANBoolean? Sparse100%0
notesVARCHARDimension? Sparse100%0
checked_atTIMESTAMPTemporal● Complete0%722026-03-24 → 2026-03-24
FK Candidates:
  • recon_id
Recommended Analyses:
  • Trend: year over time by checked_at grouped by subtotal_line_item
  • Segment comparison: year by subtotal_line_item
  • Correlation: year vs month
  • Investigate negatives: variance has 5 negative values
finance_production_log 4,037 rows · 6 columns · schema: finance Source: Production Records
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
timestampTIMESTAMPTemporal● Complete0%4.0K2021-01-11 → 2026-03-20
productVARCHARText● Complete0%346
units_producedINTEGERMetric● Complete0%797min=0 median=165 max=5.4K
skuVARCHARText● Complete0%291
source_fileVARCHARDimension● Complete0%1WMS Current as of 3-20-26.xlsx
loaded_atTIMESTAMPTemporal● Complete0%4.0K2026-03-20 → 2026-03-20
Recommended Analyses:
  • Trend: units_produced over time by timestamp grouped by source_file
  • Segment comparison: units_produced by source_file
finance_qbo_pnl 1,857 rows · 8 columns · schema: finance Source: QuickBooks Export
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'parent_item', 'msg': 'Sparse column: 78.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'amount', 'msg': 'Sparse column: 27.6% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
line_itemVARCHARDimension● Complete0%95
categoryVARCHARDimension● Complete0%9G&A, Revenue, COGS, Payroll
parent_itemVARCHARDimension? Sparse78%19General and Administrative Expense, Payroll & Related Expenses, Income, Revenue - Shopify
is_totalBOOLEANBoolean● Complete0%2
monthTIMESTAMPTemporal● Complete0%272024-01-01 → 2026-03-01
amountDOUBLEMetric? Sparse28%1.1Kmin=-385.9K median=2.4K max=536.6K
yearBIGINTMetric● Complete0%3min=2.0K median=2.0K max=2.0K
annual_totalDOUBLEMetric● Complete0%196min=-858.4K median=4.6K max=3.4M
Recommended Analyses:
  • Trend: amount over time by month grouped by line_item
  • Segment comparison: amount by line_item
  • Correlation: amount vs year
  • Investigate negatives: amount has 205 negative values
finance_revenue_projection 96 rows · 8 columns · schema: finance Source: Finance Excel (Nikita)
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
yearINTEGERMetric● Complete0%1min=2.0K median=2.0K max=2.0K
monthINTEGERMetric● Complete0%12min=1 median=6.50 max=12
channelVARCHARDimension● Complete0%2Shopify, Amazon
formatVARCHARDimension● Complete0%10Sprays, 3 Wick Candles, Discovery Sets, 2 Sprays
revenue_projectedDECIMAL(12,2)Metric● Complete0%94
units_projectedDECIMAL(10,2)Metric● Complete0%94
source_fileVARCHARDimension● Complete0%1P&L and Budget.xlsx
loaded_atTIMESTAMPTemporal● Complete0%962026-03-20 → 2026-03-20
Recommended Analyses:
  • Trend: year over time by loaded_at grouped by channel
  • Segment comparison: year by channel
  • Correlation: year vs month
finance_rm_costs 401 rows · 9 columns · schema: finance Source: Finance Excel (Nikita)
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'moq', 'msg': 'Sparse column: 20.9% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
vendorVARCHARDimension● Complete0%39Kenco Label & Tag, Wizard Labels, RR Donnelley, Vista Print
raw_materialVARCHARText● Complete0%396
vendor_material_numberVARCHARText● Complete1%381
costDECIMAL(18,3)Metric? Mostly complete1%132
vendor_unitVARCHARDimension? Mostly complete1%7each, lb, -, kilogram
moqVARCHARDimension? Sparse21%31500.0, 1000.0, 50.0, 55.0
rm_idVARCHARIdentifier● Complete1%371
source_fileVARCHARDimension● Complete0%1Purchasing Framework .xlsx
loaded_atTIMESTAMPTemporal● Complete0%4012026-03-20 → 2026-03-20
FK Candidates:
  • rm_id
Recommended Analyses:
  • Trend: cost over time by loaded_at grouped by vendor
  • Segment comparison: cost by vendor
finance_rm_pricing 370 rows · 10 columns · schema: finance Derived from: finance_rm_costs
⚠ Quality Flags
  • {'severity': 'warn', 'col': 'moq', 'msg': 'Incomplete: 20.0% null — understand why'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
rm_idVARCHARIdentifier● Complete0%370
material_nameVARCHARText● Complete0%367
vendorVARCHARDimension● Complete0%35Kenco Label & Tag, Wizard Labels, RR Donnelley, Vista Print
unit_priceDOUBLEMetric● Complete0%133min=0 median=0.09 max=371.80
unit_typeVARCHARDimension● Complete1%5each, lb, kilogram, gal
moqVARCHARDimension? Incomplete20%29500, 1000, 55, 50
freight_per_unitDOUBLEMetric? Mostly complete2%93min=0 median=0.00 max=10.65
landed_costDOUBLEMetric● Complete0%144min=0 median=0.09 max=382.45
source_fileVARCHARDimension● Complete0%1Purchasing Framework .xlsx
loaded_atTIMESTAMPTemporal● Complete0%12026-03-25 → 2026-03-25
FK Candidates:
  • rm_id
Recommended Analyses:
  • Trend: unit_price over time by loaded_at grouped by vendor
  • Segment comparison: unit_price by vendor
  • Correlation: unit_price vs freight_per_unit
finance_seasonal_launch 917 rows · 7 columns · schema: finance Source: Finance Excel (Nikita)
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
seasonVARCHARDimension● Complete0%7Spring, Summer I, Holiday, Fall
yearINTEGERMetric● Complete0%2min=2.0K median=2.0K max=2.0K
fragranceVARCHARDimension● Complete0%88
metricVARCHARDimension● Complete0%19qty, total_qty_remaining, pct_reached, days_to_sell
valueDECIMAL(18,3)Metric● Complete0%718
source_fileVARCHARDimension● Complete0%130-Day Post Seasonal Launch.xlsx
loaded_atTIMESTAMPTemporal● Complete0%9172026-03-20 → 2026-03-20
Recommended Analyses:
  • Trend: year over time by loaded_at grouped by season
  • Segment comparison: year by season
  • Correlation: year vs value
finance_vendors 47 rows · 8 columns · schema: finance Source: Finance Excel (Nikita)
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'sales_rep', 'msg': 'Sparse column: 42.6% null — investigate before use'}
  • {'severity': 'alert', 'col': 'order_method', 'msg': 'Sparse column: 31.9% null — investigate before use'}
  • {'severity': 'alert', 'col': 'payment_terms', 'msg': 'Sparse column: 27.7% null — investigate before use'}
  • {'severity': 'alert', 'col': 'lead_time_days', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'total_replenishment_days', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
vendorVARCHARDimension● Complete0%47Berje, Candlescience, Cosmo, Custom Comet
sales_repVARCHARDimension? Sparse43%26nbyom@illingpackaging.com, Testing - Biobased Kevin Reagan kreagan@betalabservices.com Account Manager, Melissa.Gomez@BerlinPackaging.com, Mike Deigan mike@globallinksourcing.com
order_methodVARCHARDimension? Sparse32%10On QBO - send email to purchase contact, Order online , Create PO on QBO, then order via email, Create PO on QBO, then order online. MINIMUM ORDER should be $800 or more. We'll be charged the difference if order is below $800
payment_termsVARCHARDimension? Sparse28%33sdoubleday@illingpackaging.com, orders@dewolfchem.com, Order online: https://customer.customessence.com/Account/login YPatel@customessence.com djensen@customessence.com, jaimeh@mckernan.com, brandig@mckernan.com
lead_time_daysINTEGERMetric? Sparse100%0
total_replenishment_daysINTEGERMetric? Sparse100%0
source_fileVARCHARDimension● Complete0%1Purchasing Framework .xlsx
loaded_atTIMESTAMPTemporal● Complete0%472026-03-20 → 2026-03-20
Recommended Analyses:
  • Trend: lead_time_days over time by loaded_at grouped by vendor
  • Segment comparison: lead_time_days by vendor
  • Correlation: lead_time_days vs total_replenishment_days
finance_vendors_v2 47 rows · 6 columns · schema: finance Derived from: finance_vendors
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'lead_time_weeks', 'msg': 'Sparse column: 29.8% null — investigate before use'}
  • {'severity': 'warn', 'col': 'payment_terms', 'msg': 'Incomplete: 8.5% null — understand why'}
  • {'severity': 'alert', 'col': 'carrier', 'msg': 'Sparse column: 23.4% null — investigate before use'}
  • {'severity': 'alert', 'col': 'category', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
vendor_nameVARCHARDimension● Complete0%47Berje, Beta Analytic, Candlescience, Cosmo
lead_time_weeksDOUBLEMetric? Sparse30%12min=0 median=3 max=22
transit_daysBIGINTMetric● Complete0%9min=0 median=2 max=60
payment_termsVARCHARDimension? Incomplete9%12Net 30, Prepay, Autopay, Invoice date
carrierVARCHARDimension? Sparse23%22FedEx Freight, UPS Ground, FedEx Freight/UPS Ground, UPS Ground/FedEx Freight
categoryINTEGERMetric? Sparse100%0
Recommended Analyses:
  • Segment comparison: lead_time_weeks by vendor_name
  • Correlation: lead_time_weeks vs transit_days
finance_wms_current 899 rows · 10 columns · schema: finance Source: Warehouse Management System
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'cost_per_unit', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'total_cost', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'type', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'alert', 'col': 'season', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
nameVARCHARText● Complete0%899
product_numberVARCHARText● Complete0%894
rm_idVARCHARIdentifier● Complete0%899
inventory_qtyDECIMAL(18,3)Metric● Complete0%297min=0 median=0 max=10000.0M
cost_per_unitDECIMAL(18,3)Metric? Sparse100%0
total_costDECIMAL(18,3)Metric? Sparse100%0
typeVARCHARDimension? Sparse100%0
seasonVARCHARDimension? Sparse100%0
source_fileVARCHARDimension● Complete0%1WMS.xlsx
loaded_atTIMESTAMPTemporal● Complete0%8992026-03-27 → 2026-03-27
FK Candidates:
  • rm_id
Recommended Analyses:
  • Trend: inventory_qty over time by loaded_at grouped by type
  • Segment comparison: inventory_qty by type
  • Correlation: inventory_qty vs cost_per_unit

Schema: labor

Labor efficiency model — computed from production logs + BOM rates

labor_efficiency_monthly 12 rows · 6 columns · schema: labor Source: ShipStation + Production Logs
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
monthTIMESTAMP_NSDimension● Complete0%122025-02-01 00:00:00, 2025-05-01 00:00:00, 2025-07-01 00:00:00, 2025-09-01 00:00:00
actual_payrollDOUBLEMetric● Complete0%12min=38.3K median=42.0K max=62.7K
units_producedINTEGERMetric● Complete0%12min=14.9K median=36.5K max=54.8K
headcountBIGINTMetric● Complete0%3min=7 median=7 max=9
utilization_pctDOUBLEMetric● Complete0%12min=38.85 median=121.21 max=183.19
cost_per_unitDOUBLEMetric● Complete0%12min=0.75 median=1.16 max=3.04
Recommended Analyses:
  • Segment comparison: actual_payroll by month
  • Correlation: actual_payroll vs units_produced
labor_model_monthly 12 rows · 10 columns · schema: labor Derived from: labor_model_params, fact_orders, finance_labor_rates
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
monthTIMESTAMP_NSDimension● Complete0%122025-02-01 00:00:00, 2025-05-01 00:00:00, 2025-07-01 00:00:00, 2025-09-01 00:00:00
warehouse_payrollDOUBLEMetric● Complete0%12min=38.3K median=42.0K max=62.7K
headcountBIGINTMetric● Complete0%3min=7 median=7 max=9
units_producedDOUBLEMetric● Complete0%12min=14.9K median=36.5K max=54.8K
production_laborDOUBLEMetric● Complete0%12min=16.7K median=37.8K max=54.7K
units_soldDOUBLEMetric● Complete0%12min=11.8K median=16.5K max=31.4K
orders_fulfilledBIGINTMetric● Complete0%12min=5.5K median=6.9K max=11.3K
fulfillment_laborDOUBLEMetric● Complete0%12min=4.5K median=6.3K max=12.0K
scale_varianceDOUBLEMetric● Complete0%12min=-22.4K median=-2.4K max=22.3K
absorbed_pctDOUBLEMetric● Complete0%12min=50.77 median=105.13 max=158.58
Recommended Analyses:
  • Segment comparison: warehouse_payroll by month
  • Correlation: warehouse_payroll vs headcount
  • Investigate negatives: scale_variance has 7 negative values
labor_model_params 1 rows · 12 columns · schema: labor Source: Internal Config (Drew)
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
payroll_yearBIGINTMetric● Complete0%1min=2.0K median=2.0K max=2.0K
annual_warehouse_payrollDOUBLEMetric● Complete0%1min=528.8K median=528.8K max=528.8K
annual_production_laborDOUBLEMetric● Complete0%1min=450.5K median=450.5K max=450.5K
annual_fulfillment_laborDOUBLEMetric● Complete0%1min=82.7K median=82.7K max=82.7K
annual_scale_varianceDOUBLEMetric● Complete0%1min=-4.4K median=-4.4K max=-4.4K
absorption_rateDOUBLEMetric● Complete0%1min=1.01 median=1.01 max=1.01
fulfillment_rate_shopifyDOUBLEMetric● Complete0%1min=0.38 median=0.38 max=0.38
fulfillment_rate_amazonDOUBLEMetric● Complete0%1min=0.40 median=0.40 max=0.40
fulfillment_rate_faireDOUBLEMetric● Complete0%1min=0.37 median=0.37 max=0.37
production_labor_qualityVARCHARDimension● Complete0%1yellow
fulfillment_labor_qualityVARCHARDimension● Complete0%1yellow_red
calculated_atTIMESTAMP_NSDimension● Complete0%12026-03-26 07:21:37.856063
Recommended Analyses:
  • Segment comparison: payroll_year by production_labor_quality
  • Correlation: payroll_year vs annual_warehouse_payroll
  • Investigate negatives: annual_scale_variance has 1 negative values

Schema: map

Mapping / reference tables — cross-system ID resolution

map_amazon_packs 35 rows · 5 columns · schema: map Source: Internal Template
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'component_asin', 'msg': 'Sparse column: 100.0% null — investigate before use'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
amazon_asinVARCHARDimension● Complete0%17B0FGLKT3VH, B07GBJTPV2, B0D482XHTL, B0F14CYV1M
pack_sizeINTEGERMetric● Complete0%2min=2 median=3 max=3
component_asinVARCHARDimension? Sparse100%0
component_nameVARCHARDimension● Complete0%20Lavender Blossom, Blondewood, Woodland Sage, Bamboo
loaded_atTIMESTAMPTemporal● Complete0%252026-03-21 → 2026-03-23
Recommended Analyses:
  • Trend: pack_size over time by loaded_at grouped by amazon_asin
  • Segment comparison: pack_size by amazon_asin
map_sku 109 rows · 8 columns · schema: map Source: Internal Template
⚠ Quality Flags
  • {'severity': 'alert', 'col': 'shopify_variant_id', 'msg': 'Sparse column: 100.0% null — investigate before use'}
  • {'severity': 'warn', 'col': 'shopify_variant_id', 'msg': 'Identifier column has duplicates: 0 distinct vs 109 rows — natural key may not be unique'}
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
product_idVARCHARIdentifier● Complete0%109
shopify_handleVARCHARDimension● Complete0%109
shopify_variant_idVARCHARIdentifier? Sparse100%0
amazon_asinVARCHARDimension● Complete0%1
amazon_skuVARCHARDimension● Complete0%1
internal_skuVARCHARDimension● Complete0%1
product_nameVARCHARDimension● Complete0%109
is_activeBOOLEANBoolean● Complete0%1
FK Candidates:
  • product_id
  • shopify_variant_id
Recommended Analyses:
  • Join check: link product_id across related tables

Schema: scale

Scale variance model — residual after standard cost allocation

scale_variance_monthly 12 rows · 6 columns · schema: scale Derived from: labor_model_monthly
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
monthTIMESTAMP_NSDimension● Complete0%122025-01-01 00:00:00, 2025-03-01 00:00:00, 2025-04-01 00:00:00, 2025-06-01 00:00:00
warehouse_payrollDOUBLEMetric● Complete0%12min=38.3K median=42.0K max=62.7K
production_laborDOUBLEMetric● Complete0%12min=16.7K median=37.8K max=54.7K
fulfillment_laborDOUBLEMetric● Complete0%12min=4.5K median=6.3K max=12.0K
scale_varianceDOUBLEMetric● Complete0%12min=-22.4K median=-2.4K max=22.3K
absorbed_pctDOUBLEMetric● Complete0%12min=50.77 median=105.13 max=158.58
Recommended Analyses:
  • Segment comparison: warehouse_payroll by month
  • Correlation: warehouse_payroll vs production_labor
  • Investigate negatives: scale_variance has 7 negative values

Schema: standard

Standard cost model — derived from BOM components + pricing

standard_cost_model 1 rows · 14 columns · schema: standard Derived from: finance_bom_components_v2, finance_rm_pricing, finance_labor_rates
ColumnTypeClassCompletenessNull%DistinctRange / Top Values
target_utilizationDOUBLEMetric● Complete0%1min=0.90 median=0.90 max=0.90
avg_headcountDOUBLEMetric● Complete0%1min=7.75 median=7.75 max=7.75
hours_per_fte_monthBIGINTMetric● Complete0%1min=173 median=173 max=173
annual_available_hoursDOUBLEMetric● Complete0%1min=16.1K median=16.1K max=16.1K
throughput_rateDOUBLEMetric● Complete0%1min=27.46 median=27.46 max=27.46
bench_rateDOUBLEMetric● Complete0%1min=32.86 median=32.86 max=32.86
standard_capacity_unitsDOUBLEMetric● Complete0%1min=397.6K median=397.6K max=397.6K
actual_production_unitsBIGINTMetric● Complete0%1min=441.8K median=441.8K max=441.8K
actual_vs_standard_pctDOUBLEMetric● Complete0%1min=1.11 median=1.11 max=1.11
annual_payrollDOUBLEMetric● Complete0%1min=528.8K median=528.8K max=528.8K
standard_cost_per_unitDOUBLEMetric● Complete0%1min=1.33 median=1.33 max=1.33
flat_rate_replacedDOUBLEMetric● Complete0%1min=1.16 median=1.16 max=1.16
payroll_yearBIGINTMetric● Complete0%1min=2.0K median=2.0K max=2.0K
calculated_atTIMESTAMPTemporal● Complete0%12026-03-25 → 2026-03-25
Recommended Analyses:
  • Trend: target_utilization over time by calculated_at
  • Correlation: target_utilization vs avg_headcount

Data Quality Summary

Quality score is 0–100; computed from completeness, uniqueness of identifiers, and suspicious-value counts.

Table Rows Cols % Complete Cols Top Null Columns Suspicious Score
channel_pnl_monthly8122100%6100
dim_customers88,4721080%shopify_customer_id (100%); ltv_cohort (100%); email_hash (0%)077
dim_products1861155%shopify_handle (100%); weight_oz (100%); amazon_asin (87%)066
etl_log75933%error_message (79%); run_id (17%); rows_skipped (12%)077
fact_ad_spend1,8741638%conversions_normalized (96%); ad_set_name (72%); campaign_id (70%)135
fact_amazon_daily774888%sessions (3%)0100
fact_amazon_returns1,8679100%0100
fact_amazon_settlement_fees73,5647100%4100
fact_bank_transactions809989%balance (56%)190
fact_inventory161967%inbound_units (100%); reserved_units (100%); days_of_supply (100%)167
fact_klaviyo_campaigns20425100%0100
fact_klaviyo_flows1692488%flow_message_name (100%); flow_name (3%); trigger_type (3%)087
fact_orders550,3312467%order_timestamp (80%); discount_code (48%); customer_id (24%)358
fact_shopify_daily99888%units (79%)090
finance_amazon_accruals127100%0100
finance_bom_channel185850%total_cost (50%); rm_cost (17%); labor_cost (17%)084
finance_bom_components_v28448100%097
finance_bom_formulations79862%weight_pct (100%); formulation_id (100%); cost_per_unit (91%)064
finance_bom_formulations_v2131155%weight_pct (100%); rm_id (100%); cost_2oz (85%)047
finance_bom_goods3198100%097
finance_budget_monthly2,5777100%0100
finance_cashflow_monthly5367100%0100
finance_chart_of_accounts822273%qb_account_name (100%); qb_account_number (100%); sum_components (98%)045
finance_ga_detail265978%yearly_amount (100%); notes (100%)080
finance_inventory_snapshot1651040%quantity (97%); rm_cost_total (92%); labor_cost_each (92%)058
finance_labor_rates24100%0100
finance_payroll_summary246100%0100
finance_pnl_clean1,8592129%sub_category (100%); qb_account_name (100%); revenue_block (90%)155
finance_pnl_monthly2,5931070%pct_of_revenue (100%); row_id (100%); channel (94%)067
finance_pnl_reconciliation721573%qb_amount (100%); qb_variance (100%); qb_is_reconciled (100%)260
finance_production_log4,0376100%sku (0%)0100
finance_qbo_pnl1,857875%parent_item (78%); amount (28%)285
finance_revenue_projection968100%0100
finance_rm_costs401967%moq (21%); cost (1%); vendor_unit (1%)092
finance_rm_pricing3701080%moq (20%); freight_per_unit (2%); unit_type (1%)198
finance_seasonal_launch9177100%0100
finance_vendors47838%lead_time_days (100%); total_replenishment_days (100%); sales_rep (43%)065
finance_vendors_v247633%category (100%); lead_time_weeks (30%); carrier (23%)178
finance_wms_current8991060%cost_per_unit (100%); total_cost (100%); type (100%)160
labor_efficiency_monthly126100%0100
labor_model_monthly1210100%1100
labor_model_params112100%1100
map_amazon_packs35580%component_asin (100%)090
map_sku109888%shopify_variant_id (100%)087
scale_variance_monthly126100%1100
standard_cost_model114100%0100

Segment Analysis Summary

Top 5 segment values for each dimension × metric combination run during follow-up analysis.

Table Dimension Metric Top Segments (value)

Grow Fragrance Datahub — analytics/david · Generated April 12, 2026 · Source data: explore_enrichment_20260411.json + followup_analyses_20260411.json