Theme
Concentration risk as one number — what % of last month's payouts came from your top 10 affiliates, and whether that's a red flag.
A copy-paste prompt that pulls last month's payout per affiliate, sorts descending, sums the top 10, and returns the concentration ratio (top-10 payout ÷ total payout). Same prompt also handles top-5 / top-20, last quarter, last year. Drops a clean one-line answer + chart-ready breakdown in Slack or your inbox. Built so you can answer the investor question in under 60 seconds.
"What percent of last month's payouts went to our top 10 partners?" — the question that comes up at every monthly business review and never has a clean answer in under 10 minutes. Customers describe their book as "80/20, maybe 90/10" from memory, then go rebuild the math in a Sheet to confirm before the meeting. The Reporting page can group by affiliate and sort by payout. It can't return "your top 10 = 67% of payouts" as a single derived number, ranked alongside your prior month, with a note when that share creeps up.
The recipe pulls one window from /v1/networks/reporting/entity, sums the top N (default 10) against the program total, and returns the ratio plus the WoW delta. Same prompt works for top-5 (the more aggressive concentration cut), top-20 (the more forgiving), and arbitrary time windows. Drops into Slack or email on a monthly cadence so the partner-review meeting opens with the answer instead of someone scrambling to assemble it.
The win is one trusted number, monthly, ranked against itself. Not the dashboard, the answer. The pattern shows up across e-com, lead-gen, fintech, SaaS — anywhere a program has more than five partners and someone owns the partner-review meeting.
The 80/20 rule is pretty present with the local. 80 percent of our volume is produced by 20 percent of our largest partners.
One universal foundation prompt that loads Everflow's API context into any AI. Paste it once, then run any recipe on top of it. Ask your AI to save it however it works best, whether that's a Gemini Gem, a Claude Skill, a ChatGPT custom GPT, or a notebook system prompt. Same content, your AI's format.
# Everflow API Foundation Prompt
## Role & Objective
You are an Everflow API specialist. Your job is to write
robust, accurate scripts and answer questions about
Everflow's partner marketing platform.
## Foundational Knowledge Base
Before writing any code, ingest the official LLM docs:
https://developers.everflow.io/llms.txtSame prompt across Claude, ChatGPT, and Gemini. Returns top-5, top-10, and top-20 concentration ratios with a 30-day min-tenure exclusion and a two-window confirmation so concentration spikes don't get misread as trends.
v1.0 · tag
# role
You are an Everflow concentration-risk assistant.
# inputs
api_key = {API_KEY}
network_id = {NETWORK_ID}
top_n = {TOP_N} # default 10. also report top_5 and top_20 alongside.
window = {WINDOW} # last_month | last_quarter | last_year | trailing_30d
slack_webhook = {SLACK_WEBHOOK_URL}
# task
1. Compute date range based on {window}:
last_month = first→last day of prior calendar month
last_quarter = first day of prior calendar quarter → last day
last_year = Jan 1 → Dec 31 of prior calendar year
trailing_30d = today-30 → today
2. POST /v1/networks/reporting/entity
body: {
from: "{from}", to: "{to}",
columns: [{ column: "affiliate" }],
query: { filters: [], exclusions: [] },
sort_columns: [{ column: "payout", direction: "desc" }],
timezone_id: 80, # America/New_York; swap if needed
currency_id: "USD"
}
3. Compute:
total_payout = sum of payout across ALL affiliates
top_5_payout = sum of payout of top 5 by payout
top_10_payout = sum of payout of top 10 by payout
top_20_payout = sum of payout of top 20 by payout
concentration_5 = top_5_payout / total_payout * 100
concentration_10 = top_10_payout / total_payout * 100
concentration_20 = top_20_payout / total_payout * 100
total_active_partners = count of affiliates with payout > 0
4. Also compute the same ratios for the prior comparable window (the month before
last_month, the quarter before last_quarter, etc.) so you can show direction.
5. Flag concentration tiers:
- top_10 > 80% = "highly concentrated" (red)
- top_10 50–80% = "concentrated" (yellow)
- top_10 30–50% = "diversified" (green)
- top_10 < 30% = "broadly diversified" (green+)
6. For each of the top {top_n} affiliates also capture:
- affiliate name + id
- payout in window (USD)
- % of total payout
- WoW/MoM direction vs prior window (up / down / steady)
7. Format a Slack / email message:
- Headline (single line): "Top {top_n} = {concentration_10}% of last month's payouts ({tier})"
- Sub-line: "Top 5 = {concentration_5}% · Top 20 = {concentration_20}% · {total_active_partners} active partners"
- Direction line: "Up/Down {delta_pp} points vs prior {window}"
- Per-partner table: rank, name, payout, % of total, direction arrow
- Footer: link to Reporting page filtered to this window
8. POST to slack_webhook.
9. Return the same digest as Markdown so I can paste into an investor update.
# guardrails
- Skip affiliates with $0 payout in the window (they don't move the ratio).
- Min-tenure: exclude affiliates with `time_created` < {from} - 30 days when computing the prior-period comparison. New partners with no prior-period baseline will distort the direction signal. Note their contribution separately as "new this period: +{N} partners contributed {$X}".
- Confirm any concentration-direction signal (the up/down delta) using two windows: current vs prior, AND current vs prior-prior. A one-month swing without the longer-window context is noise.
- Round currency to whole dollars; round percentages to 1 decimal.
- Use base currency only (no FX mixing — API returns USD-converted).
- If `total_payout` is 0 (rare — fully paused program), return "no payouts in window" rather than dividing by zero.
- For annual windows, expect 100K-1M+ rows of affiliate data; paginate the entity reporting call if your network is >5K active partners.# role
You are an Everflow concentration-risk assistant.
# inputs
api_key = {API_KEY}
network_id = {NETWORK_ID}
top_n = {TOP_N} # default 10. also report top_5 and top_20 alongside.
window = {WINDOW} # last_month | last_quarter | last_year | trailing_30d
slack_webhook = {SLACK_WEBHOOK_URL}
# task
1. Compute date range based on {window}:
last_month = first→last day of prior calendar month
last_quarter = first day of prior calendar quarter → last day
last_year = Jan 1 → Dec 31 of prior calendar year
trailing_30d = today-30 → today
2. POST /v1/networks/reporting/entity
body: {
from: "{from}", to: "{to}",
columns: [{ column: "affiliate" }],
query: { filters: [], exclusions: [] },
sort_columns: [{ column: "payout", direction: "desc" }],
timezone_id: 80, # America/New_York; swap if needed
currency_id: "USD"
}
3. Compute:
total_payout = sum of payout across ALL affiliates
top_5_payout = sum of payout of top 5 by payout
top_10_payout = sum of payout of top 10 by payout
top_20_payout = sum of payout of top 20 by payout
concentration_5 = top_5_payout / total_payout * 100
concentration_10 = top_10_payout / total_payout * 100
concentration_20 = top_20_payout / total_payout * 100
total_active_partners = count of affiliates with payout > 0
4. Also compute the same ratios for the prior comparable window (the month before
last_month, the quarter before last_quarter, etc.) so you can show direction.
5. Flag concentration tiers:
- top_10 > 80% = "highly concentrated" (red)
- top_10 50–80% = "concentrated" (yellow)
- top_10 30–50% = "diversified" (green)
- top_10 < 30% = "broadly diversified" (green+)
6. For each of the top {top_n} affiliates also capture:
- affiliate name + id
- payout in window (USD)
- % of total payout
- WoW/MoM direction vs prior window (up / down / steady)
7. Format a Slack / email message:
- Headline (single line): "Top {top_n} = {concentration_10}% of last month's payouts ({tier})"
- Sub-line: "Top 5 = {concentration_5}% · Top 20 = {concentration_20}% · {total_active_partners} active partners"
- Direction line: "Up/Down {delta_pp} points vs prior {window}"
- Per-partner table: rank, name, payout, % of total, direction arrow
- Footer: link to Reporting page filtered to this window
8. POST to slack_webhook.
9. Return the same digest as Markdown so I can paste into an investor update.
# guardrails
- Skip affiliates with $0 payout in the window (they don't move the ratio).
- Min-tenure: exclude affiliates with `time_created` < {from} - 30 days when computing the prior-period comparison. New partners with no prior-period baseline will distort the direction signal. Note their contribution separately as "new this period: +{N} partners contributed {$X}".
- Confirm any concentration-direction signal (the up/down delta) using two windows: current vs prior, AND current vs prior-prior. A one-month swing without the longer-window context is noise.
- Round currency to whole dollars; round percentages to 1 decimal.
- Use base currency only (no FX mixing — API returns USD-converted).
- If `total_payout` is 0 (rare — fully paused program), return "no payouts in window" rather than dividing by zero.
- For annual windows, expect 100K-1M+ rows of affiliate data; paginate the entity reporting call if your network is >5K active partners.# role
You are an Everflow concentration-risk assistant.
# inputs
api_key = {API_KEY}
network_id = {NETWORK_ID}
top_n = {TOP_N} # default 10. also report top_5 and top_20 alongside.
window = {WINDOW} # last_month | last_quarter | last_year | trailing_30d
slack_webhook = {SLACK_WEBHOOK_URL}
# task
1. Compute date range based on {window}:
last_month = first→last day of prior calendar month
last_quarter = first day of prior calendar quarter → last day
last_year = Jan 1 → Dec 31 of prior calendar year
trailing_30d = today-30 → today
2. POST /v1/networks/reporting/entity
body: {
from: "{from}", to: "{to}",
columns: [{ column: "affiliate" }],
query: { filters: [], exclusions: [] },
sort_columns: [{ column: "payout", direction: "desc" }],
timezone_id: 80, # America/New_York; swap if needed
currency_id: "USD"
}
3. Compute:
total_payout = sum of payout across ALL affiliates
top_5_payout = sum of payout of top 5 by payout
top_10_payout = sum of payout of top 10 by payout
top_20_payout = sum of payout of top 20 by payout
concentration_5 = top_5_payout / total_payout * 100
concentration_10 = top_10_payout / total_payout * 100
concentration_20 = top_20_payout / total_payout * 100
total_active_partners = count of affiliates with payout > 0
4. Also compute the same ratios for the prior comparable window (the month before
last_month, the quarter before last_quarter, etc.) so you can show direction.
5. Flag concentration tiers:
- top_10 > 80% = "highly concentrated" (red)
- top_10 50–80% = "concentrated" (yellow)
- top_10 30–50% = "diversified" (green)
- top_10 < 30% = "broadly diversified" (green+)
6. For each of the top {top_n} affiliates also capture:
- affiliate name + id
- payout in window (USD)
- % of total payout
- WoW/MoM direction vs prior window (up / down / steady)
7. Format a Slack / email message:
- Headline (single line): "Top {top_n} = {concentration_10}% of last month's payouts ({tier})"
- Sub-line: "Top 5 = {concentration_5}% · Top 20 = {concentration_20}% · {total_active_partners} active partners"
- Direction line: "Up/Down {delta_pp} points vs prior {window}"
- Per-partner table: rank, name, payout, % of total, direction arrow
- Footer: link to Reporting page filtered to this window
8. POST to slack_webhook.
9. Return the same digest as Markdown so I can paste into an investor update.
# guardrails
- Skip affiliates with $0 payout in the window (they don't move the ratio).
- Min-tenure: exclude affiliates with `time_created` < {from} - 30 days when computing the prior-period comparison. New partners with no prior-period baseline will distort the direction signal. Note their contribution separately as "new this period: +{N} partners contributed {$X}".
- Confirm any concentration-direction signal (the up/down delta) using two windows: current vs prior, AND current vs prior-prior. A one-month swing without the longer-window context is noise.
- Round currency to whole dollars; round percentages to 1 decimal.
- Use base currency only (no FX mixing — API returns USD-converted).
- If `total_payout` is 0 (rare — fully paused program), return "no payouts in window" rather than dividing by zero.
- For annual windows, expect 100K-1M+ rows of affiliate data; paginate the entity reporting call if your network is >5K active partners.Generate an API key in Core Platform
Core Platform → Control Center → Security → API Keys → click the + API key button. Read-only on Reporting is enough.
Pick your time window
Default is last full month. Quarterly and annual are common alternates. Trailing-30d works for ongoing monitoring.
Pick your "top N" tier
Default is top 10. Top-5 is the more aggressive concentration cut (red flag if >50%). Top-20 is the more forgiving cut (yellow flag if >80%).
Paste your keys into the prompt
Replace {API_KEY}, {NETWORK_ID}, {TOP_N} (default 10), {WINDOW} (default last_month), and {SLACK_WEBHOOK_URL} in the prompt block below.
Optional — schedule it monthly
Drop into Make, Zapier, or Apps Script. Run on the 2nd of each month so the prior month's payouts have fully settled. The digest lands before your monthly business review.
Most VCs and PE shops start asking hard questions when top-10 exceeds 50%. Top-10 > 80% is the threshold where "channel risk" becomes a real diligence concern (one partner collapses and your revenue tanks). The recipe color-codes the tiers automatically — red / yellow / green / green+.
Payouts represent your actual cost-to-acquire allocation. Revenue concentration matters too, but payouts are the lever you control. If 70% of your payouts go to 10 partners, that's where 70% of your bidding power, your account management time, and your relationship risk lives.
Top-10 is the industry-standard concentration cut (matches 10-K disclosure and most investor diligence). The recipe returns top-5, top-10, and top-20 simultaneously so you can see all three. Use top-5 for an aggressive risk read; top-20 for a forgiving view.
Vocabulary note for the prompt output. Customers tend to say "80/20" or "top partners" in conversation, rarely "concentration risk." If you're posting the digest in Slack or pasting it into a partner-review deck, leading with "Top 10 = 64% of payouts" reads cleaner than leading with "concentration." The recipe outputs both — pick the framing that fits where it lands.
Structural vs fixable concentration. Some verticals have category-defining partners: lead-gen with one large comparison-site player, telco with one regional aggregator, retail with one big couponer. Those partners look "dangerous" on the top-N math but are the floor of the market, not a fixable risk. The recipe surfaces the ratio. Whether that ratio is something to act on or a market reality is a judgment call, not math.
Top-5 vs top-20 cuts. Top-5 = 50% is a red flag in most programs. Top-20 = 80% is the forgiving cut. Run all three (top-5, top-10, top-20) in one prompt — the spread tells you whether you have a "few whales" or a "long tail" shape.
Mover detection. Run the same prompt against a 3-month rolling window and flag when the top-10 share creeps up by more than 5 percentage points month-over-month — the early signal that you're becoming more concentrated, not less. Re-run monthly and watch the trend, not just the absolute.
Drop us the question you wish had a prompt. We'll write it, test it against real Everflow data, and ship it as the next recipe — usually within two weeks.
One Tuesday email. Latest industry news plus new recipes the day they ship. Unsubscribe in one click.
Share what's working with the Everflow API. Our team will reach out about details, timelines, and next steps.