Use when the user asks to "calculate influencer ROI", "prove campaign value", or "what was our ROAS"; produces direct ROI/ROAS, earned media value, attribution-modeled revenue, LTV-based ROI, and a stakeholder-ready summary. Not for building the full slide/written report — use report-generator.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add aiskillstore/marketplace --skill roi-calculator --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Roi Calculator?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aiskillstore-roi-calculator)More formats (shields.io, HTML) on the badges page.
---
name: roi-calculator
slug: aaron-roi-calculator
displayName: "ROI Calculator · ROI 计算"
summary: "活动投入产出核算:成本归集、收益口径与 CVI/ROI 汇总"
description: 'Use when the user asks to "calculate influencer ROI", "prove campaign value", or "what was our ROAS"; produces direct ROI/ROAS, earned media value, attribution-modeled revenue, LTV-based ROI, and a stakeholder-ready summary. Not for building the full slide/written report — use report-generator.'
version: "17.0.0"
license: Apache-2.0
compatibility: "Claude Code and compatible agent-skill hosts"
homepage: "https://github.com/aaron-he-zhu/aaron-marketing-skills"
when_to_use: "Use when measuring or projecting influencer campaign ROI, justifying or defending budgets, comparing ROI across campaigns or channels, evaluating individual influencer or tier value, or preparing executive-level ROI numbers. Activate when the user supplies spend and results data and wants ROI, ROAS, EMV, CPA/CAC, attribution, or LTV impact computed."
argument-hint: "<campaign name or spend> [revenue] [results data]"
metadata: {"author": "aaron-he-zhu", "version": "17.0.0", "discipline": "influencer", "phase": "measure", "family": "influencer-marketing", "hermes": {"tags": ["marketing", "influencer", "measure"], "category": "influencer"}, "openclaw": {"emoji": "📣", "homepage": "https://github.com/aaron-he-zhu/aaron-marketing-skills"}}
---
# ROI Calculator
This skill helps you calculate and communicate the return on investment for influencer marketing campaigns using various methodologies appropriate for your goals and available data.
> **Cross-discipline (paid ads):** this is the shared **return-math engine** for paid ads — [paid-measurement-loop](../../../ad/scale/paid-measurement-loop/SKILL.md), [attribution-reconciler](../../../ad/scale/attribution-reconciler/SKILL.md), and budget-optimizer delegate ROAS/CPA/payback ratios here rather than recomputing them. Save paid runs under `memory/ad/roi-calculator/`.
## Quick Start
Shortest invocation:
```
Calculate ROI for our influencer campaign: $25K spend, $72K revenue, 2.1M reach
```
Common scenario — compare methods before reporting:
```
What's the ROI of our campaign using direct revenue, EMV, and LTV-based methods?
```
## Skill Contract
- **Reads**: campaign spend breakdown, results data (reach, impressions, engagements, clicks, conversions, revenue, new customers), AOV and repeat-rate data if LTV is in scope, any prior performance output from `performance-analyzer`.
- **Writes**: ROI calculation file at `memory/influencer/roi-calculator/YYYY-MM-DD-<topic>.md` containing direct ROI/ROAS, EMV, cost-efficiency metrics, attribution-modeled revenue, LTV-based ROI, by-influencer ROI, and a summary report block.
- **Promotes**: only with separate authorization, durable headline numbers with their attribution window, source, and uncertainty; a calculation request alone does not authorize hot-cache writes.
- **Done when**:
1. At least one ROI methodology is computed with the inputs and formula shown.
2. Each headline metric is stated against a declared, source-dated comparison target; no universal benchmark is invented.
3. A bottom-line assessment (profitable / break-even / loss) and 1-3 recommendations are written.
- **Primary next skill**: [report-generator](../report-generator/SKILL.md)
### Handoff Summary
> Emit the standard shape from [skill-contract.md §Handoff Summary Format](../../../references/skill-contract.md).
## Data Sources
This family is Tier 1 — it works with no live integrations. Ask the user for spend and results data and compute everything from those inputs. Connectors below can pull the numbers automatically when available:
- `~~social platform analytics` — reach, impressions, engagements, video views per platform for EMV and cost-per-metric math.
- `~~ecommerce / analytics` — revenue, conversions, link clicks, and AOV for direct ROI and attribution.
- `~~CRM` — new-customer counts, repeat-purchase rate, and lifetime value for LTV-based ROI.
- `~~influencer database` — per-influencer fees and tier data for by-influencer ROI.
With zero integrations, supply the investment and results tables by hand and the skill still produces every calculation. See [CONNECTORS.md](../../../CONNECTORS.md) for the free/keyless recipe per category.
## Instructions
When a user requests ROI calculation, work the steps below. Each step has a fill-in template in [references/roi-templates.md](references/roi-templates.md) — link the step number to its block there.
1. **Gather ROI inputs** — campaign details, the investment (total spend) table, and the results-data table. ([template](references/roi-templates.md#step-1--roi-calculation-inputs))
2. **Calculate direct ROI** — Simple ROI = (Revenue − Investment) / Investment × 100; ROAS = Revenue / Investment. State profit and a Profitable/Break-even/Loss assessment. ([template](references/roi-templates.md#step-2--direct-roi-calculation))
3. **Calculate Earned Media Value (EMV)** — impression-based (Impressions × CPM / 1000) and engagement-based (Engagements × CPE), then average. Flag EMV as directional, not absolute. ([template](references/roi-templates.md#step-3--earned-media-value-emv))
4. **Calculate cost-efficiency metrics** — CPM, CPR, CPE, CPV, CPC, CPA, and CAC. Compare only against a declared, source-dated target with a compatible market, window, and attribution basis; otherwise report the metric descriptively and mark the comparison pending. ([template](references/roi-templates.md#step-4--cost-efficiency-analysis))
5. **Apply attribution modeling** — run first-touch, last-touch, linear, time-decay, and position-based; recommend the model that fits the customer journey. ([template](references/roi-templates.md#step-5--attribution-analysis))
6. **Calculate customer lifetime value impact** — LTV-Based ROI = (New Customers × Avg LTV − Investment) / Investment; project short- vs. long-term and compare customer quality to organic/paid. ([template](references/roi-templates.md#step-6--lifetime-value-analysis))
7. **Calculate by-influencer ROI** — per-influencer ROI/ROAS rank, investment efficiency, and ROI by tier (macro/micro/nano). ([template](references/roi-templates.md#step-7--influencer-level-roi))
8. **Generate the ROI report summary** — investment, returns, ROI by methodology, key metrics vs. benchmark, bottom line, and 1-3 recommendations. ([template](references/roi-templates.md#step-8--roi-summary-report))
9. **Produce the typed C3 ROI scope and, when complete, CVI**
Declare goal, profile `roi-<goal>`, `scope: roi`, `assessment_time: forecast|actual`, campaign `rollup_id`, observation date, and the same catalog version used by ACE/ART. Follow [`runtime-invocation.md`](../../../references/runtime-invocation.md), resolve `AARON_SKILLS_ROOT="${CLAUDE_PLUGIN_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || true)}"`, verify the scorer and typed catalog, then score all 12 ROI items through `python3 "$AARON_SKILLS_ROOT/scripts/rubric-score.py" score <run.json>`. If the standalone install lacks them, return `score_state: NOT_SCORED` / `score_confidence: not_scored` and do not hand-calculate or persist a typed result. Actual-only R1/R2/I1/I2/I3 items are N/A with reasons in a forecast read; they require evidence in an actual read. **This 0–100 rubric result is not financial ROI %** from steps 1-8: the financial outputs are evidence consumed by ROI.R items, never the CVI input themselves.
ROI.I3 Fail emits `results-unverified`; report I1/I2/R1/R2 as low-confidence and do not make attributable-return claims. Preserve the scorer result rather than recomputing it in prose.
For CVI, combine complete typed ACE results from [fit-scorer](../../discover/fit-scorer/SKILL.md), complete ART results from [content-reviewer](../../activate/content-reviewer/SKILL.md), and exactly one ROI result through `python3 "$AARON_SKILLS_ROOT/scripts/rubric-score.py" c3-rollup <results.json>`:
```
CVI = ( ACE_avg × ART_avg × ROI )^(1/3)
```
Use the typed [`c3-rollup.schema.json`](../../../references/c3-rollup.schema.json) `components` form for real campaigns: positive budget weights for every ACE result, equal-weight ART results, and one ROI result. All components must share goal, `rollup_id`, observation date, assessment time, and catalog version. Keep the three aggregate scope scores beside CVI. If ACE/ART is missing, incomplete, or Unknown, emit ROI and mark CVI pending. If any component is `BLOCK` and therefore has no final scope score, **do not emit CVI**; report the blocking component instead of capping or averaging it.
10. **Persist only with permission** — save under `memory/influencer/roi-calculator/` (or the paid path) only after authorization; request separate authorization for hot-cache promotion.
## Example
**User**: "Calculate ROI for our influencer campaign: $25K spend, $72K revenue, 2.1M reach"
**Output**:
```markdown
# ROI Calculation Summary
## Investment & Returns
| Item | Value |
|------|-------|
| Total Investment | $25,000 |
| Direct Revenue | $72,000 |
| Total Reach | 2,100,000 |
## ROI Results
### Direct ROI
- **Profit**: $47,000
- **ROI**: 188%
- **ROAS**: 2.88:1
For every $1 spent, you generated $2.88 in revenue.
### Earned Media Value
- **EMV** (directional scenario at a declared $8 CPM): $16,800
- **EMV Multiple**: 0.67x
### Cost Efficiency
- **CPM**: $11.90
- **CPA**: Unknown (conversion count was not supplied)
## Assessment: Profitable on the supplied direct-revenue basis
Direct revenue exceeds the supplied investment, but no source-dated peer target or incrementality evidence was provided. Do not infer benchmark outperformance or authorize a scale decision from this read alone; obtain verified conversions, attribution evidence, and the campaign owner's precommitted decision rule first.
```
The source-dated benchmark evidence template lives in [references/roi-templates.md#benchmark-evidence-template](references/roi-templates.md#benchmark-evidence-template).
## Reference Materials
- [references/roi-templates.md](references/roi-templates.md) — fill-in templates for every Instructions step, the worked example, and benchmark evidence inputs.
- [measurement-protocol.md](../../../references/measurement-protocol.md) — read ROI/CVI deltas against a control over the readback window; do not over-claim attribution.
- [skill-contract.md](../../../references/skill-contract.md) — shared contract and Handoff Summary format.
- [state-model.md](../../../references/state-model.md) — memory tiers and save-path conventions.
- [CONNECTORS.md](../../../CONNECTORS.md) — free/keyless data recipe per connector category.
- C³ scoring: [c3-benchmark.md](../../../references/c3-benchmark.md), [c3/roi-campaign-benchmark.md](../../../references/c3/roi-campaign-benchmark.md), and [c3-rollup.schema.json](../../../references/c3-rollup.schema.json) — typed ROI and multi-component CVI contracts.
- [performance-analyzer](../performance-analyzer/SKILL.md) — supplies the results data this skill consumes.
- [report-generator](../report-generator/SKILL.md) — wraps these numbers into a full report.
- [budget-optimizer](../../plan/budget-optimizer/SKILL.md) — uses ROI output to reallocate spend.
- [campaign-planner](../../plan/campaign-planner/SKILL.md) — sets the ROI targets these results are checked against.
## Next Best Skill
**Primary**: [report-generator](../report-generator/SKILL.md) — turn the ROI numbers into a stakeholder-ready report.
**Alternates** (same Measure family):
- [performance-analyzer](../performance-analyzer/SKILL.md) — go back for deeper performance breakdowns if the ROI math exposed gaps.
- [budget-optimizer](../../plan/budget-optimizer/SKILL.md) — feed by-influencer and by-tier ROI into the next budget allocation.
Termination note: keep a visited-set of skills invoked this session. If the primary next skill was already run, stop and report the chain complete rather than re-invoking it. Stop after at most 3 hops in a single chain.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!