--- name: "roas-calculator" description: "Calculate return on ad spend from manual inputs or verified campaign data, explain attribution and break-even limits, and compare scenarios. Use when a media buyer asks for ROAS, blended ROAS, or help interpreting ad revenue against spend." license: MIT compatibility: "Manual calculations work in Agent-Skills-compatible clients. Live ad-account reads require Adspirer and network access." metadata: author: "Adspirer" version: "1.0.0" adspirer_category: "analytics-reporting" adspirer_source: "https://www.adspirer.com/skills/roas-calculator" adspirer_connection_url: "https://adspirer.ai/sign-up" adspirer_primary_keyword: "roas calculator" adspirer_secondary_keywords: "return on ad spend calculator,calculate roas,blended roas calculator" adspirer_launch_wave: "wave-1" adspirer_trigger: "Calculate my ROAS and explain whether the result is actually profitable." adspirer_kind: "skill" adspirer_level: "operator" adspirer_platforms: "google,meta,amazon" adspirer_supported_clients: "claude,claude-code,chatgpt,codex,cursor,gemini,windsurf" adspirer_summary: "Calculate ROAS, compare scenarios, and explain what the result can—and cannot—say about campaign profitability." adspirer_story: "The monthly review starts in an hour. Meta reports a 3.4x return, Google reports 2.8x, and finance wants to know what the blended result actually means before the team moves budget." adspirer_connections_required: "adspirer" adspirer_connections_optional: "ga4,shopify" adspirer_page_type: "utility-skill" adspirer_tool_component: "roas-calculator" adspirer_seo_title: "Free ROAS Calculator + AI Skill | Adspirer" adspirer_seo_h1: "ROAS Calculator: Calculate Return on Ad Spend" adspirer_meta_description: "Calculate ROAS free, compare campaign scenarios, and understand what return on ad spend means. No login required; download the AI skill for repeat analysis." --- # ROAS Calculator The monthly review starts in an hour. Meta reports a 3.4x return, Google reports 2.8x, and finance wants one blended number before deciding where the next dollar goes. This skill calculates the result on a consistent basis and makes the limits visible before anyone calls it profit. ## First-run onboarding 1. Manual inputs are enough for a calculation. Read `references/client-setup.md` only when the user asks to install the skill or connect live campaign data. 2. Treat Adspirer, GA4, and Shopify as optional evidence sources. Confirm the account, date range, currency, attribution basis, and revenue definition before reading them. 3. Start read-only. Installing this skill or connecting an account never authorizes a budget, bid, targeting, status, or creative change. ## Use this when - A channel, campaign, or blended portfolio needs a ROAS calculation. - Finance and the ad platforms report different revenue totals. - The team wants to compare current ROAS with a target or break-even ROAS. This is not a profit calculator unless the user also supplies contribution margin, fulfillment, fees, and other relevant costs. ## What you need - Ad spend and attributed revenue for the same date range and currency. - The attribution source and window used for revenue. - Optional: contribution margin or break-even ROAS, plus comparable campaign data from Adspirer, GA4, or Shopify. ## Procedure 1. Confirm the decision, dates, currency, scope, and whether revenue means platform-attributed revenue, analytics revenue, or finance-recognized revenue. 2. Calculate `ROAS = attributed revenue / ad spend`. Load `references/platform-rules.md` when comparing sources, blended totals, or break-even scenarios. 3. Reconcile the numerator and denominator: exclude taxes, refunds, or non-ad revenue only when the user confirms that treatment, and never mix currencies or date ranges. 4. Explain the result in plain language, distinguish revenue efficiency from profit, and compare only like-for-like scenarios. 5. Use `assets/output-template.md` when the user needs a reusable calculation record or stakeholder summary. ## Fixed checks - Ad spend must be greater than zero; otherwise report that ROAS is undefined. - Recalculate totals and label the revenue source, attribution window, currency, and dates. - Never add channel ROAS values together; calculate blended ROAS from total revenue divided by total spend. - Keep facts, assumptions, and modeled scenarios visibly separate. ## Stop conditions - Success: the calculation, inputs, formula, interpretation, and limitations are clear. - No-op: the supplied numbers already reconcile and the user requested calculation only. - Blocked: spend, revenue, currency, date range, or attribution basis is missing or irreconcilable. - Needs-approval: any proposed live budget, bid, targeting, status, or campaign change awaits explicit approval. ## Approval boundaries Calculating, reading connected data, reconciling sources, and drafting scenarios are read-only. Adspirer may change supported ads and campaigns only after explicit approval. Tracking code, GA4 tags, pixels, billing, appeals, refunds, and asset production require the appropriate person or connector. ## Example prompts - "Calculate ROAS for $42,000 in attributed revenue and $9,500 in ad spend." - "Compare Google and Meta ROAS for July, then calculate blended ROAS without changing anything." - "Our margin is 35%. Show current ROAS against break-even and state every assumption." ## Cannot do - Do not present platform-attributed revenue as audited profit. - Do not invent missing spend, revenue, attribution, margin, or connection data. - Do not treat a higher ROAS as sufficient evidence to reallocate budget across unlike campaigns. - Do not make live-account changes without explicit approval. ## What you get A checked ROAS calculation with its inputs, attribution basis, plain-English meaning, and—when requested—a comparable scenario table or break-even view.