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
| Input | Required? | What it unlocks | Prioritize it when |
|---|---|---|---|
| Tracking template | Strongly recommended | Any match at all between an ad click and a Shopify order | Always. Nothing downstream of attribution works without it |
| Order data export | Strongly recommended | Attribution validation against ground truth, real AOV, repeat-purchase signal | Your platform-reported conversions and your order count disagree |
| Global gross margin | Recommended | Break-even CPA and ROAS, so the audit can call a campaign unprofitable rather than just expensive | You have not uploaded SKU-level costs yet |
| Product-level COGS | Optional | Category-level profitability and a break-even figure computed from real costs | Your margins vary meaningfully across product categories |
| Attribution window | Configure once | Consistent cross-platform accounting | Your two platforms are currently set to different windows |
| Shopify API connection | Optional | Hands-off order sync and new-versus-returning customer segmentation | The 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
- In Shopify Admin, go to Orders > click Export > select All orders > choose CSV for Excel.
- 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.