{
  "version": "V23",
  "purpose": "Conservative CTA-level revenue decision engine joining mature click trend data to real Awin transactions by unique clickref.",
  "required_inputs": [
    "Cloudflare Trend Watch snapshot for current vs previous equal-length periods",
    "Awin transaction export with click reference, status, commission, currency and preferably transaction date",
    "Explicit confirmation that the Awin export covers the full current decision period"
  ],
  "accounting": {
    "realized_epc": "approved commission / current-period affiliate clicks",
    "pending_commission_counted_as_realized": false,
    "mixed_currency_epc_combined": false,
    "awin_join_key": "clickref"
  },
  "guardrails": {
    "requires_two_complete_click_periods": true,
    "requires_confirmed_transaction_window": true,
    "minimum_clicks_for_non_hold_decision": 10,
    "stop_means": "Pause scaling; verify attribution and advertiser validation lag before removing the CTA."
  },
  "rules": [
    {
      "decision": "Scale",
      "condition": "current_clicks >= 15 AND approved_transactions >= 2 AND approved_EPC > 0 AND currency is not mixed AND trend is not declining/traffic_lost",
      "action": "Increase internal/SEO exposure carefully and keep monitoring approved EPC."
    },
    {
      "decision": "Hold",
      "condition": "history incomplete OR transaction window unconfirmed OR current_clicks < 10 OR pending transactions exist without approved transactions OR evidence is otherwise inconclusive",
      "action": "Continue measurement; do not force an optimization."
    },
    {
      "decision": "Fix",
      "condition": "current_clicks >= 20 AND approved = 0 AND pending = 0, OR deteriorating click trend with no approved transaction evidence",
      "action": "Inspect CTA promise, placement, merchant fit, landing-page mismatch and attribution."
    },
    {
      "decision": "Stop",
      "condition": "current_clicks >= 60 AND approved = 0 AND pending = 0 AND history is mature AND full Awin transaction window is confirmed",
      "action": "Pause scaling first; verify attribution and advertiser validation lag before removal."
    }
  ],
  "profitability_ranking": {
    "activation": [
      "trend history complete",
      "Awin transaction CSV loaded",
      "full current transaction window confirmed"
    ],
    "currency": "rank page and merchant groups separately by transaction currency",
    "page_internal_link_rule": {
      "approved_transactions_min": 2,
      "approved_epc_gt": 0,
      "internal_inlinks_lt": 17,
      "action": "Increase internal links"
    },
    "page_traffic_rule": {
      "approved_transactions_min": 2,
      "approved_epc_gt": 0,
      "current_clicks_lt": 15,
      "action": "Acquire more traffic"
    },
    "page_cta_rule": {
      "approved_transactions_min": 2,
      "approved_epc_gt": 0,
      "attributed_awin_ctas_lte": 2,
      "action": "Increase CTA exposure"
    },
    "no_automatic_site_changes": true
  }
}
