$npx -y skills add Affitor/affiliate-skills --skill commission-calculatorCalculate realistic affiliate earnings projections before committing to a program. Use this skill when the user asks about affiliate earnings, projecting income, calculating commissions, estimating how much they can make, comparing program payouts, or says "how much can I make pr
| 1 | # Commission Calculator |
| 2 | |
| 3 | Project realistic monthly affiliate earnings based on traffic estimates, platform |
| 4 | conversion rates, and program commission structures. Helps affiliates decide which |
| 5 | programs are worth their time before investing months of content creation. |
| 6 | |
| 7 | ## Stage |
| 8 | |
| 9 | This skill belongs to Stage S1: Research |
| 10 | |
| 11 | ## When to Use |
| 12 | |
| 13 | - User wants to project income before choosing a program |
| 14 | - User wants to compare the earnings potential of 2+ programs |
| 15 | - User is setting income goals and needs realistic benchmarks |
| 16 | - User is deciding whether a niche is worth entering based on earning potential |
| 17 | - User asks "how many page views / subscribers / followers do I need to make X" |
| 18 | |
| 19 | ## Input Schema |
| 20 | |
| 21 | ``` |
| 22 | { |
| 23 | programs: [ |
| 24 | { |
| 25 | name: string # (required) "HeyGen" |
| 26 | reward_value: string # (required) "30%" or "$50" |
| 27 | reward_type: string # (required) "cps_recurring" | "cps_one_time" | "cpl" | "cpa" |
| 28 | reward_duration: string # (optional) "12 months" | "lifetime" | "first purchase" |
| 29 | cookie_days: number # (optional, default: 30) 30 |
| 30 | avg_product_price: number # (optional) Monthly plan price in USD. Needed for % commissions |
| 31 | } |
| 32 | ] |
| 33 | traffic: { |
| 34 | monthly_visitors: number # (optional) Estimated monthly website visitors or video views |
| 35 | email_subscribers: number # (optional) Email list size |
| 36 | social_followers: number # (optional) Followers on primary platform |
| 37 | } |
| 38 | platform: string # (optional) "blog" | "youtube" | "tiktok" | "email" | "twitter" |
| 39 | scenario: string # (optional, default: "realistic") "conservative" | "realistic" | "optimistic" |
| 40 | goal: string # (optional) Target income, e.g., "$500/mo" or "$1000/mo" |
| 41 | time_horizon: string # (optional, default: "90 days") "30 days" | "90 days" | "12 months" |
| 42 | } |
| 43 | ``` |
| 44 | |
| 45 | ## Workflow |
| 46 | |
| 47 | ### Step 1: Gather Program Details |
| 48 | |
| 49 | If program details are missing, pull from openaffiliate.dev (see `references/openaffiliate-api.md` in affiliate-program-search). |
| 50 | |
| 51 | Key fields to extract: `reward_value`, `reward_type`, `cookie_days`. |
| 52 | |
| 53 | If `avg_product_price` is not provided and `reward_type` is percentage-based, estimate it: |
| 54 | - Use `web_search "[program name] pricing"` to find the most common paid plan price |
| 55 | - For SaaS: use the mid-tier plan (e.g., $49/mo on a $19/$49/$99 structure) |
| 56 | - Note the assumption in output so user can adjust |
| 57 | |
| 58 | For `cps_recurring` programs, establish payout duration: |
| 59 | - "Lifetime" = commissions paid as long as customer stays (most valuable) |
| 60 | - "12 months" = commissions paid for customer's first year |
| 61 | - "First purchase only" = functionally the same as one-time despite being subscription |
| 62 | |
| 63 | ### Step 2: Gather Traffic Estimates |
| 64 | |
| 65 | If traffic data is not provided, prompt the user OR use platform benchmarks: |
| 66 | |
| 67 | | Channel | Benchmark Ranges | |
| 68 | |---------|-----------------| |
| 69 | | New blog (0-6 months) | 500-2,000 visitors/mo | |
| 70 | | Growing blog (6-18 months) | 2,000-20,000 visitors/mo | |
| 71 | | Established blog (18+ months) | 20,000-200,000+ visitors/mo | |
| 72 | | YouTube channel (<1K subs) | 200-2,000 views/mo | |
| 73 | | YouTube channel (1K-10K subs) | 2,000-50,000 views/mo | |
| 74 | | TikTok (<10K followers) | 1,000-20,000 views/video | |
| 75 | | Twitter/X (<5K followers) | 50-500 impressions/tweet | |
| 76 | | Email list (<1K subscribers) | 200-400 opens/send | |
| 77 | | Email list (1K-10K subscribers) | 2,000-7,000 opens/send | |
| 78 | |
| 79 | If user won't provide traffic, use "realistic" scenario benchmarks for their stated |
| 80 | platform and growth stage. |
| 81 | |
| 82 | ### Step 3: Apply Conversion Rate Assumptions |
| 83 | |
| 84 | Use these industry-standard conversion rates as defaults. Adjust based on traffic quality |
| 85 | ("buyer intent" content converts 5-10x better than informational content): |
| 86 | |
| 87 | | Platform + Content Type | Click-through Rate | Affiliate Conversion | |
| 88 | |------------------------|-------------------|---------------------| |
| 89 | | Blog — product review | 3-6% | 2-5% | |
| 90 | | Blog — best-of listicle | 1.5-3% | 1-3% | |
| 91 | | Blog — tutorial/how-to | 0.5-1.5% | 0.5-2% | |
| 92 | | YouTube — dedicated review | 5-10% | 3-6% | |
| 93 | | YouTube — tutorial with mention | 1-3% | 1-3% | |
| 94 | | TikTok — product demo | 0.5-2% (bio link) | 0.5-2% |