This page is a reference spec for the SourceMedium Configuration Sheet: what columns exist on each tab, which fields are required, and how dates/ranges are interpreted during ingestion.
Your Configuration Sheet is shared during onboarding (email + Slack) and is typically synced into SourceMedium within 24 hours.
General rules
Different tabs parse dates differently:
Targets / Sales / Cost (Marketing Costs) : dates are parsed from common string formats, including:
YYYY-MM-DD
MM-DD-YYYY
MM/DD/YYYY
MM/DD/YY
Financial Cost tabs : date_start / date_end are parsed as MM/DD/YYYY specifically.
Date ranges
Where a tab supports a date range, date_end is treated as inclusive (the range includes both date_start and date_end).
For tabs that amortize/spread amounts, the spread is done evenly across the number of days in the inclusive range.
Targets tab
Use the Targets tab for KPI targets displayed in scorecards and executive reporting.
Targets are treated as daily values across the selected date range. If you want a monthly total target, enter the per-day target value.
If multiple Target rows overlap on the same day for the same channel:
Summable metrics (e.g., revenue, orders, spend, sessions) are summed
Ratio-like metrics (e.g., AOV, CPA, ROAS) use the max value for that day
Column Type Required Notes channelSTRING Yes Targets are keyed by channel. date_startSTRING Yes Parsed into a date. date_endSTRING No If provided, targets apply to each day in the inclusive range. gross_revenueFLOAT64 No Target value (per day if using a range). net_revenueFLOAT64 No Target value (per day if using a range). total_revenueFLOAT64 No Target value (per day if using a range). ordersFLOAT64 No Target value (per day if using a range). spendFLOAT64 No Target value (per day if using a range). sessionsFLOAT64 No Target value (per day if using a range). aovFLOAT64 No Ratio/derived KPI targets are applied as a constant value across the range. cpaFLOAT64 No Ratio/derived KPI targets are applied as a constant value across the range. cpoFLOAT64 No Ratio/derived KPI targets are applied as a constant value across the range. conversion_rateFLOAT64 No Ratio/derived KPI targets are applied as a constant value across the range. roasFLOAT64 No Ratio/derived KPI targets are applied as a constant value across the range. primary_product_unitsNUMERIC No Optional (brand-dependent).
Channel Mapping tab
Use Channel Mapping to route orders (and some marketing records) into consistent channels , subchannels , and vendors using rule-based matching.
Column Type Required Notes rowINT64 Yes Rule priority. Higher values are evaluated first. 0 disables a row. attributeSTRING Yes Which input field to match against. operatorSTRING Yes One of: equals, contains, in (must match exactly). valueSTRING Yes Match value (comparison is case-insensitive). For in, use a comma-separated list (whitespace is ignored). channelSTRING No Optional output channel when matched. sub_channelSTRING No Optional output subchannel when matched. vendorSTRING No Optional output vendor when matched. cost_per_orderFLOAT64 No Optional CPO value associated with the matched rule.
Rules are evaluated from highest to lowest derived weight . In addition to row, some non-default channels are intentionally boosted to win over lower-priority “online” rules.
Supported attribute values
These attributes are supported by the channel mapping ingestion logic:
source (UTM source)
medium (UTM medium)
source_medium (combined UTM source/medium)
campaign (UTM campaign)
discount_codes (order discount codes)
order_tags (order tags)
skus (product SKUs)
shopify_sales_channel (Shopify sales channel / marketplace signal)
Sales tab
Use the Sales tab to enter non-integrated sales and have them included in reporting.
Column Type Required Notes channelSTRING Yes Sales channel bucket for the entry. sub_channelSTRING No Optional label for internal organization. date_startSTRING Yes Parsed into a date. date_endSTRING No If provided, amounts are spread evenly across the inclusive range. gross_revenueFLOAT64 No Total for the period (spread evenly if date_end provided). net_revenueFLOAT64 No Total for the period (spread evenly if date_end provided). ordersFLOAT64 No Total for the period (spread evenly if date_end provided). primary_product_unitsNUMERIC No Optional (brand-dependent). discountsFLOAT64 No Total for the period (spread evenly if date_end provided). refundsFLOAT64 No Total for the period (spread evenly if date_end provided).
Orders are stored as whole numbers; when a Sales row spans multiple days, order counts are distributed across the range to stay integer-valued.
Cost tab (Marketing Costs)
Use the Cost tab (sometimes labeled Marketing Costs ) for marketing spend that isn’t captured by an integration.
Column Type Required Notes categorySTRING Yes Used to categorize spend (commonly Marketing). channelSTRING Yes Channel where you want reporting to reflect spend. sub_channelSTRING No Optional subchannel. vendorSTRING No Optional platform/vendor. costFLOAT64 Yes Total cost for the period. date_startSTRING Yes Parsed into a date. date_endSTRING No If provided, cost is spread evenly across the inclusive range.
Financial Cost tabs
Financial Cost tabs define rates used for profit and cost reporting. These tabs require date_start and date_end and parse dates as MM/DD/YYYY .
For Financial Cost tabs, rows without a date_end are ignored.
Financial Cost - Product COGS
Column Type Required Notes categorySTRING Yes Typically Financial. channelSTRING Yes Channel the cost applies to. expense_channelSTRING Yes Typically Product COGS. skuSTRING Yes SKU/variant identifier the cost applies to. fixed_costFLOAT64 Yes Per-unit product cost for the SKU. date_startSTRING Yes MM/DD/YYYYdate_endSTRING Yes MM/DD/YYYY
Financial Cost - Shipping
Column Type Required Notes categorySTRING Yes Typically Financial. channelSTRING Yes Channel the cost applies to. expense_channelSTRING Yes Typically Shipping Cost. regionSTRING Yes Region bucket used for allocation. costFLOAT64 Yes Per-order shipping cost for the period. date_startSTRING Yes MM/DD/YYYYdate_endSTRING Yes MM/DD/YYYY
Financial Cost - Fulfillment
Column Type Required Notes categorySTRING Yes Typically Financial. channelSTRING Yes Channel the cost applies to. expense_channelSTRING Yes Typically Fulfillment Cost. regionSTRING Yes Region bucket used for allocation. costFLOAT64 Yes Per-order fulfillment cost for the period. date_startSTRING Yes MM/DD/YYYYdate_endSTRING Yes MM/DD/YYYY
Financial Cost - Merchant Processing Fees
Column Type Required Notes categorySTRING Yes Typically Financial. channelSTRING Yes Channel the cost applies to. expense_channelSTRING Yes Typically Merchant Processing Fees. regionSTRING Yes Region bucket used for allocation. vendorSTRING Yes Payment processor/platform label. fixed_costFLOAT64 Yes Fixed per-order fee. variable_costFLOAT64 Yes Variable rate (used as a rate downstream). date_startSTRING Yes MM/DD/YYYYdate_endSTRING Yes MM/DD/YYYY
Financial Cost - Operating Expenses
Column Type Required Notes categorySTRING Yes Typically Financial. channelSTRING Yes Channel the cost applies to. expense_channelSTRING Yes Typically Operating Expenses. regionSTRING Yes Region bucket used for allocation. costFLOAT64 Yes Total operating expenses amount for the period. date_startSTRING Yes MM/DD/YYYYdate_endSTRING Yes MM/DD/YYYY
Configuration Sheet Overview Start here for how-to guides and workflows.
How does channel mapping work? Learn the routing/precedence logic behind channel mapping.