
Marketing Spend Analysis
- 65 installs
- 41 repo stars
- Updated March 13, 2026
- finsilabs/awesome-ecommerce-skills
Track marketing spend across channels with ROAS, diminishing-returns analysis, and per-platform budget reallocation recommendations.
About
Analyzes marketing spend across all channels to compute ROAS, detect diminishing returns, and recommend budget shifts by platform. A marketer or developer uses it to optimize ad-spend allocation.
- ROAS calculation and diminishing-returns analysis per channel
- Budget-reallocation recommendations by platform
Marketing Spend Analysis by the numbers
- 65 all-time installs (skills.sh)
- Ranked #887 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill marketing-spend-analysisAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 65 |
|---|---|
| repo stars | ★ 41 |
| Last updated | March 13, 2026 |
| Repository | finsilabs/awesome-ecommerce-skills ↗ |
What it does
Track marketing spend across channels with ROAS, diminishing-returns analysis, and per-platform budget reallocation recommendations.
Files
Marketing Spend Analysis
Overview
Marketing spend is typically the largest variable cost in a DTC ecommerce business — often 15–40% of revenue. Unlike most costs, marketing spend is directly controllable in near-real-time: you can increase or decrease budgets on paid channels within minutes. This creates both opportunity (scale what works) and risk (waste capital on what does not).
The core goal is to maximize total contribution profit from your marketing investment — not just revenue. A channel with high ROAS but thin margins, high return rates, or low AOV may generate less actual profit than a channel with lower ROAS and stronger unit economics.
This skill guides you through building a unified view of marketing spend and performance across all channels, using tools designed specifically for ecommerce merchants.
When to Use This Skill
- When managing marketing budgets across multiple platforms (Meta, Google, TikTok, Amazon Ads)
- When wanting to identify which channels generate the most profitable customers
- When needing a unified marketing performance dashboard fed by multiple ad platforms
- When hitting diminishing returns on a key channel and deciding how to reallocate spend
- When comparing platform-reported ROAS against first-party attributed ROAS
- When building a marketing efficiency report for a board or investor update
Core Instructions
Step 1: Choose a unified marketing analytics tool
The biggest problem in marketing spend analysis is that each platform (Meta, Google, TikTok) reports its own ROAS using its own attribution window — and they all claim 100% credit. You need a tool that pulls data from all platforms into one view and compares against your actual order data.
| Platform | Recommended Tool | What It Does |
|---|---|---|
| Shopify | Triple Whale or Polar Analytics | Connects Shopify orders + all ad platforms; shows blended ROAS, MER, and channel-level true ROAS side by side |
| Shopify (budget option) | Shopify Analytics + Google Analytics 4 | Free; last-click attribution only; no cross-platform comparison |
| WooCommerce | Metorik + GA4 | Metorik adds UTM attribution to WooCommerce orders; GA4 provides channel-level conversion reporting |
| BigCommerce | Glew.io or Rockerbox | Both connect BigCommerce orders to ad platform spend data |
| All platforms | Northbeam or Rockerbox | Platform-agnostic; provide first-party multi-touch attribution across all channels with spend pacing |
Key metrics to track in your chosen tool:
| Metric | Definition | Why It Matters |
|---|---|---|
| Platform ROAS | Revenue attributed by each platform / spend on that platform | What the ad platform claims (typically inflated) |
| First-party ROAS | Revenue attributed by your own pixel / spend | More accurate; corrects for view-through over-attribution |
| Blended MER | Total revenue / total marketing spend across all channels | Overall marketing efficiency; harder to game |
| True ROAS | Gross profit attributed to channel / spend | Accounts for COGS; the right metric for profitability decisions |
| CAC (new customers only) | New customer acquisition spend / new customers acquired | Separate from retargeting/retention spend |
| ROAS break-even | 1 / (1 - COGS rate - fulfillment rate) | Minimum ROAS needed to not lose money |
Step 2: Set up your marketing analytics stack
---
Shopify
Triple Whale setup (recommended for $50K+/mo ad spend):
1. Install Triple Whale from the Shopify App Store 2. Connect all ad accounts under Settings → Integrations: Meta, Google, TikTok, Pinterest, Snapchat 3. Triple Whale installs a first-party pixel on your store that tracks the full customer journey 4. Go to Triple Whale → Summary Dashboard — view daily spend, attributed revenue, ROAS, MER, new customer CAC, and gross profit by channel in one dashboard 5. Go to Triple Whale → Attribution → Channel to see revenue under different attribution models side by side (first-click, last-click, Triple Whale's blended model) 6. Set up Morning Digest emails — Triple Whale sends a daily performance summary automatically 7. Set Budget Alerts under Settings → Alerts — get Slack/email notifications when ROAS drops below threshold or spend is pacing to overshoot monthly budget
Polar Analytics setup (mid-market, more affordable):
1. Install Polar Analytics from the Shopify App Store 2. Connect ad accounts under Integrations 3. Go to Polar → Channels — view spend, attributed revenue, ROAS, and gross profit by channel 4. Go to Polar → Blended Dashboard — view overall MER and blended spend vs. revenue trend 5. Use Polar → AI Insights for automated anomaly detection and spend recommendations
---
WooCommerce
Metorik + GA4 setup:
1. Install Metorik and connect to your WooCommerce store 2. Metorik captures UTM parameters on every order — go to Metorik → Reports → UTM to see orders and revenue by utm_source, utm_medium, utm_campaign 3. Install Google Analytics 4 via the Site Kit or MonsterInsights plugin 4. In GA4, go to Advertising → Attribution → Model comparison — select Google, Paid Social, Email as your channels and compare last-click vs. data-driven attribution 5. For ad spend data from non-Google platforms (Meta, TikTok), manually import spend CSVs into a Google Sheet and connect to Looker Studio alongside GA4 data for a unified view
Alternative: Northbeam or Rockerbox
- Both support WooCommerce via JavaScript pixel + order API integration
- Provide the same cross-platform attribution capabilities as Triple Whale but with WooCommerce compatibility
---
BigCommerce
1. Install Glew.io from the BigCommerce App Marketplace 2. Connect ad accounts (Meta, Google, Amazon) in Glew under Integrations 3. Glew shows spend, attributed revenue, ROAS, and blended MER by channel 4. For more advanced first-party attribution: install Rockerbox via script injection (BigCommerce → Storefront → Script Manager)
---
Step 3: Define your ROAS break-even and targets
Before analyzing whether a channel is performing well, calculate your minimum viable ROAS.
ROAS break-even formula:
Break-even ROAS = 1 / (1 - COGS rate - variable cost rate)
Example:
COGS rate: 45% of revenue
Fulfillment + payment fees: 12% of revenue
Break-even ROAS = 1 / (1 - 0.45 - 0.12) = 1 / 0.43 = 2.33x
Any channel with true ROAS below 2.33x is losing money on every sale.Target ROAS by channel type:
| Channel Type | Target ROAS Multiplier Above Break-Even | Why |
|---|---|---|
| Prospecting (new customers) | 1.5–2x break-even | Acquiring new customers has higher long-term value than single-order ROAS suggests |
| Retargeting (existing visitors) | 2–3x break-even | Lower cost; higher conversion rate; but be careful of incrementality |
| Brand search (Google Branded) | 5x+ | High ROAS but low incrementality; customers were coming anyway |
| Non-brand search (Google Generic) | 1.5–2x break-even | True incremental; valuable for new customer acquisition |
| Email/SMS | 10x+ | Low cost per send; high ROAS but measures existing customer retention, not acquisition |
Step 4: Build a weekly channel performance scorecard
Set up a weekly review with this structure. Pull data from your analytics tool (Triple Whale, Glew, GA4):
CHANNEL PERFORMANCE SCORECARD (Last 7 Days vs. Prior 7 Days)
─────────────────────────────────────────────────────────────
Channel | Spend | 1P Revenue | 1P ROAS | vs LW | Status
Meta Ads | $12,400| $38,400 | 3.1x | +0.3x | OK ✓
Google Ads | $8,200 | $31,100 | 3.8x | -0.2x | OK ✓
TikTok Ads | $3,100 | $5,700 | 1.8x | -0.8x | REVIEW ⚠
Amazon Ads | $4,500 | $19,800 | 4.4x | +0.1x | OK ✓
Email/SMS | $800 | $22,000 | 27.5x | +2.0x | OK ✓
─────────────────────────────────────────────────────────────
Total | $29,000| $117,000 | 4.0x | | MER: 4.0x
Break-even ROAS: 2.33x | Monthly Budget: $125,000 | Paced to spend: $126,500 (+$1,500)TikTok is flagged: ROAS dropped from 2.6x to 1.8x (below 2.33x break-even). Action: Investigate creative fatigue; pause underperforming ad sets; hold budget before cutting entirely.
Step 5: Make budget reallocation decisions
Use this decision framework when channels are over/under-performing:
When to reduce spend on a channel:
- True ROAS has been below break-even for 2+ consecutive weeks
- First-party ROAS has declined more than 30% with no operational explanation
- Creative has not been refreshed in 30+ days and ROAS is declining (creative fatigue)
When to increase spend on a channel:
- True ROAS is 2x or more above break-even
- First-party ROAS has been stable or increasing for 3+ weeks
- Marginal ROAS at current spend level is still above break-even (not in diminishing returns territory)
Before cutting spend, investigate: 1. Is a top SKU out of stock? Ads running for out-of-stock products waste spend with no ability to convert 2. Did a creative rotation happen? Performance often dips temporarily during algorithm learning phases (50+ optimization events needed) 3. Did a competitor run a major promotion? Temporary CPM/CPC spikes are not structural channel problems 4. Is the tracking pixel firing correctly? A sudden ROAS drop can be a tracking issue, not a performance issue
Best Practices
- Track true ROAS (profit-based), not platform-reported ROAS — platform ROAS using view-through attribution is almost always higher than reality; compute ROAS from your own first-party data
- Monitor MER (Marketing Efficiency Ratio) as a holistic metric — blended MER (total revenue / total marketing spend) is harder to game than individual channel ROAS; a healthy ecommerce MER is typically 3–6x
- Separate new customer acquisition from retention spending — remarketing and email/SMS to existing customers have very different economics than prospecting; track CAC and ROAS separately for new vs. returning customer campaigns
- Build a weekly spend pacing report — track cumulative spend vs. monthly budget by day; a channel at 80% of monthly budget by day 15 will either overspend or dramatically under-deliver in the second half
- Track creative performance, not just campaign performance — one creative often drives 70% of a campaign's ROAS; surface creative-level performance and prioritize winning formats
- Test incrementality before doubling down — high retargeting ROAS may be capturing sales that would have happened anyway; run holdout tests to measure true incremental impact
Common Pitfalls
| Problem | Solution |
|---|---|
| Each platform claims credit for the same order | Use a first-party attribution tool (Triple Whale, Northbeam) to de-duplicate; platform-reported ROAS always double-counts |
| Cutting spend during a temporary ROAS dip | Investigate root cause before cutting; algorithmic learning phases (post-creative refresh) look like performance drops but recover; allow 50+ optimization events before evaluating |
| Not separating branded from non-branded search ROAS | Google Branded campaigns have very high ROAS but low incrementality; analyze separately or you will overestimate Google's true contribution |
| Running ads for out-of-stock products | Connect inventory status to your ad platforms; use rules-based automation in Meta/Google to pause campaigns when SKUs hit 0 stock |
| Ignoring email and SMS in ROAS calculations | Email/SMS spend is very low relative to revenue attributed; their MER looks incredible but remember they largely serve existing customers — they are retention tools, not acquisition tools |
Related Skills
- @attribution-modeling
- @cost-allocation-analysis
- @unit-economics-tracking
- @ecommerce-budgeting-forecasting
- @financial-analytics-dashboard
{
"context": "Tests whether the agent fits a Michaelis-Menten saturation curve to weekly spend/revenue data, computes marginal ROAS via the correct derivative formula, uses a target marginal ROAS of 1.5 to find optimal spend, and generates a budget recommendation based on comparing current vs optimal spend.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Michaelis-Menten curve used",
"max_score": 14,
"description": "Uses the saturation curve formula Revenue = (a * Spend) / (b + Spend) to model diminishing returns — NOT a linear or logarithmic model"
},
{
"name": "scipy curve_fit used",
"max_score": 8,
"description": "Uses scipy.optimize.curve_fit (or equivalent nonlinear least-squares) to fit the saturation curve parameters"
},
{
"name": "Marginal ROAS via derivative",
"max_score": 14,
"description": "Computes marginal ROAS at current spend using the analytical derivative: (a * b) / ((b + current_spend) ** 2)"
},
{
"name": "Target marginal ROAS = 1.5",
"max_score": 12,
"description": "Uses target_marginal_roas = 1.5 (not 1.0, 2.0, or another value) when computing optimal spend"
},
{
"name": "Optimal spend formula",
"max_score": 14,
"description": "Computes optimal_spend = sqrt(a * b / target_marginal_roas) - b"
},
{
"name": "Overspending detection",
"max_score": 8,
"description": "Explicitly flags whether the channel is overspending (current_spend > optimal_spend)"
},
{
"name": "Spend recommendation output",
"max_score": 8,
"description": "Outputs one of 'reduce', 'maintain', or 'increase' as the spend recommendation based on comparing current spend to optimal spend"
},
{
"name": "Saturation parameters reported",
"max_score": 6,
"description": "Reports the fitted saturation_revenue (parameter a) and half_saturation_spend (parameter b) in the output"
},
{
"name": "Curve fit error handling",
"max_score": 8,
"description": "Handles the case where curve fitting fails (e.g., RuntimeError from curve_fit) with an informative error message rather than a crash"
},
{
"name": "Visualization or tabular output",
"max_score": 8,
"description": "Produces either a plot of the saturation curve OR a table showing projected revenue/marginal ROAS at multiple spend levels"
}
]
}
Meta Ads Scaling Analysis
Problem Description
A DTC skincare brand has been scaling their Meta advertising budget aggressively over the past six months. Each week they increased spend slightly and tracked how much attributed revenue came back. Now the growth team is debating whether to push spend up another 30% this quarter or hold steady — the CEO wants data to back up the decision.
The analytics lead has compiled weekly snapshots of Meta spend and the revenue attributed to it by their internal model. She suspects they may be hitting diminishing returns but can't quantify it, and needs to present a concrete recommendation with supporting numbers at the next board meeting.
Your job is to write a Python analysis script that models the relationship between spend and revenue, determines where the channel sits on the efficiency curve today, and produces a clear spend recommendation.
Output Specification
Write a Python script named scaling_analysis.py that: 1. Loads the data below as hard-coded inputs 2. Fits a curve to the spend vs. revenue relationship 3. Computes current efficiency and the theoretically optimal spend level 4. Outputs a recommendation (reduce / maintain / increase) with supporting numbers 5. Saves results to scaling_output.json
Run with: python scaling_analysis.py
Input Data
The following 24 weeks of Meta spend and first-party attributed revenue data should be used as input (already in USD):
| Week | Spend ($) | Revenue ($) |
|---|---|---|
| 1 | 15000 | 48200 |
| 2 | 17500 | 54600 |
| 3 | 20000 | 60100 |
| 4 | 22000 | 64300 |
| 5 | 25000 | 69800 |
| 6 | 28000 | 74200 |
| 7 | 30000 | 77100 |
| 8 | 33000 | 80500 |
| 9 | 36000 | 83200 |
| 10 | 38000 | 85100 |
| 11 | 40000 | 86600 |
| 12 | 43000 | 88200 |
| 13 | 45000 | 89500 |
| 14 | 47000 | 90400 |
| 15 | 50000 | 91800 |
| 16 | 52000 | 92500 |
| 17 | 55000 | 93400 |
| 18 | 57000 | 94000 |
| 19 | 60000 | 94800 |
| 20 | 62000 | 95200 |
| 21 | 65000 | 95800 |
| 22 | 67000 | 96100 |
| 23 | 70000 | 96600 |
| 24 | 72000 | 96900 |
{
"context": "Tests whether the agent computes all required ROAS variants (platform, first-party, true, blended, MER, break-even), uses the correct default margin assumptions, distinguishes platform attribution from first-party attribution, and outputs a profitability verdict based on true ROAS vs break-even ROAS.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Platform ROAS computed",
"max_score": 6,
"description": "Computes platform_roas as platform_attributed_revenue divided by spend (not using first-party or gross revenue)"
},
{
"name": "First-party ROAS computed",
"max_score": 8,
"description": "Computes first_party_roas (or fp_roas) as first_party_attributed_revenue divided by spend, separately from platform ROAS"
},
{
"name": "True ROAS formula",
"max_score": 12,
"description": "Computes true_roas by first calculating gross_profit_attributed = first_party_attributed_revenue * (1 - cogs_rate - variable_costs_rate), then dividing by spend"
},
{
"name": "Default COGS rate",
"max_score": 6,
"description": "Uses cogs_rate of 0.45 (45%) when no explicit COGS is provided"
},
{
"name": "Default variable costs rate",
"max_score": 6,
"description": "Uses variable_costs_rate of 0.15 (15%) when no explicit variable cost rate is provided"
},
{
"name": "Break-even ROAS formula",
"max_score": 12,
"description": "Computes break_even_roas as 1 / (1 - cogs_rate - variable_costs_rate), i.e., 1 / contribution_margin_rate"
},
{
"name": "MER computed",
"max_score": 8,
"description": "Computes MER (Marketing Efficiency Ratio) as total gross revenue divided by total marketing spend across all channels"
},
{
"name": "Blended ROAS computed",
"max_score": 6,
"description": "Computes blended_roas as gross_revenue divided by total spend (not per-channel)"
},
{
"name": "Profitability verdict",
"max_score": 10,
"description": "Outputs an explicit is_profitable flag or verdict comparing true_roas against break_even_roas for each channel"
},
{
"name": "True vs platform ROAS comparison",
"max_score": 10,
"description": "Output explicitly shows or comments on the difference between platform-reported ROAS and true/first-party ROAS"
},
{
"name": "Division-by-zero guard",
"max_score": 8,
"description": "Protects against division by zero when spend is 0 (e.g., uses max(spend, 0.01) or equivalent guard)"
},
{
"name": "Profit over ROAS framing",
"max_score": 8,
"description": "Output includes or comments on total gross profit contribution (not just ROAS rank), making the case that absolute profit matters alongside efficiency ratio"
}
]
}
Marketing Profitability Analysis
Problem Description
A DTC apparel brand runs paid ads on Meta and Google. Their finance lead has flagged that the numbers reported by the ad platforms look suspiciously good, and she suspects the company is actually losing money on some channels when you account for product costs and fulfillment expenses.
The head of growth has pulled together a weekly data snapshot: Meta says it drove $42,000 in revenue from $10,000 in spend, while Google reports $31,500 in revenue from $9,000 in spend. However, their analytics team's own attribution model (based on post-purchase surveys and data from their order management system) attributes $28,000 to Meta and $19,000 to Google during the same period. Total gross revenue for the week across all sources was $95,000. Total marketing spend was $19,000.
Your job is to produce a clear profitability analysis that the finance lead and CMO can use to understand the true performance of each channel, identify which (if any) channels are below break-even, and understand overall marketing efficiency.
Output Specification
Write a Python script named roas_analysis.py that: 1. Takes the data above as hard-coded inputs 2. Computes a full set of efficiency metrics for each channel and the portfolio as a whole 3. Prints a formatted summary showing all computed metrics for each channel and a portfolio-level view 4. Saves the computed metrics to roas_output.json
The analysis should be runnable with python roas_analysis.py and should not require any external data files or API keys.
{
"context": "Tests whether the agent builds a normalized unified spend data model with the correct schema, stores and uses platform-specific attribution windows, tracks new customer vs returning customer campaigns separately, normalizes spend to per-day rates for period comparison, builds a spend pacing calculation, computes channel concentration, and produces a weekly marketing report with the expected fields.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Unified schema columns",
"max_score": 8,
"description": "Data model or output includes all of: spend_date, platform, channel_type, campaign_id/name, spend_amount, impressions, clicks, platform_conversions, platform_revenue, attribution_window"
},
{
"name": "Attribution windows stored",
"max_score": 10,
"description": "Stores or labels data with platform-specific attribution windows: Meta as '7d_click_1d_view', Google as 'last_click_30d', TikTok as '7d_click'"
},
{
"name": "New vs returning split",
"max_score": 10,
"description": "Separates new customer acquisition campaigns from retention/remarketing campaigns, reporting ROAS or CAC for each segment distinctly"
},
{
"name": "Per-day spend normalization",
"max_score": 8,
"description": "Normalizes spend to per-day rates (spend / number_of_days) rather than using raw period totals for period comparisons"
},
{
"name": "Spend pacing calculation",
"max_score": 10,
"description": "Computes spend pacing: tracks cumulative spend vs monthly budget, showing how much of the monthly budget has been consumed relative to elapsed days in the month"
},
{
"name": "MER computed",
"max_score": 6,
"description": "Computes MER (total revenue / total marketing spend across all channels) as a portfolio-level metric"
},
{
"name": "Channel concentration metric",
"max_score": 8,
"description": "Computes channel concentration or share-of-spend per platform, flagging if any single platform exceeds a majority share (e.g., 50%+) of total spend"
},
{
"name": "Weekly report fields",
"max_score": 10,
"description": "Formatted weekly report includes: total spend, total attributed revenue, blended ROAS, and a per-channel table with spend, ROAS, and week-over-week delta"
},
{
"name": "Channel status flag",
"max_score": 8,
"description": "Weekly report marks each channel as 'OK' or 'REVIEW' based on whether its ROAS meets a break-even or target threshold"
},
{
"name": "Branded vs non-branded separation",
"max_score": 10,
"description": "Google search campaigns are split into branded and non-branded segments, with separate ROAS reported for each"
},
{
"name": "Prospecting CAC computed",
"max_score": 6,
"description": "Computes Customer Acquisition Cost (CAC = spend / conversions) specifically for prospecting/new-customer campaigns, as a distinct metric from ROAS"
},
{
"name": "Attribution window note",
"max_score": 6,
"description": "Output or code includes a note or comment that direct cross-platform ROAS comparison is affected by differing attribution windows, recommending first-party standardization"
}
]
}
Multi-Channel Marketing Performance Dashboard
Problem Description
A mid-size DTC home goods brand runs paid advertising across Meta, Google (search and shopping), and TikTok, plus an email marketing program through Klaviyo. Their current reporting is fragmented: the Meta team looks at Meta Ads Manager, the Google team lives in Google Ads, and no one has a unified view. The CMO is preparing for a monthly board meeting and needs a single, coherent picture of marketing efficiency across all channels.
The marketing ops lead has exported two weeks of raw campaign-level data from each platform. She needs a Python analysis script that ingests this data, normalizes it into a unified structure, and produces a weekly marketing performance report. The report needs to be actionable — the CMO should be able to glance at it and immediately know which channels are performing well, which need attention, and whether the overall budget is on pace for the month.
The brand runs both prospecting campaigns (targeting new audiences) and remarketing campaigns (targeting website visitors and past customers), and the CFO has asked that these be reported separately because the economics are very different.
Google search includes both branded terms (people searching the company's own brand name) and non-branded terms (generic product searches). The CFO suspects the branded campaigns are inflating Google's overall numbers.
Output Specification
Write a Python script named marketing_dashboard.py that: 1. Loads the campaign data provided below as hard-coded inputs 2. Normalizes it into a unified data structure 3. Produces a formatted text report saved as weekly_report.txt 4. Saves structured channel metrics to channel_metrics.json
Run with: python marketing_dashboard.py
The report should cover at minimum:
- Portfolio-level summary (total spend, attributed revenue, overall efficiency)
- Per-channel breakdown comparing this week vs last week
- Prospecting vs remarketing performance split
- Google branded vs non-branded performance split
- Budget pacing status (each channel has a monthly budget cap provided below)
- A note on which channels warrant attention
Input Files (optional)
The following campaign data covers two weeks (Week 1 = days 1–7, Week 2 = days 8–14 of the current month). Extract and use this data before beginning.
=============== FILE: inputs/campaign_data.csv =============== week,platform,campaign_type,campaign_name,spend,impressions,clicks,platform_conversions,platform_revenue,first_party_revenue,monthly_budget 1,meta,prospecting,Meta_Prospecting_Broad,18200,1450000,8700,142,28400,19800,80000 1,meta,remarketing,Meta_Retargeting_Visitors,6400,320000,4100,98,17640,14200,30000 1,google,branded_search,Google_Brand_Search,3800,210000,12400,185,29600,27100,20000 1,google,nonbranded_search,Google_NonBrand_Search,7200,380000,6200,74,14800,9600,35000 1,tiktok,prospecting,TikTok_TopFunnel_UGC,9100,2100000,11200,87,13050,7900,40000 1,klaviyo,remarketing,Email_Weekly_Newsletter,1100,0,0,64,9600,9100,5000 2,meta,prospecting,Meta_Prospecting_Broad,19100,1520000,9100,149,29800,21400,80000 2,meta,remarketing,Meta_Retargeting_Visitors,6700,335000,4300,103,18540,15100,30000 2,google,branded_search,Google_Brand_Search,3900,215000,12700,191,30560,28200,20000 2,google,nonbranded_search,Google_NonBrand_Search,7400,392000,6400,76,15200,9900,35000 2,tiktok,prospecting,TikTok_TopFunnel_UGC,9400,2180000,11600,91,13650,8200,40000 2,klaviyo,remarketing,Email_Weekly_Newsletter,1100,0,0,67,10050,9500,5000
{
"name": "finsi/marketing-spend-analysis",
"version": "0.1.0",
"summary": "Track and analyze marketing spend across all channels with ROAS calculation, diminishing returns analysis, and budget reallocation recommendations by platform",
"skills": {
"marketing-spend-analysis": {
"path": "SKILL.md"
}
}
}