F AffiliateForge LIVE · --:--
Join TelegramJoin
← Terminal / Methodology

How Affiliate Forge works

Every number on the terminal is computed, not curated. This page documents the full pipeline — sources, scoring formulas, and cadence — so you can judge the signal for yourself.

The pipeline

Affiliate Forge runs fully automatically every 10 hours. Each cycle it fetches 300+ public sources — industry RSS feeds (SBC News, iGaming Business, CasinoBeats, AffPapa and others), Google News query streams across regulation, jobs, deals, risk and case studies, plus community feeds — then filters for iGaming relevance, removes spam and duplicates (URL + title-similarity dedup), and classifies every item.

GEO Heat Index

heat_raw = Σ item_weight · regulatory ×2.0 · risk/jobs/deals ×1.5 · news ×1.0
score = 100 × heat_raw / max(heat_raw across GEOs)

Mentions are matched per jurisdiction with word-boundary alias sets (country names, key cities, regulator names like MGA, UKGC, PAGCOR, ONJN). The ▲▼ delta compares against the previous cycle, stored in the terminal's own history.

Affiliate Opportunity Index

score = 50 + 8×programs + 5×jobs + 4×reg_tailwinds − 7×high_risk − 3×other_risk − 4×reg_headwinds + momentum (±10)

One fused, opinionated call per market, clamped to 0–100: Prime Window ≥75 · Heating ≥60 · Watch ≥45 · Caution ≥30 · Avoid <30. Regulatory tailwinds/headwinds are detected from approval/licensing versus ban/fine/revocation language in that GEO's coverage this cycle.

Operator Intelligence

Each of the 55+ tracked brands gets: momentum (mentions vs its own 5-cycle average), a severity-weighted risk score (high ×3, medium ×2, low ×1 across complaint/fine/breach coverage), and expansion signals (hiring mentions ×2 + deal mentions). Leaderboards rank the extremes.

Risk severity

High = fines, license revocations, fraud, AML, breaches, lawsuits. Medium = complaints, warnings, disputes, geo-blocks. Low = everything else risk-flagged. Keyword-driven — then gated by source credibility: a low-credibility source (forum, community post, unknown blog) can never surface as HIGH severity, only MEDIUM. A high keyword score alone never acts; it is always gated on credibility.

Auditability — every score shows its own working

Rather than asking you to trust a number, each GEO heat score and each Opportunity Index score carries an inline "how this score is computed" disclosure listing its actual component terms and how they sum. It is generated from the same values used to rank, so it cannot drift from what the terminal actually did.

  • Sample-size labels — every ranked row shows n= its signal count, labelled high / medium / low confidence. Thin-signal rows are flagged, not hidden.
  • Source-weighted heat — each item's contribution is multiplied by its source's credibility, so primary trade-press reporting outweighs an aggregator re-running the same story.
  • Baseline anomaly (σ) — a market's share of the cycle is compared against its own recent baseline. Using share rather than an absolute count keeps this valid on quiet vs busy news days and across scoring changes. A market that is small in absolute terms but unusual for itself shows a positive σ — this is what qualifies a market for the ✦ EARLY SIGNAL slot, making that call statistical rather than arbitrary.
  • What Changed This Cycle — new top-10 entrants, dropouts, first-ever appearances and large rank moves, computed by diffing this cycle's board against the previous cycle's stored ranks.

Ranking layer (adapted from X's open For You algorithm)

The scoring pipeline adapts several ranking ideas from X's open-sourced recommendation code — architecture, not code; pure Python, no models or embeddings:

  • Story clustering — same-event items (headline similarity + shared entity + time window) collapse to one card labelled with a source count. "Reported by 5 sources" is a stronger, cleaner signal than five near-identical cards.
  • Diversity decay — within a feed, each additional item from the same outlet or story is down-weighted by (1−floor)·decayk + floor (k counted after ranking), so no single outlet dominates; the floor keeps a genuinely strong third item visible.
  • Positive/negative offset — a market's positive and negative signals are summed separately, and any net-negative market ranks strictly below every net-positive one. No amount of heat buys past bad risk.
  • Early-signal injection — exactly one under-covered market that just picked up a fresh signal is surfaced each cycle, badged ✦ EARLY SIGNAL and always honestly flagged; the value is surfacing it before it is obvious, which is then graded on the Track Record.
  • Rank-movement momentum — operator and GEO momentum is measured from movement up or down the board versus last cycle, not raw mention deltas, so a high-volume news day no longer inflates everything.

History & trends

Every cycle appends a snapshot (section counts, per-GEO heat, per-operator mentions, per-operator risk & hiring, and opportunity verdicts) to a rolling 60-cycle history (~25 days). That history powers the deltas, sparklines, Trends charts, the operator risk/hiring memory, and the public track record.

Operator risk & hiring memory

Because each operator's risk and hiring numbers are stored every cycle, we compute a trend against that operator's own recent baseline (mean of the prior window). A move is labelled rising / rising fast / stable / cooling only when it clears a threshold scaled to the baseline, so a big brand needs a bigger move to register. Every readout sentence cites the real numbers behind it (how many high/medium signals, the delta versus the prior cycles). Cycles recorded before a metric existed are treated as "unknown", never as zero — so a brand shows "first readings" rather than a false spike on day one.

Signal alerts

After each cycle the terminal checks for threshold crossings — an operator's risk trending up fast, a market crossing into a Prime Window (≥75), a fresh high-severity risk event, a hiring spike, or a dated regulatory milestone getting close. Each becomes a short alert that cites the trigger. Alerts are computed mechanically and de-duplicated against a rolling log; nothing is hand-written.

Regulatory countdown

Countdowns are shown only when an explicit future date is extracted from the source coverage (e.g. "takes effect January 2027") alongside a milestone context word. If no real date is present, no countdown is shown — we never estimate or guess a date. Weeks-remaining is computed from that extracted date. Treat it as a signal to verify with the regulator, not as legal advice.

Contact

Operator, affiliate or data partner? Affiliateforge@outlook.com — or reach the desk via Telegram.