Show your boss
Before the investor asks, you already have the answer: what % of last month's payouts went to your top 10, and whether that number is a red flag.
Pulls last month’s payout per affiliate, sums the top 10, and returns the concentration ratio as a single number. Handles top-5 / top-20, last quarter, last year with one input swap. Drops a clean one-line answer and chart-ready breakdown in Slack or your inbox. 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.
We still have a great concentration of revenue in a relatively small number of partners, so we need to increase this footprint.
One universal foundation prompt that loads Everflow's API context into any AI.
# 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. That’s the early signal that you're becoming more concentrated, not less. Re-run monthly and watch the trend, not just the absolute.
Partner Self-Serve: The same shape works for partners self-serving the answer. Swap affiliate_id = self and a partner-scoped API key, and any partner can run this recipe against their own performance—no AM needed. Useful for networks that want partners to answer “How am I doing?” on their own. Everflow reps have asked for this pattern on 6+ calls.
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.