Skip to main content
Browse topics
Back to Docs

Start Here

What's Required for Optimal Audits

How to set up tracking templates, upload order data, configure COGS, and choose the right attribution window for the most accurate audit results.


What’s Required for Optimal Audits

For · Operators ready to audit who want to understand what data quality buys
Time · 6 min read
Next · Running your first audit

A Catalyst Audit produces better recommendations when it has access to more of your business data. At minimum, Trellis works with the performance metrics your ad platforms already report. But the accuracy and value of each audit improve measurably as you provide ground-truth data about your actual orders, margins, and tracking configuration.

This guide covers the data Trellis uses, how to provide it, and what each addition adds.

The Short Version

  • Nothing here is required to run an audit. Every item improves what the audit can conclude, and the article says which conclusion each one unlocks.
  • The tracking template is the highest-value item, because without UTM parameters no order can be matched back to the campaign that drove it.
  • Order data is the ground truth attribution is measured against. Platform-reported conversions are treated as a hypothesis until they are reconciled against it.
  • COGS is what turns spend analysis into profitability analysis. Without it the audit falls back to your global gross margin.
  • Set both platforms to the same 30-day click attribution window, and go to 60 days only if your average order value or consideration period genuinely warrants it.
  • The Shopify API connection buys convenience and customer segmentation, not accuracy. A CSV upload covers everything the audit needs.

What Each Input Adds

InputRequired?What it unlocksPrioritize it when
Tracking templateStrongly recommendedAny match at all between an ad click and a Shopify orderAlways. Nothing downstream of attribution works without it
Order data exportStrongly recommendedAttribution validation against ground truth, real AOV, repeat-purchase signalYour platform-reported conversions and your order count disagree
Global gross marginRecommendedBreak-even CPA and ROAS, so the audit can call a campaign unprofitable rather than just expensiveYou have not uploaded SKU-level costs yet
Product-level COGSOptionalCategory-level profitability and a break-even figure computed from real costsYour margins vary meaningfully across product categories
Attribution windowConfigure onceConsistent cross-platform accountingYour two platforms are currently set to different windows
Shopify API connectionOptionalHands-off order sync and new-versus-returning customer segmentationThe monthly upload cycle is the thing you keep forgetting

Tracking Template Setup

A tracking template tells your ad platform to append UTM parameters to every click URL. Without it, Shopify can’t tell whether an order came from a paid ad or an organic visit, and Trellis can’t match orders back to the campaign that drove them.

Canonical reference: UTM Attribution Template. It is the full walkthrough for Google Ads and Microsoft Ads, covering the recommended templates, the macro reference (Google ID vs. Microsoft name macros), and the common mistakes to avoid.

Quick orientation:

  • Set the template at the account level in both Google Ads and Microsoft Ads so every campaign inherits it.
  • In Microsoft Ads, also confirm Auto-tagging for URLs is turned off, since it conflicts with the tracking template.
  • Google Ads has no campaign-name ValueTrack parameter; the canonical setup uses {campaignid} and joins to a name lookup downstream.

Order Data Exports

Order data is the ground truth for attribution. Without it, Trellis relies on what Google and Microsoft self-report, and per-platform conversion counts often diverge from Shopify order truth by 15-20% or more (Bloom Analytics 2025-2026).

What to export

Export your Shopify orders as a CSV covering at least the last 60 days. Longer is better for seasonal analysis: 90 days gives Trellis enough history to detect trends.

How to export from Shopify

  1. In Shopify Admin, go to Orders > click Export > select All orders > choose CSV for Excel.
  2. This export contains order details, line items, and SKUs, but no UTM data.

Adding UTM attribution

Shopify stores UTM parameters from the first click in each customer session. To extract them, run this ShopifyQL query in Analytics > Reports:

FROM sales
  SHOW total_sales, discounts, shipping_charges, taxes
  GROUP BY order_id, order_name, order_utm_campaign, order_utm_source,
    order_utm_medium, order_utm_term WITH TOTALS
  SINCE -60d UNTIL today
  ORDER BY total_sales DESC

Export the results as CSV.

Uploading to Trellis

You can upload directly in Settings > Order Data, or use the CLI to join both exports and push in one step:

python scripts/push_orders.py --orders orders.csv --utm utm.csv --dry-run

Remove --dry-run once you’ve verified the preview.

How often to re-upload

Upload fresh order data before each audit. If you run audits monthly, upload monthly. The Datamart page surfaces a freshness tier on the Order Data readiness check: green for uploads within 14 days, yellow between 14 and 30 days, and red beyond 30 days. The attribution chart on Datamart also shows an amber banner once your most recent upload is more than 30 days old.

COGS and Product Economics

Cost-of-goods data transforms spend analysis into profitability analysis. Without COGS, Trellis uses your global gross margin (set during onboarding). With COGS, audits can identify which campaigns are profitable at the product and category level.

Setting a global margin

In Settings > Business Profile, set your Gross Margin percentage. This is the minimum; Trellis uses it as the fallback when product-level data isn’t available.

Uploading product-level COGS

For SKU-level profitability, upload a CSV with two required columns: sku and unit_cost.

You can export this from Shopify: go to Products > Export > select All products > choose CSV for Excel. The Variant Cost column contains the cost per unit.

Upload in Settings > COGS. Trellis matches SKUs against your order data to calculate category-level margins automatically.

What COGS adds

  • Break-even CPA calculated from real margins instead of estimates
  • Category-level profitability (thread vs. fabric vs. supplies)
  • Revenue coverage reporting: what percentage of your revenue has cost data behind it

Attribution Window

The attribution window determines how many days after a click an order counts as ad-driven. Set this in Google Ads and Microsoft Ads directly. Trellis reads the conversions your platform reports against whatever window you’ve configured there. For consistent cross-platform accounting, set both platforms to the same 30-day click attribution window.

When checking Shopify to verify attribution, always query 30 days beyond the period you’re analyzing; see the Account Setup Checklist for details.

When to use 60 days

Consider a 60-day window when your average order value exceeds $150 or your products involve a longer consideration period. Quilting machines, industrial equipment, and premium supplies often have a research-to-purchase cycle that exceeds 30 days. Change the window in your ad platform’s settings; Trellis will reflect the new window the next time it pulls conversion data.

Shopify API Connection (Optional)

Connecting your Shopify store directly removes the manual CSV step. Trellis pulls orders from Shopify before each audit so the catalog stays current without an upload cycle.

What it adds

  • Hands-off order data: no more manual uploads
  • Customer segmentation (new vs. returning)
  • Product category enrichment from your Shopify catalog

Required scope

Your Shopify app needs read_products, read_orders, and read_customers permissions.

CSV upload covers most needs

The Shopify API connection is optional. Manual CSV upload covers all the data Trellis needs for accurate audits. The API adds convenience and customer segmentation, not additional accuracy.

AOV: Global vs. Platform-Specific

Trellis tracks two average order values:

  • Global AOV: Set in your Business Profile during onboarding. This is your store-wide average.
  • Platform AOV: Calculated from uploaded order data, filtered to orders attributed to a specific ad platform.

These often differ. Ad-driven orders tend to have different basket sizes than organic or returning-customer orders. When platform-specific AOV is available, Trellis uses it for that platform’s audit, because it’s a more accurate input for break-even calculations.

Upload order data to see the distinction on your Datamart page.