Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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. 达人营销ROI计算/投资回报测算
.claude/skills/aaron-he-zhu-roi-calculator/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 102% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 316% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 148% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 118% | 0% |
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, attribution-reconciler, and budget-optimizer delegate ROAS/CPA/payback ratios here rather than recomputing them. Save paid runs under memory/ad/roi-calculator/.
Shortest invocation:
Calculate ROI for our influencer campaign: $25K spend, $72K revenue, 2.1M reachCommon scenario — compare methods before reporting:
What's the ROI of our campaign using direct revenue, EMV, and LTV-based methods?performance-analyzer. Reuse authorized opaque creator_ref values; raw handles/names/URLs/provider IDs stay transient and never identify a saved row.memory/influencer/roi-calculator/YYYY-MM-DD-<topic>.md (or the declared paid path) only with exact WARM-save authorization. Saved output uses campaign_id, complete opaque creator_ref scope, and opaque evidence/artifact refs—never raw identity locators.memory/hot-cache.md; a calculation or WARM-save request does not authorize this operation.> 0; zero, negative, missing, or incompatible denominators yield undefined/NEEDS_INPUT, never a ratio.> Emit the standard shape from skill-contract.md §Handoff Summary Format.
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 for the free/keyless recipe per category.
When a user requests ROI calculation, work the steps below. Each step has a fill-in template in references/roi-templates.md — link the step number to its block there.
NEEDS_INPUT for EMV. (template)NEEDS_INPUT, not attributed revenue. (template)New Customers is deduplicated against the controlling attribution universe and the supplied LTV is a complete contribution-margin basis with cohort, horizon, retention/churn, refunds, margin, discount/timing, first-order inclusion, source/date, and a positive compatible investment denominator. Then use ((New Customers × contribution-margin LTV) − Investment) / Investment × 100. A revenue-LTV input produces only an Estimated revenue-basis scenario with its basis/horizon/status; it is not economic ROI or profit and is never added to direct attributed revenue or another LTV horizon. Missing fields return NEEDS_INPUT. (template)sum(attributed revenue) / sum(spend), never a simple mean; rank only under a predeclared rule. (template)The financial outputs from steps 1–8 are candidate Return (R) evidence for STAR: ROI/ROAS read against the declared target (R1) and the alternative-channel baseline (R3), CPE/CPM/CPA benchmarked on a normalized window (R2), KPI attainment versus the pre-registered target (R4), conversions attributed with a stated method and rigor (R5), and incremental impact separated from baseline where measurable (R6). A field is Measured only when its exact source, entity, observation window, and attribution basis are verified; arithmetic on User-provided or Estimated inputs is Calculated, not Measured. Return evidence applies only at assessment_time: actual; a forecast read has no R1–R6.
Hand this Return evidence to the creator-content-auditor gate — it folds R into the full actual STAR run and computes the profile-weighted SQS. This skill does not run the scorer or emit the composite. Unverified conversions emit results-unverified: report R1/R2/R5 as low-confidence and make no attributable-return claims. These financial numbers are consumed as R evidence; they are not themselves an SQS.
For a multi-creator campaign, the gate scores each creator partnership separately; a budget-weighted mean of the per-partnership SQS values may summarize the campaign but never replaces the per-partnership diagnosis. This skill supplies the per-partnership Return evidence; it does not aggregate or roll up a composite.
memory/influencer/roi-calculator/ (or the paid path) only after authorization; request separate authorization for hot-cache promotion.For every formula in this skill, verify the denominator is numeric and strictly greater than zero. If investment, impressions, reach, engagements, views, clicks, acquisitions, customers, or another required denominator is zero, negative, missing, or incompatible with the numerator window, report the ratio as undefined and return NEEDS_INPUT for that metric. Never silently divide by zero, coerce it, or substitute a nominal value.
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 | | Revenue used in calculation | $72,000 (User-provided; source/window unverified) | | Total Reach | 2,100,000 | ## ROI Results ### Direct ROI — calculated on User-provided revenue basis - **Net return under the declared formula**: $47,000 - **ROI**: 188% - **ROAS**: 2.88:1 The supplied revenue implies $2.88 per $1 spent. `results-unverified`: no attribution source, method, or window was supplied, so this is not an attributable, causal, or incremental-return claim. ### Earned Media Value - **EMV**: `NEEDS_INPUT` — no source-dated comparable CPM/CPE or declared valuation rule was supplied - **EMV Multiple**: `NEEDS_INPUT` ### Cost Efficiency - **CPM**: $11.90 - **CPA**: Unknown (conversion count was not supplied) ## Assessment: Positive arithmetic return on the supplied basis; profitability and causality unverified Supplied revenue exceeds supplied investment under the declared formula, but no complete cost basis, attribution source/window, source-dated peer target, or incrementality evidence was provided. Do not infer profit, benchmark outperformance, or causal lift, and do not authorize a scale decision from this read alone; obtain verified conversions, attribution evidence, complete costs, and the campaign owner's precommitted decision rule first.
The source-dated benchmark evidence template lives in references/roi-templates.md#benchmark-evidence-template.
Primary: report-generator — turn the ROI numbers into a stakeholder-ready report.
Alternates (same Report family):
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.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 26,428 | 29,643 | +12% | 1 | 1 | 0% | 4,245 | 8,104 | +91% | 0 | 0 | — |
case-02 | fail→pass | 23,962 | 27,348 | +14% | 1 | 1 | 0% | 3,989 | 8,047 | +102% | 0 | 0 | — |
case-08 | fail→pass | 11,012 | 11,153 | +1% | 1 | 1 | 0% | 999 | 4,151 | +316% | 0 | 0 | — |
case-03 | fail→pass | 17,321 | 22,134 | +28% | 1 | 1 | 0% | 2,626 | 6,513 | +148% | 0 | 0 | — |
case-04 | pass→pass | 22,603 | 25,039 | +11% | 1 | 1 | 0% | 2,626 | 6,316 | +141% | 0 | 0 | — |
case-05 | pass→pass | 14,672 | 16,006 | +9% | 1 | 1 | 0% | 1,748 | 5,163 | +195% | 0 | 0 | — |
case-06 | pass→fail | 11,396 | 16,413 | +44% | 1 | 1 | 0% | 1,156 | 5,156 | +346% | 0 | 0 | — |
case-07 | fail→fail | 15,368 | 23,683 | +54% | 1 | 1 | 0% | 1,642 | 6,819 | +315% | 0 | 0 | — |
case-09 | pass→pass | 13,700 | 15,313 | +12% | 1 | 1 | 0% | 1,669 | 4,922 | +195% | 0 | 0 | — |
case-10 | fail→pass | 15,576 | 12,732 | -18% | 1 | 1 | 0% | 2,093 | 4,564 | +118% | 0 | 0 | — |
case-11 | fail→pass | 20,821 | 13,721 | -34% | 1 | 1 | 0% | 2,677 | 4,712 | +76% | 0 | 0 | — |
case-12 | fail→fail | 13,132 | 27,996 | +113% | 1 | 1 | 0% | 1,872 | 7,842 | +319% | 0 | 0 | — |
case-13 | fail→fail | 9,720 | 20,839 | +114% | 1 | 1 | 0% | 955 | 6,338 | +564% | 0 | 0 | — |
case-14 | fail→pass | 13,138 | 18,097 | +38% | 1 | 1 | 0% | 1,616 | 5,513 | +241% | 0 | 0 | — |
case-15 | fail→pass | 15,663 | 14,224 | -9% | 1 | 1 | 0% | 1,897 | 4,704 | +148% | 0 | 0 | — |
case-16 | fail→pass | 15,086 | 13,230 | -12% | 1 | 1 | 0% | 1,765 | 4,556 | +158% | 0 | 0 | — |
case-17 | pass→pass | 16,117 | 23,549 | +46% | 1 | 1 | 0% | 2,333 | 6,597 | +183% | 0 | 0 | — |
case-18 | fail→pass | 19,585 | 18,320 | -6% | 1 | 1 | 0% | 2,670 | 5,473 | +105% | 0 | 0 | — |
case-19 | pass→pass | 12,275 | 16,974 | +38% | 1 | 1 | 0% | 1,377 | 5,575 | +305% | 0 | 0 | — |
case-20 | pass→pass | 14,421 | 20,287 | +41% | 1 | 1 | 0% | 1,998 | 6,315 | +216% | 0 | 0 | — |
case-21 | fail→pass | 26,296 | 20,869 | -21% | 1 | 1 | 0% | 3,788 | 6,024 | +59% | 0 | 0 | — |
case-22 | fail→pass | 14,741 | 24,864 | +69% | 1 | 1 | 0% | 1,766 | 7,448 | +322% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/13/2026 | +41% |
Other measured skills in the registry, with their headline benchmark lift.