{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ea433674",
   "metadata": {},
   "source": [
    "# Is my ad wearing out?\n",
    "\n",
    "Creative fatigue: measuring whether a creative's response is falling as people\n",
    "see it more, reading *when* it started falling and *how fast*, and separating\n",
    "that from every other reason a click-through rate drops.\n",
    "\n",
    "**The data in this notebook is synthetic.** It is generated here, with the\n",
    "answer built in, so that every reading can be scored against a truth nobody has\n",
    "to guess at. Run it on your own data in the last section; nothing leaves your\n",
    "machine.\n",
    "\n",
    "The one idea everything else follows from: fatigue does not run on the calendar.\n",
    "It runs on **exposure**, how many times the average person reached has now seen\n",
    "the ad. A search creative takes weeks to reach the exposure a short-form social\n",
    "creative reaches in days, so a rule written in days is right on one and wrong on\n",
    "the other. Put both on the exposure axis and they become the same problem."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b2b99036",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:37.567900Z",
     "iopub.status.busy": "2026-10-24T12:45:37.566200Z",
     "iopub.status.idle": "2026-10-24T12:45:39.980772Z",
     "shell.execute_reply": "2026-10-24T12:45:39.972583Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "seed: 20260907\n"
     ]
    }
   ],
   "source": [
    "import json\n",
    "import warnings\n",
    "from pathlib import Path\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from scipy import stats\n",
    "\n",
    "SEED = 20260907\n",
    "rng = np.random.default_rng(SEED)\n",
    "\n",
    "PAPER = \"#fdfcf9\"\n",
    "INK = \"#1f2124\"\n",
    "MUTED = \"#565c66\"\n",
    "LINE = \"#e6e2da\"\n",
    "SIGNAL = \"#0f6e56\"\n",
    "FATIGUE = \"#b06a2c\"\n",
    "NAIVE = \"#2a78d6\"\n",
    "\n",
    "plt.rcParams.update({\n",
    "    \"figure.facecolor\": PAPER,\n",
    "    \"axes.facecolor\": PAPER,\n",
    "    \"savefig.facecolor\": PAPER,\n",
    "    \"axes.edgecolor\": LINE,\n",
    "    \"axes.labelcolor\": INK,\n",
    "    \"text.color\": INK,\n",
    "    \"xtick.color\": MUTED,\n",
    "    \"ytick.color\": MUTED,\n",
    "    \"font.size\": 11,\n",
    "    \"axes.spines.top\": False,\n",
    "    \"axes.spines.right\": False,\n",
    "})\n",
    "\n",
    "HERE = Path.cwd()\n",
    "FIGURES = HERE / \"figures\"\n",
    "DATA = HERE / \"data\"\n",
    "FIGURES.mkdir(exist_ok=True)\n",
    "DATA.mkdir(exist_ok=True)\n",
    "\n",
    "print(\"seed:\", SEED)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5f43a669",
   "metadata": {},
   "source": [
    "## The method, as pure functions\n",
    "\n",
    "Everything the article, the widget and the video show comes out of these. They\n",
    "take numbers and return numbers (no plotting, no file reading), so the same\n",
    "functions can be lifted into JavaScript and checked against the values this\n",
    "notebook pins.\n",
    "\n",
    "### The axis\n",
    "\n",
    "Every quantity below is indexed on **cumulative exposure**:\n",
    "\n",
    "$$ f = \\frac{\\text{impressions delivered to date}}{\\text{distinct people reached to date}} $$\n",
    "\n",
    "the number of times the average reached person has now seen the creative.\n",
    "Platforms report reach per day, so this is a daily-accurate axis; that is enough.\n",
    "\n",
    "### The bend\n",
    "\n",
    "Response is modelled as a settled level up to a bend, then exponential decay\n",
    "*in exposure* beyond it:\n",
    "\n",
    "$$ p(f) = \\begin{cases} a & f < \\psi \\\\ a\\,e^{-\\lambda (f - \\psi)} & f \\ge \\psi \\end{cases} $$\n",
    "\n",
    "| term | meaning |\n",
    "|---|---|\n",
    "| $a$ | the settled level: the rate before any fatigue, **fitted**, not placed by a window |\n",
    "| $\\psi$ | the onset: the exposure at which response begins to fall |\n",
    "| $\\lambda$ | the decay rate: the share of response lost per additional impression per person |\n",
    "\n",
    "The fit is weighted least squares with impressions as the weights, because a\n",
    "rate's noise shrinks with the impressions behind it. Onset and decay are searched\n",
    "over a grid; for each pair the level has a closed form, so there is no optimiser\n",
    "and the browser can run the identical arithmetic. A bend is only *reported* when\n",
    "it beats a flat line by a clear information-criterion margin, and only when\n",
    "enough points sit on both sides of it. Otherwise the method says so and steps\n",
    "down the ladder rather than guessing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "0d35c009",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:39.991266Z",
     "iopub.status.busy": "2026-10-24T12:45:39.990677Z",
     "iopub.status.idle": "2026-10-24T12:45:40.139730Z",
     "shell.execute_reply": "2026-10-24T12:45:40.138732Z"
    }
   },
   "outputs": [],
   "source": [
    "# Method settings. Demonstration rules of thumb for this notebook, not tuned\n",
    "# settings from any live account. The one number with a published source is the\n",
    "# gate of two standard errors at the fallback rung: Shaw (2025) uses a directional\n",
    "# deterioration gate of 2 in the paper's own injected benchmark.\n",
    "PSI_GRID = 40                       # candidate onsets across the observed exposure range\n",
    "LAMBDA_GRID = (0.01, 5.0, 60)       # candidate decay rates, geometric\n",
    "MIN_LEFT_POINTS = 3                 # a level needs a few points before the bend...\n",
    "MIN_RIGHT_POINTS = 5                # ...a decay needs more after it\n",
    "MIN_TAIL_SPAN = 0.15                # the decaying side must cover this share of the exposure range\n",
    "MIN_EXPOSURE_SPAN = 0.5             # exposure must have moved at all, or there is no axis to fit on\n",
    "BIC_MARGIN = 6.0                    # a bend must beat a flat line by this much — a margin, not a coin toss\n",
    "PROFILE_CHI2 = 3.84                 # the 95% cut for a one-parameter profile range\n",
    "Z_GATE = 2.0                        # fallback rung: the no-change range is +/- this many standard errors\n",
    "REL_FLOOR = 0.10                    # ...and a drop must also be at least this big to matter\n",
    "MIN_IMPRESSIONS = 1_000             # per window at the fallback rung, below which the score is withheld\n",
    "BASELINE_FROM, BASELINE_TO = 7, 21  # fallback rung: early-life window, day indices [from, to)\n",
    "CURRENT_DAYS = 7                    # fallback rung: trailing window\n",
    "FREQ_RISE_FLOOR = 0.05              # fallback rung: exposure must have risen by this share of its mean\n",
    "CALENDAR_MIN_DAYS = BASELINE_TO + CURRENT_DAYS   # the fallback rung's windows need this much history\n",
    "\n",
    "\n",
    "def _quantile(values, q):\n",
    "    \"\"\"numpy's default (linear) quantile, written out so the widget can match it exactly.\"\"\"\n",
    "    v = np.sort(np.asarray(values, dtype=float))\n",
    "    pos = q * (v.size - 1)\n",
    "    lo = int(np.floor(pos))\n",
    "    hi = min(lo + 1, v.size - 1)\n",
    "    return float(v[lo] + (v[hi] - v[lo]) * (pos - lo))\n",
    "\n",
    "\n",
    "def _lambda_grid():\n",
    "    lo, hi, n = LAMBDA_GRID\n",
    "    return np.exp(np.linspace(np.log(lo), np.log(hi), n))\n",
    "\n",
    "\n",
    "def _wrss_table(f, rate, w, psi):\n",
    "    \"\"\"For one candidate onset, the weighted residual sum of squares at every candidate decay.\n",
    "\n",
    "    The level has a closed form for a fixed onset and decay: with g = exp(-lambda (f - psi)+),\n",
    "    a = sum(w rate g) / sum(w g^2). Returns (a per lambda, wrss per lambda).\n",
    "    \"\"\"\n",
    "    x = np.maximum(f - psi, 0.0)\n",
    "    G = np.exp(-np.outer(_lambda_grid(), x))          # (L, n)\n",
    "    a = (G @ (w * rate)) / (np.square(G) @ w)\n",
    "    resid = a[:, None] * G - rate[None, :]\n",
    "    return a, np.square(resid) @ w\n",
    "\n",
    "\n",
    "def _wrss_at(f, rate, w, psi, lam):\n",
    "    x = np.maximum(f - psi, 0.0)\n",
    "    g = np.exp(-lam * x)\n",
    "    a = float(np.sum(w * rate * g) / np.sum(w * g * g))\n",
    "    return a, float(np.sum(w * np.square(a * g - rate)))\n",
    "\n",
    "\n",
    "def hinge_fit(f, clicks, impressions):\n",
    "    \"\"\"Fit the flat-then-decay bend on the exposure axis. Returns a dict.\n",
    "\n",
    "    identified  — True when a bend is admissible and beats the flat line by BIC_MARGIN.\n",
    "    a, psi, lam — the fitted level, onset and decay (nan onset / zero decay when not identified).\n",
    "    *_range     — 95% ranges: profile ranges for the onset and the decay read off the grid,\n",
    "                  a standard-error range for the level.\n",
    "    reason      — why the fit was not identified, in plain words, when it was not.\n",
    "    \"\"\"\n",
    "    f = np.asarray(f, dtype=float)\n",
    "    rate = np.asarray(clicks, dtype=float) / np.maximum(np.asarray(impressions, dtype=float), 1e-9)\n",
    "    w = np.asarray(impressions, dtype=float)\n",
    "    keep = np.isfinite(f) & np.isfinite(rate) & (w > 0)\n",
    "    f, rate, w = f[keep], rate[keep], w[keep]\n",
    "    n = int(f.size)\n",
    "\n",
    "    a_flat = float(np.sum(w * rate) / np.sum(w)) if n else 0.0\n",
    "    wrss_flat = float(np.sum(w * np.square(rate - a_flat))) if n else 0.0\n",
    "    out = {\"identified\": False, \"a\": a_flat, \"psi\": float(\"nan\"), \"lam\": 0.0,\n",
    "           \"a_range\": [a_flat, a_flat], \"psi_range\": [float(\"nan\"), float(\"nan\")],\n",
    "           \"lam_range\": [0.0, 0.0], \"points\": n, \"exposure_span\": float(f.max() - f.min()) if n else 0.0,\n",
    "           \"wrss\": wrss_flat, \"wrss_flat\": wrss_flat, \"reason\": \"\"}\n",
    "\n",
    "    if n < MIN_LEFT_POINTS + MIN_RIGHT_POINTS:\n",
    "        out[\"reason\"] = f\"only {n} points - a bend needs at least {MIN_LEFT_POINTS + MIN_RIGHT_POINTS}\"\n",
    "        return out\n",
    "    if out[\"exposure_span\"] < MIN_EXPOSURE_SPAN:\n",
    "        out[\"reason\"] = (f\"exposure moved by only {out['exposure_span']:.2f} impressions per person - \"\n",
    "                         \"there is no axis to fit a bend on\")\n",
    "        return out\n",
    "\n",
    "    lo, hi = _quantile(f, 0.05), _quantile(f, 0.90)\n",
    "    psis = np.linspace(lo, hi, PSI_GRID)\n",
    "    lams = _lambda_grid()\n",
    "    table = np.full((PSI_GRID, lams.size), np.inf)\n",
    "    levels = np.zeros((PSI_GRID, lams.size))\n",
    "    f_span = out[\"exposure_span\"]\n",
    "    for i, psi in enumerate(psis):\n",
    "        left, right = int((f < psi).sum()), int((f >= psi).sum())\n",
    "        if left < MIN_LEFT_POINTS or right < MIN_RIGHT_POINTS:\n",
    "            continue\n",
    "        if (f.max() - psi) / f_span < MIN_TAIL_SPAN:\n",
    "            continue\n",
    "        levels[i], table[i] = _wrss_table(f, rate, w, psi)\n",
    "\n",
    "    if not np.isfinite(table).any():\n",
    "        out[\"reason\"] = \"no admissible bend - too few points on one side of every candidate onset\"\n",
    "        return out\n",
    "\n",
    "    i, j = np.unravel_index(int(np.argmin(table)), table.shape)\n",
    "    psi_best, lam_best, a_best, wrss_best = float(psis[i]), float(lams[j]), float(levels[i, j]), float(table[i, j])\n",
    "\n",
    "    # Refine the decay between its grid neighbours by a deterministic ternary search - the\n",
    "    # same twenty-five steps in the browser give the same number.\n",
    "    lam_lo, lam_hi = float(lams[max(j - 1, 0)]), float(lams[min(j + 1, lams.size - 1)])\n",
    "    for _ in range(25):\n",
    "        m1 = lam_lo + (lam_hi - lam_lo) / 3\n",
    "        m2 = lam_hi - (lam_hi - lam_lo) / 3\n",
    "        _, r1 = _wrss_at(f, rate, w, psi_best, m1)\n",
    "        _, r2 = _wrss_at(f, rate, w, psi_best, m2)\n",
    "        if r1 < r2:\n",
    "            lam_hi = m2\n",
    "        else:\n",
    "            lam_lo = m1\n",
    "    lam_ref = (lam_lo + lam_hi) / 2\n",
    "    a_ref, wrss_ref = _wrss_at(f, rate, w, psi_best, lam_ref)\n",
    "    if wrss_ref < wrss_best:\n",
    "        lam_best, a_best, wrss_best = lam_ref, a_ref, wrss_ref\n",
    "\n",
    "    bic_hinge = n * np.log(wrss_best / n) + 3 * np.log(n)\n",
    "    bic_flat = n * np.log(wrss_flat / n) + 1 * np.log(n)\n",
    "    identified = bool(bic_hinge + BIC_MARGIN < bic_flat)\n",
    "\n",
    "    # 95% profile ranges off the grid: every onset (decay) whose best partner sits within the\n",
    "    # chi-square cut of the best fit is inside the range.\n",
    "    sigma2 = wrss_best / max(n - 3, 1)\n",
    "    cut = wrss_best + PROFILE_CHI2 * sigma2\n",
    "    psi_ok = np.min(table, axis=1) <= cut\n",
    "    lam_ok = np.min(table, axis=0) <= cut\n",
    "    x = np.maximum(f - psi_best, 0.0)\n",
    "    g = np.exp(-lam_best * x)\n",
    "    se_a = float(np.sqrt(sigma2 / np.sum(w * g * g)))\n",
    "\n",
    "    out.update({\n",
    "        \"identified\": identified,\n",
    "        \"a\": a_best, \"psi\": psi_best, \"lam\": lam_best, \"wrss\": wrss_best,\n",
    "        \"a_range\": [a_best - 1.96 * se_a, a_best + 1.96 * se_a],\n",
    "        \"psi_range\": [float(psis[psi_ok].min()), float(psis[psi_ok].max())],\n",
    "        \"lam_range\": [float(lams[lam_ok].min()), float(lams[lam_ok].max())],\n",
    "        \"bic_hinge\": float(bic_hinge), \"bic_flat\": float(bic_flat),\n",
    "        \"reason\": \"\" if identified else \"a bend does not beat a flat line by a clear margin\",\n",
    "    })\n",
    "    if not identified:\n",
    "        out.update({\"a\": a_flat, \"psi\": float(\"nan\"), \"lam\": 0.0,\n",
    "                    \"a_range\": [a_flat, a_flat], \"psi_range\": [float(\"nan\"), float(\"nan\")],\n",
    "                    \"lam_range\": [0.0, 0.0]})\n",
    "    return out\n",
    "\n",
    "\n",
    "def model_curve(a, psi, lam, f):\n",
    "    \"\"\"The fitted bend evaluated at exposure f.\"\"\"\n",
    "    f = np.asarray(f, dtype=float)\n",
    "    return a * np.exp(-lam * np.maximum(f - psi, 0.0))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "405a6339",
   "metadata": {},
   "source": [
    "### When a decline stops, or turns back\n",
    "\n",
    "One bend says that a decline, once started, continues. Two real shapes disagree.\n",
    "A creative can lose a chunk of its response early and then **hold** at the new\n",
    "level; and a creative can dip and **come back**. A single bend reads the first as\n",
    "steady, because the long flat stretch after the fall dominates the fit, and reads\n",
    "the second as still falling, because it has nowhere to put a rise.\n",
    "\n",
    "So the model gets a second bend: the rate decays at one rate from the onset, and\n",
    "at a second rate from a stop point. That second rate is free to be zero (the\n",
    "decline stopped), negative (the creative is recovering) or larger (it is falling\n",
    "faster). Nothing else changes: the same impression weights, the same support\n",
    "rules, the same margin. And it is reported only when it beats **both** the single\n",
    "bend and the flat line by that margin, because a model that contains the single\n",
    "bend fits every ordinary fatiguing creative at least as well, and a margin against\n",
    "the flat line alone would hand it all of them."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d7f97188",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:40.147096Z",
     "iopub.status.busy": "2026-10-24T12:45:40.145532Z",
     "iopub.status.idle": "2026-10-24T12:45:40.187067Z",
     "shell.execute_reply": "2026-10-24T12:45:40.185580Z"
    }
   },
   "outputs": [],
   "source": [
    "PSI2_GRID = 24                  # candidate stop points\n",
    "LAM2_GRID = 21                  # candidate second rates: recovery, through zero, to steeper decay\n",
    "\n",
    "\n",
    "def _lam2_grid():\n",
    "    \"\"\"Second-rate candidates, symmetric about zero and including it exactly.\n",
    "\n",
    "    Zero has to be IN the grid rather than merely approached: \"the decline stopped\" is the\n",
    "    shape this extension exists to express, and a grid that only came close to zero would\n",
    "    report a small drift where the honest answer is a stop.\n",
    "    \"\"\"\n",
    "    half = np.geomspace(0.01, 1.0, LAM2_GRID // 2)\n",
    "    return np.concatenate([-half[::-1], [0.0], half])\n",
    "\n",
    "\n",
    "def _two_bend_shape(f, psi1, lam1, psi2, lam2):\n",
    "    x1 = np.clip(f - psi1, 0.0, max(psi2 - psi1, 0.0))\n",
    "    x2 = np.maximum(f - psi2, 0.0)\n",
    "    return np.exp(-lam1 * x1 - lam2 * x2)\n",
    "\n",
    "\n",
    "def _segments_ok(f, psi1, psi2, span):\n",
    "    \"\"\"The shipped support rules, applied to three segments rather than two.\n",
    "\n",
    "    Reused rather than re-invented: the level and the first decay each need MIN_LEFT_POINTS,\n",
    "    and the stretch after the stop needs MIN_RIGHT_POINTS and MIN_TAIL_SPAN of the exposure\n",
    "    range. A stop declared from the last two points is exactly the artefact the tail rule\n",
    "    already exists to refuse.\n",
    "    \"\"\"\n",
    "    if int((f < psi1).sum()) < MIN_LEFT_POINTS:\n",
    "        return False\n",
    "    if int(((f >= psi1) & (f < psi2)).sum()) < MIN_LEFT_POINTS:\n",
    "        return False\n",
    "    if int((f >= psi2).sum()) < MIN_RIGHT_POINTS:\n",
    "        return False\n",
    "    return (f.max() - psi2) / span >= MIN_TAIL_SPAN\n",
    "\n",
    "\n",
    "def two_bend_fit(f, clicks, impressions, one_bend=None, with_ranges=True):\n",
    "    \"\"\"Fit flat-then-decay-then-decay on the exposure axis. Returns a dict.\n",
    "\n",
    "    identified   — the two-bend form beats BOTH the single bend and the flat line by\n",
    "                   BIC_MARGIN. Beating the flat line alone would not do: this model CONTAINS\n",
    "                   the single bend, so it fits every ordinary fatiguing creative at least as\n",
    "                   well, and a margin against flat would hand it all of them.\n",
    "    lam2_range   — a profile range for the second rate, read off the same grid the search\n",
    "                   used. It is what lets \"the decline stopped\" be a claim with evidence\n",
    "                   rather than a small number rounded to zero by eye.\n",
    "    second_segment — what the tail is doing, decided by that range and never by the point.\n",
    "    \"\"\"\n",
    "    f = np.asarray(f, dtype=float)\n",
    "    rate = np.asarray(clicks, dtype=float) / np.maximum(np.asarray(impressions, dtype=float), 1e-9)\n",
    "    w = np.asarray(impressions, dtype=float)\n",
    "    keep = np.isfinite(f) & np.isfinite(rate) & (w > 0)\n",
    "    f, rate, w = f[keep], rate[keep], w[keep]\n",
    "    n = int(f.size)\n",
    "    out = {\"identified\": False, \"points\": n, \"reason\": \"\"}\n",
    "\n",
    "    if n < 2 * MIN_LEFT_POINTS + MIN_RIGHT_POINTS:\n",
    "        out[\"reason\"] = (f\"only {n} points - three segments need at least \"\n",
    "                         f\"{2 * MIN_LEFT_POINTS + MIN_RIGHT_POINTS}\")\n",
    "        return out\n",
    "    span = float(f.max() - f.min())\n",
    "    if span < MIN_EXPOSURE_SPAN:\n",
    "        out[\"reason\"] = \"exposure never moved - there is no axis to fit bends on\"\n",
    "        return out\n",
    "\n",
    "    a_flat = float(np.sum(w * rate) / np.sum(w))\n",
    "    wrss_flat = float(np.sum(w * np.square(rate - a_flat)))\n",
    "    one = hinge_fit(f, clicks, impressions) if one_bend is None else one_bend\n",
    "    wrss_one = float(one[\"wrss\"])\n",
    "\n",
    "    psis1 = np.linspace(_quantile(f, 0.05), _quantile(f, 0.90), PSI_GRID)\n",
    "    psis2 = np.linspace(_quantile(f, 0.10), _quantile(f, 0.95), PSI2_GRID)\n",
    "    lams1, lams2 = _lambda_grid(), _lam2_grid()\n",
    "\n",
    "    def evaluate(p1, l1, p2, l2):\n",
    "        if p2 <= p1 or l1 <= 0 or not _segments_ok(f, p1, p2, span):\n",
    "            return float(\"inf\"), 0.0\n",
    "        g = _two_bend_shape(f, p1, l1, p2, l2)\n",
    "        d = float(np.sum(w * g * g))\n",
    "        if d <= 0:\n",
    "            return float(\"inf\"), 0.0\n",
    "        a_ = float(np.sum(w * rate * g) / d)\n",
    "        return float(np.sum(w * np.square(a_ * g - rate))), a_\n",
    "\n",
    "    def refine(start, free, rounds):\n",
    "        \"\"\"Coordinate descent over the free coordinates on a fixed, halving step schedule.\n",
    "\n",
    "        Deterministic in the same way the single bend's ternary search is - no random restarts,\n",
    "        no line search that depends on floating-point luck - so the browser reproduces it.\n",
    "        \"\"\"\n",
    "        p = np.array(start, dtype=float)\n",
    "        r, _ = evaluate(float(p[0]), float(p[1]), float(p[2]), float(p[3]))\n",
    "        st = np.array([span / PSI_GRID, max(float(p[1]) * 0.5, 1e-6), span / PSI2_GRID, 0.05])\n",
    "        for _ in range(rounds):\n",
    "            improved = False\n",
    "            for d in range(4):\n",
    "                if not free[d]:\n",
    "                    continue\n",
    "                for sign in (1.0, -1.0):\n",
    "                    trial = p.copy()\n",
    "                    trial[d] = trial[d] + sign * st[d]\n",
    "                    r_, _ = evaluate(float(trial[0]), float(trial[1]), float(trial[2]), float(trial[3]))\n",
    "                    if r_ < r - 1e-18:\n",
    "                        p, r, improved = trial, r_, True\n",
    "            if not improved:\n",
    "                st = st * 0.5\n",
    "                if float(np.max(st)) < 1e-9:\n",
    "                    break\n",
    "        return p, r\n",
    "\n",
    "    best_wrss, best = float(\"inf\"), None\n",
    "    # The best grid cell at each second rate and at each stop point, kept as starting points so\n",
    "    # the profile ranges below can be re-optimised rather than read off the coarse grid.\n",
    "    start_lam2 = [None] * lams2.size\n",
    "    wrss_lam2 = np.full(lams2.size, np.inf)\n",
    "    start_psi2 = [None] * psis2.size\n",
    "    wrss_psi2 = np.full(psis2.size, np.inf)\n",
    "    for psi1 in psis1:\n",
    "        for k2 in range(psis2.size):\n",
    "            psi2 = float(psis2[k2])\n",
    "            if psi2 <= psi1 or not _segments_ok(f, psi1, psi2, span):\n",
    "                continue\n",
    "            x1 = np.clip(f - psi1, 0.0, psi2 - psi1)\n",
    "            x2 = np.maximum(f - psi2, 0.0)\n",
    "            G = (np.exp(-np.outer(lams1, x1))[:, None, :]\n",
    "                 * np.exp(-np.outer(lams2, x2))[None, :, :]).reshape(-1, n)\n",
    "            denom = np.square(G) @ w\n",
    "            with np.errstate(divide=\"ignore\", invalid=\"ignore\"):\n",
    "                a = (G @ (w * rate)) / denom\n",
    "            resid = a[:, None] * G - rate[None, :]\n",
    "            wrss = np.where(np.isfinite(denom) & (denom > 0), np.square(resid) @ w, np.inf)\n",
    "            grid = wrss.reshape(lams1.size, lams2.size)\n",
    "            per_lam2 = grid.min(axis=0)\n",
    "            for j in range(lams2.size):\n",
    "                if per_lam2[j] < wrss_lam2[j]:\n",
    "                    wrss_lam2[j] = float(per_lam2[j])\n",
    "                    start_lam2[j] = (psi1, float(lams1[int(np.argmin(grid[:, j]))]), psi2, float(lams2[j]))\n",
    "            cell = float(grid.min())\n",
    "            if cell < wrss_psi2[k2]:\n",
    "                wrss_psi2[k2] = cell\n",
    "                i1c, i2c = divmod(int(np.argmin(wrss)), lams2.size)\n",
    "                start_psi2[k2] = (psi1, float(lams1[i1c]), psi2, float(lams2[i2c]))\n",
    "            k = int(np.argmin(wrss))\n",
    "            if wrss[k] < best_wrss:\n",
    "                i1, i2 = divmod(k, lams2.size)\n",
    "                best_wrss = float(wrss[k])\n",
    "                best = (psi1, float(lams1[i1]), psi2, float(lams2[i2]))\n",
    "\n",
    "    if best is None:\n",
    "        out[\"reason\"] = \"no admissible pair of bends - too few points in a segment\"\n",
    "        return out\n",
    "\n",
    "    params, best_wrss = refine(best, [True, True, True, True], 40)\n",
    "    psi1, lam1, psi2, lam2 = (float(v) for v in params)\n",
    "    best_wrss, a_best = evaluate(psi1, lam1, psi2, lam2)\n",
    "    if not np.isfinite(best_wrss):\n",
    "        out[\"reason\"] = \"the refined fit left the admissible region\"\n",
    "        return out\n",
    "\n",
    "    bic_two = n * np.log(best_wrss / n) + 5 * np.log(n)\n",
    "    bic_one = n * np.log(wrss_one / n) + 3 * np.log(n)\n",
    "    bic_flat = n * np.log(wrss_flat / n) + 1 * np.log(n)\n",
    "    identified = bool(bic_two + BIC_MARGIN < bic_one and bic_two + BIC_MARGIN < bic_flat)\n",
    "\n",
    "    # Profile ranges, re-optimised at each candidate rather than read off the search grid.\n",
    "    # Reading them off the grid would compare a coarse number against a refined best and\n",
    "    # report ranges NARROWER than the evidence supports - precision the fit has not earned.\n",
    "    # Only computed when the fit is reported, since nothing else consumes them.\n",
    "    sigma2 = best_wrss / max(n - 5, 1)\n",
    "    cut = best_wrss + PROFILE_CHI2 * sigma2\n",
    "    lam2_range, psi2_range = [lam2, lam2], [psi2, psi2]\n",
    "    if identified and with_ranges:\n",
    "        ok = [j for j in range(lams2.size) if start_lam2[j] is not None\n",
    "              and refine(start_lam2[j], [True, True, True, False], 20)[1] <= cut]\n",
    "        if ok:\n",
    "            lam2_range = [min(float(lams2[min(ok)]), lam2), max(float(lams2[max(ok)]), lam2)]\n",
    "        ok2 = [k for k in range(psis2.size) if start_psi2[k] is not None\n",
    "               and refine(start_psi2[k], [True, True, False, True], 20)[1] <= cut]\n",
    "        if ok2:\n",
    "            psi2_range = [min(float(psis2[min(ok2)]), psi2), max(float(psis2[max(ok2)]), psi2)]\n",
    "\n",
    "    # What the tail is DOING, decided by the range rather than by the point. A range that\n",
    "    # straddles zero cannot tell a stop from a drift, and says so.\n",
    "    #\n",
    "    # WITHOUT the range there is no answer, and the honest report is None rather than a guess.\n",
    "    # An earlier version fell through to the point estimate here, and since a fitted second rate\n",
    "    # is almost never exactly zero, \"stopped\" collapsed from four runs in five to one in fifty -\n",
    "    # a classification silently deciding on a rounding rather than on evidence.\n",
    "    if not (identified and with_ranges):\n",
    "        second = None\n",
    "    elif lam2_range[0] > 0:\n",
    "        second = \"still falling\"\n",
    "    elif lam2_range[1] < 0:\n",
    "        second = \"recovering\"\n",
    "    else:\n",
    "        second = \"stopped\"\n",
    "\n",
    "    out.update({\n",
    "        \"identified\": identified, \"a\": a_best, \"psi1\": psi1, \"lam1\": lam1,\n",
    "        \"psi2\": psi2, \"lam2\": lam2, \"psi2_range\": psi2_range, \"lam2_range\": lam2_range,\n",
    "        \"second_segment\": second, \"wrss\": best_wrss,\n",
    "        \"bic_two\": float(bic_two), \"bic_one\": float(bic_one), \"bic_flat\": float(bic_flat),\n",
    "        \"total_drop\": float(1 - np.exp(-lam1 * max(psi2 - psi1, 0.0))),\n",
    "        \"reason\": \"\" if identified else \"two bends do not beat one by a clear margin\",\n",
    "    })\n",
    "    return out\n",
    "\n",
    "\n",
    "def two_bend_curve(a, psi1, lam1, psi2, lam2, f):\n",
    "    \"\"\"The two-bend fit evaluated at exposure f.\"\"\"\n",
    "    return a * _two_bend_shape(np.asarray(f, dtype=float), psi1, lam1, psi2, lam2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "59112e35",
   "metadata": {},
   "source": [
    "### The fallback rung: the no-change range\n",
    "\n",
    "When the bend cannot be fitted (too few points, or exposure that never moved),\n",
    "the method does not guess. It steps down to a two-window comparison: a settled\n",
    "early-life window against the current one, and asks where the current rate\n",
    "*would* land if nothing had changed:\n",
    "\n",
    "$$ \\text{range} = p_0 \\pm 2\\sqrt{\\frac{p_0(1-p_0)}{n_0} + \\frac{p_1(1-p_1)}{n_1}} $$\n",
    "\n",
    "Landing below the bottom of that band is exactly a standardised drop of two\n",
    "standard errors, said the way a reader can act on. This rung reports a decline\n",
    "and its size; it reports no onset and no decay rate, because it has neither.\n",
    "And because it compares windows placed on the calendar, it needs the confounder\n",
    "gate the exposure axis makes automatic at the top rung: exposure must have\n",
    "risen *materially* across the current window, not merely drifted upward."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "47be7bec",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:40.223264Z",
     "iopub.status.busy": "2026-10-24T12:45:40.220950Z",
     "iopub.status.idle": "2026-10-24T12:45:40.236448Z",
     "shell.execute_reply": "2026-10-24T12:45:40.234480Z"
    }
   },
   "outputs": [],
   "source": [
    "def two_proportion_z(clicks_0, impressions_0, clicks_1, impressions_1):\n",
    "    \"\"\"Standardised drop from window 0 to window 1. Positive means a decline.\"\"\"\n",
    "    if impressions_0 <= 0 or impressions_1 <= 0:\n",
    "        return 0.0\n",
    "    p0 = clicks_0 / impressions_0\n",
    "    p1 = clicks_1 / impressions_1\n",
    "    se = np.sqrt(p0 * (1 - p0) / impressions_0 + p1 * (1 - p1) / impressions_1)\n",
    "    if se <= 0:\n",
    "        return 0.0\n",
    "    return float((p0 - p1) / se)\n",
    "\n",
    "\n",
    "def relative_drop(clicks_0, impressions_0, clicks_1, impressions_1):\n",
    "    \"\"\"Plain percentage decline from baseline to current. Positive means a decline.\"\"\"\n",
    "    if impressions_0 <= 0 or impressions_1 <= 0:\n",
    "        return 0.0\n",
    "    p0 = clicks_0 / impressions_0\n",
    "    p1 = clicks_1 / impressions_1\n",
    "    if p0 <= 0:\n",
    "        return 0.0\n",
    "    return float((p0 - p1) / p0)\n",
    "\n",
    "\n",
    "def no_change_range(clicks_0, impressions_0, clicks_1, impressions_1, z_gate=Z_GATE):\n",
    "    \"\"\"Where the current rate would land if nothing about the creative had changed.\"\"\"\n",
    "    if impressions_0 <= 0 or impressions_1 <= 0:\n",
    "        return 0.0, 0.0\n",
    "    p0 = clicks_0 / impressions_0\n",
    "    p1 = clicks_1 / impressions_1\n",
    "    se = np.sqrt(p0 * (1 - p0) / impressions_0 + p1 * (1 - p1) / impressions_1)\n",
    "    return float(p0 - z_gate * se), float(p0 + z_gate * se)\n",
    "\n",
    "\n",
    "def robust_slope(values):\n",
    "    \"\"\"Theil-Sen slope — the median of all pairwise slopes. One promoted day cannot tilt it.\"\"\"\n",
    "    values = np.asarray(values, dtype=float)\n",
    "    if values.size < 3:\n",
    "        return 0.0\n",
    "    with warnings.catch_warnings():\n",
    "        warnings.simplefilter(\"ignore\")\n",
    "        slope, _, _, _ = stats.theilslopes(values, np.arange(values.size))\n",
    "    return float(slope)\n",
    "\n",
    "\n",
    "def frequency_rise(window):\n",
    "    \"\"\"The share by which exposure rose across the window — relative, not absolute.\n",
    "\n",
    "    The obvious gate, \"is the slope above zero\", is not a test: cumulative exposure drifts\n",
    "    upward on nearly every creative still serving, so a bare positive slope passes on\n",
    "    arithmetic rather than on exposure. It has to be materially up.\n",
    "    \"\"\"\n",
    "    values = np.asarray(window, dtype=float)\n",
    "    if values.size < 3:\n",
    "        return 0.0\n",
    "    mean = float(np.mean(values))\n",
    "    if mean <= 0:\n",
    "        return 0.0\n",
    "    return float(robust_slope(values) * (values.size - 1) / mean)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "83314210",
   "metadata": {},
   "source": [
    "### The ladder\n",
    "\n",
    "The method reports the strongest rung the data supports, and names the rung.\n",
    "\n",
    "| rung | verdict | what it says |\n",
    "|---|---|---|\n",
    "| fitted decay | `FATIGUE_FITTED` | the level, the onset and the decay rate, each with a range |\n",
    "| no-change range | `FATIGUE_RANGE` | the current rate is below where it would land unchanged, and exposure rose materially: a decline and its size, no onset, no rate |\n",
    "| no-change range | `DECLINE_ONLY` | below the range, but exposure did not rise: something else changed, so look elsewhere |\n",
    "| no-change range | `STEADY` | inside the range |\n",
    "| silence | `INSUFFICIENT` | too little volume or history to judge: a refusal, never a no-fatigue call |"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2b7e7765",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:40.245605Z",
     "iopub.status.busy": "2026-10-24T12:45:40.241855Z",
     "iopub.status.idle": "2026-10-24T12:45:40.279556Z",
     "shell.execute_reply": "2026-10-24T12:45:40.274455Z"
    }
   },
   "outputs": [],
   "source": [
    "def score_creative(impressions, clicks, frequency, z_gate=Z_GATE, rel_floor=REL_FLOOR,\n",
    "                   min_impressions=MIN_IMPRESSIONS, baseline_from=BASELINE_FROM,\n",
    "                   baseline_to=BASELINE_TO, current_days=CURRENT_DAYS,\n",
    "                   freq_rise_floor=FREQ_RISE_FLOOR):\n",
    "    \"\"\"Score one creative's daily series through the ladder. Returns a verdict dict.\"\"\"\n",
    "    impressions = np.asarray(impressions, dtype=float)\n",
    "    clicks = np.asarray(clicks, dtype=float)\n",
    "    frequency = np.asarray(frequency, dtype=float)\n",
    "    has_exposure = np.isfinite(frequency).all() and frequency.size == impressions.size\n",
    "\n",
    "    result = {\"exposure_start\": float(frequency[0]) if has_exposure else float(\"nan\"),\n",
    "              \"exposure_end\": float(frequency[-1]) if has_exposure else float(\"nan\")}\n",
    "\n",
    "    # Rung one: the fitted bend.\n",
    "    #\n",
    "    # The two-bend extension below is deliberately NOT consulted here. It is specified and\n",
    "    # measured, and it is not part of the method the rest of this notebook reports; folding it\n",
    "    # into the verdict would make the ladder claim a capability the method does not carry yet.\n",
    "    # It has its own section, with its own numbers, and a reader who wants it calls it directly.\n",
    "    fit = hinge_fit(frequency, clicks, impressions) if has_exposure else {\n",
    "        \"identified\": False, \"reason\": \"no exposure series - the bend cannot be fitted\", \"exposure_span\": 0.0}\n",
    "    result[\"fit\"] = fit\n",
    "    if fit[\"identified\"]:\n",
    "        f_end = float(frequency[-1])\n",
    "        result.update({\n",
    "            \"rung\": \"fitted decay\", \"verdict\": \"FATIGUE_FITTED\", \"model\": \"one bend\",\n",
    "            \"level\": fit[\"a\"], \"onset\": fit[\"psi\"], \"decay\": fit[\"lam\"],\n",
    "            \"level_range\": fit[\"a_range\"], \"onset_range\": fit[\"psi_range\"], \"decay_range\": fit[\"lam_range\"],\n",
    "            \"drop_at_end\": float(1 - np.exp(-fit[\"lam\"] * max(f_end - fit[\"psi\"], 0.0))),\n",
    "            \"reason\": \"response falls along the exposure axis from a fitted onset\",\n",
    "        })\n",
    "        return result\n",
    "\n",
    "    # Rung two: the no-change range on two calendar windows - which need enough history to exist.\n",
    "    if len(impressions) < baseline_to + current_days:\n",
    "        result.update({\"rung\": \"silence\", \"verdict\": \"INSUFFICIENT\",\n",
    "                       \"reason\": f\"only {len(impressions)} days of history - the fallback windows need \"\n",
    "                                 f\"{baseline_to + current_days}, and no bend could be fitted: {fit['reason']}\"})\n",
    "        return result\n",
    "    base_slice = slice(baseline_from, baseline_to)\n",
    "    cur_slice = slice(len(impressions) - current_days, len(impressions))\n",
    "    n0, c0 = float(impressions[base_slice].sum()), float(clicks[base_slice].sum())\n",
    "    n1, c1 = float(impressions[cur_slice].sum()), float(clicks[cur_slice].sum())\n",
    "    lo, hi = no_change_range(c0, n0, c1, n1, z_gate)\n",
    "    result.update({\n",
    "        \"rung\": \"no-change range\",\n",
    "        \"baseline_impressions\": n0, \"baseline_clicks\": c0,\n",
    "        \"current_impressions\": n1, \"current_clicks\": c1,\n",
    "        \"baseline_ctr\": (c0 / n0) if n0 > 0 else 0.0,\n",
    "        \"current_ctr\": (c1 / n1) if n1 > 0 else 0.0,\n",
    "        \"z\": two_proportion_z(c0, n0, c1, n1),\n",
    "        \"relative_drop\": relative_drop(c0, n0, c1, n1),\n",
    "        \"no_change_low\": lo, \"no_change_high\": hi,\n",
    "        \"frequency_rise\": frequency_rise(frequency[cur_slice]) if has_exposure else float(\"nan\"),\n",
    "    })\n",
    "    if n0 < min_impressions or n1 < min_impressions:\n",
    "        result.update({\"rung\": \"silence\", \"verdict\": \"INSUFFICIENT\",\n",
    "                       \"reason\": \"not enough impressions in the baseline or current window to judge\"})\n",
    "        return result\n",
    "    declining = result[\"z\"] >= z_gate and result[\"relative_drop\"] >= rel_floor\n",
    "    if not declining:\n",
    "        result.update({\"verdict\": \"STEADY\",\n",
    "                       \"reason\": \"the current rate sits inside the range it would land in unchanged\"})\n",
    "        return result\n",
    "    if has_exposure and result[\"frequency_rise\"] >= freq_rise_floor:\n",
    "        result.update({\"verdict\": \"FATIGUE_RANGE\",\n",
    "                       \"reason\": \"below the no-change range while exposure rose materially - a decline and its size, no onset or rate\"})\n",
    "    else:\n",
    "        result.update({\"verdict\": \"DECLINE_ONLY\",\n",
    "                       \"reason\": \"below the no-change range but exposure did not rise - look elsewhere for the cause\"})\n",
    "    return result\n",
    "\n",
    "\n",
    "def naive_best_week(impressions, clicks, drop_threshold=0.20, min_impressions=MIN_IMPRESSIONS,\n",
    "                    current_days=CURRENT_DAYS):\n",
    "    \"\"\"The reflex rule, run fairly: this week against the best week the creative ever had.\n",
    "\n",
    "    Week against week, like against like. It still fails, because the best week it ever had\n",
    "    is by construction an extreme draw, and a percentage carries no information about how\n",
    "    much a rate of this size wobbles at this volume. Returns True when it fires.\n",
    "    \"\"\"\n",
    "    impressions = np.asarray(impressions, dtype=float)\n",
    "    clicks = np.asarray(clicks, dtype=float)\n",
    "    if len(impressions) <= current_days:\n",
    "        return False\n",
    "    cur = slice(len(impressions) - current_days, len(impressions))\n",
    "    n1 = impressions[cur].sum()\n",
    "    if n1 < min_impressions:\n",
    "        return False\n",
    "    current = clicks[cur].sum() / n1\n",
    "    history_end = len(impressions) - current_days\n",
    "    best = 0.0\n",
    "    for start in range(0, history_end - current_days + 1):\n",
    "        window = slice(start, start + current_days)\n",
    "        n = impressions[window].sum()\n",
    "        if n <= 0:\n",
    "            continue\n",
    "        best = max(best, clicks[window].sum() / n)\n",
    "    if best <= 0:\n",
    "        return False\n",
    "    return bool((best - current) / best >= drop_threshold)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ad31c722",
   "metadata": {},
   "source": [
    "## A synthetic account with the answer built in\n",
    "\n",
    "Three kinds of creative, each at three volume levels, sixty days each. The\n",
    "generator knows which is which; the method does not.\n",
    "\n",
    "* **Steady**: the true rate never changes. Exposure sits flat because the\n",
    "  audience keeps refreshing. Any bend found here is a false onset.\n",
    "* **Fatiguing**: the reachable audience saturates, so each new impression\n",
    "  increasingly lands on someone who has already seen the ad. Exposure climbs,\n",
    "  and the true rate falls *with exposure*, from a known onset at a known rate.\n",
    "  This is the case the method exists for, and the truth is written down so the\n",
    "  fit can be scored against it.\n",
    "* **External drop**: the true rate steps down on one day from something\n",
    "  outside the creative: a competitor, a seasonal dip, a bid change. Exposure\n",
    "  stays flat. Calling this fatigue is the expensive mistake, because the fix it\n",
    "  proposes is to replace a creative that was never the problem."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4e75a2ed",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:40.288499Z",
     "iopub.status.busy": "2026-10-24T12:45:40.287752Z",
     "iopub.status.idle": "2026-10-24T12:45:40.398288Z",
     "shell.execute_reply": "2026-10-24T12:45:40.391930Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tier</th>\n",
       "      <th>truth</th>\n",
       "      <th>rung</th>\n",
       "      <th>verdict</th>\n",
       "      <th>onset</th>\n",
       "      <th>decay</th>\n",
       "      <th>z</th>\n",
       "      <th>naive_fires</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>thin</td>\n",
       "      <td>steady</td>\n",
       "      <td>no-change range</td>\n",
       "      <td>STEADY</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.28</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>thin</td>\n",
       "      <td>fatiguing</td>\n",
       "      <td>no-change range</td>\n",
       "      <td>FATIGUE_RANGE</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.26</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>thin</td>\n",
       "      <td>external</td>\n",
       "      <td>no-change range</td>\n",
       "      <td>STEADY</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.93</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>mid</td>\n",
       "      <td>steady</td>\n",
       "      <td>no-change range</td>\n",
       "      <td>STEADY</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.82</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>mid</td>\n",
       "      <td>fatiguing</td>\n",
       "      <td>fitted decay</td>\n",
       "      <td>FATIGUE_FITTED</td>\n",
       "      <td>2.46</td>\n",
       "      <td>0.08</td>\n",
       "      <td>NaN</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>mid</td>\n",
       "      <td>external</td>\n",
       "      <td>no-change range</td>\n",
       "      <td>DECLINE_ONLY</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.28</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>high</td>\n",
       "      <td>steady</td>\n",
       "      <td>no-change range</td>\n",
       "      <td>STEADY</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.37</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>high</td>\n",
       "      <td>fatiguing</td>\n",
       "      <td>fitted decay</td>\n",
       "      <td>FATIGUE_FITTED</td>\n",
       "      <td>2.38</td>\n",
       "      <td>0.08</td>\n",
       "      <td>NaN</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>high</td>\n",
       "      <td>external</td>\n",
       "      <td>no-change range</td>\n",
       "      <td>DECLINE_ONLY</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>10.89</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   tier      truth             rung         verdict  onset  decay      z  \\\n",
       "0  thin     steady  no-change range          STEADY    NaN    NaN  -0.28   \n",
       "1  thin  fatiguing  no-change range   FATIGUE_RANGE    NaN    NaN   2.26   \n",
       "2  thin   external  no-change range          STEADY    NaN    NaN   1.93   \n",
       "3   mid     steady  no-change range          STEADY    NaN    NaN   0.82   \n",
       "4   mid  fatiguing     fitted decay  FATIGUE_FITTED   2.46   0.08    NaN   \n",
       "5   mid   external  no-change range    DECLINE_ONLY    NaN    NaN   3.28   \n",
       "6  high     steady  no-change range          STEADY    NaN    NaN  -0.37   \n",
       "7  high  fatiguing     fitted decay  FATIGUE_FITTED   2.38   0.08    NaN   \n",
       "8  high   external  no-change range    DECLINE_ONLY    NaN    NaN  10.89   \n",
       "\n",
       "   naive_fires  \n",
       "0        False  \n",
       "1         True  \n",
       "2         True  \n",
       "3        False  \n",
       "4         True  \n",
       "5         True  \n",
       "6        False  \n",
       "7         True  \n",
       "8         True  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "DAYS = 60\n",
    "TIERS = {\"thin\": 400, \"mid\": 2_500, \"high\": 12_000}\n",
    "BASE_CTR = 0.0180\n",
    "ONSET_F = 2.6            # true onset, impressions per person - roughly three weeks in at this saturation\n",
    "LAMBDA = 0.09            # true decay per unit of exposure: about a third of the rate gone by day 60\n",
    "AUDIENCE_MULT = 9.0      # reachable pool relative to a day's delivery; sets how fast exposure climbs\n",
    "EXTERNAL_DAY, EXTERNAL_FACTOR = 38, 0.72\n",
    "\n",
    "\n",
    "def make_creative(kind, daily_impressions, generator, days=DAYS):\n",
    "    \"\"\"One creative's daily series, with its truth recorded alongside.\n",
    "\n",
    "    Exposure is impressions per reached person, cumulative — the shape a platform reports.\n",
    "    It rises only when the reachable audience saturates, which is the mechanism fatigue runs on.\n",
    "    \"\"\"\n",
    "    impressions = np.maximum(generator.poisson(daily_impressions, days).astype(float), 1.0)\n",
    "    cum = np.cumsum(impressions)\n",
    "    if kind == \"fatiguing\":\n",
    "        audience = daily_impressions * AUDIENCE_MULT\n",
    "        reach = audience * (1 - np.exp(-cum / audience))\n",
    "        frequency = cum / np.maximum(reach, 1.0)\n",
    "    else:\n",
    "        frequency = np.full(days, 1.35)\n",
    "    frequency = frequency * np.exp(generator.normal(0.0, 0.02, days))\n",
    "\n",
    "    if kind == \"steady\":\n",
    "        true_ctr = np.full(days, BASE_CTR)\n",
    "    elif kind == \"fatiguing\":\n",
    "        true_ctr = BASE_CTR * np.exp(-LAMBDA * np.maximum(frequency - ONSET_F, 0.0))\n",
    "    elif kind == \"external\":\n",
    "        true_ctr = np.full(days, BASE_CTR)\n",
    "        true_ctr[EXTERNAL_DAY:] = BASE_CTR * EXTERNAL_FACTOR\n",
    "    else:\n",
    "        raise ValueError(f\"unknown kind: {kind}\")\n",
    "\n",
    "    clicks = generator.binomial(impressions.astype(int), true_ctr).astype(float)\n",
    "    return {\"kind\": kind, \"impressions\": impressions, \"clicks\": clicks,\n",
    "            \"frequency\": frequency, \"true_ctr\": true_ctr}\n",
    "\n",
    "\n",
    "account = {}\n",
    "for tier, volume in TIERS.items():\n",
    "    for kind in (\"steady\", \"fatiguing\", \"external\"):\n",
    "        account[(tier, kind)] = make_creative(kind, volume, rng)\n",
    "\n",
    "rows = []\n",
    "for (tier, kind), creative in account.items():\n",
    "    verdict = score_creative(creative[\"impressions\"], creative[\"clicks\"], creative[\"frequency\"])\n",
    "    rows.append({\n",
    "        \"tier\": tier, \"truth\": kind, \"rung\": verdict[\"rung\"], \"verdict\": verdict[\"verdict\"],\n",
    "        \"onset\": round(verdict.get(\"onset\", float(\"nan\")), 2),\n",
    "        \"decay\": round(verdict.get(\"decay\", float(\"nan\")), 3),\n",
    "        \"z\": round(verdict.get(\"z\", float(\"nan\")), 2),\n",
    "        \"naive_fires\": naive_best_week(creative[\"impressions\"], creative[\"clicks\"]),\n",
    "    })\n",
    "account_table = pd.DataFrame(rows)\n",
    "account_table"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ab2dc2a2",
   "metadata": {},
   "source": [
    "## Figure 1: the same creative on two axes\n",
    "\n",
    "One fatiguing creative, mid volume. On the calendar it is a rate that drifts down\n",
    "through noise. On the exposure axis it is a level, a bend and a decay, and the\n",
    "fit reads all three off the curve, with the true curve drawn behind it for\n",
    "comparison (known here, never in real data)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "6b268693",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:40.409803Z",
     "iopub.status.busy": "2026-10-24T12:45:40.409100Z",
     "iopub.status.idle": "2026-10-24T12:45:41.410192Z",
     "shell.execute_reply": "2026-10-24T12:45:41.397931Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1100x460 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\n",
      "  \"verdict\": \"FATIGUE_FITTED\",\n",
      "  \"level\": 0.017785465317953587,\n",
      "  \"onset\": 2.457204203803572,\n",
      "  \"decay\": 0.07992213296219657,\n",
      "  \"level_range\": [\n",
      "    0.016976694122900166,\n",
      "    0.01859423651300701\n",
      "  ],\n",
      "  \"onset_range\": [\n",
      "    1.2349720937621065,\n",
      "    3.5572131028408913\n",
      "  ],\n",
      "  \"decay_range\": [\n",
      "    0.04854883520358989,\n",
      "    0.12528125736411122\n",
      "  ]\n",
      "}\n"
     ]
    }
   ],
   "source": [
    "focus = account[(\"mid\", \"fatiguing\")]\n",
    "focus_verdict = score_creative(focus[\"impressions\"], focus[\"clicks\"], focus[\"frequency\"])\n",
    "focus_fit = focus_verdict[\"fit\"]\n",
    "focus_ctr = focus[\"clicks\"] / focus[\"impressions\"]\n",
    "days = np.arange(DAYS)\n",
    "\n",
    "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(11, 4.6))\n",
    "ax1.plot(days, 100 * focus_ctr, \"o\", color=MUTED, ms=3.5, alpha=0.7, label=\"daily rate\")\n",
    "ax1.plot(days, 100 * focus[\"true_ctr\"], color=INK, lw=1.8, label=\"true rate\")\n",
    "ax1.set_xlabel(\"day\")\n",
    "ax1.set_ylabel(\"click-through rate (%)\")\n",
    "ax1.set_title(\"On the calendar: a drift through noise\", loc=\"left\", fontsize=11)\n",
    "ax1.legend(frameon=False, fontsize=9)\n",
    "\n",
    "f_grid = np.linspace(focus[\"frequency\"].min(), focus[\"frequency\"].max(), 200)\n",
    "ax2.plot(focus[\"frequency\"], 100 * focus_ctr, \"o\", color=MUTED, ms=3.5, alpha=0.7, label=\"daily rate\")\n",
    "ax2.plot(f_grid, 100 * BASE_CTR * np.exp(-LAMBDA * np.maximum(f_grid - ONSET_F, 0)),\n",
    "         color=INK, lw=1.8, label=\"true curve\")\n",
    "ax2.plot(f_grid, 100 * model_curve(focus_fit[\"a\"], focus_fit[\"psi\"], focus_fit[\"lam\"], f_grid),\n",
    "         color=SIGNAL, lw=2.4, label=\"fitted bend\")\n",
    "ax2.axvspan(focus_fit[\"psi_range\"][0], focus_fit[\"psi_range\"][1], color=SIGNAL, alpha=0.10)\n",
    "ax2.axvline(focus_fit[\"psi\"], color=SIGNAL, lw=1.0, ls=\"--\")\n",
    "ax2.annotate(f\"onset {focus_fit['psi']:.2f}\", (focus_fit[\"psi\"], 100 * focus_fit[\"a\"]),\n",
    "             textcoords=\"offset points\", xytext=(8, 10), color=SIGNAL, fontsize=9)\n",
    "ax2.set_xlabel(\"impressions per person reached (cumulative)\")\n",
    "ax2.set_title(\"On the exposure axis: a level, a bend, a decay\", loc=\"left\", fontsize=11)\n",
    "ax2.legend(frameon=False, fontsize=9)\n",
    "\n",
    "fig.tight_layout()\n",
    "fig.savefig(FIGURES / \"fig_two_axes.png\", dpi=150, bbox_inches=\"tight\")\n",
    "plt.show()\n",
    "plt.close(fig)\n",
    "\n",
    "print(json.dumps({k: focus_verdict[k] for k in (\"verdict\", \"level\", \"onset\", \"decay\",\n",
    "                                                 \"level_range\", \"onset_range\", \"decay_range\")}, indent=2))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c364777d",
   "metadata": {},
   "source": [
    "## Where the calendar breaks: inventory that wears out in days\n",
    "\n",
    "The first version of this method placed its baseline by calendar position (a\n",
    "settled stretch of days 8 to 21) and compared the latest week against it. That\n",
    "needs twenty-eight days of history before it can say anything at all, and it\n",
    "carries an assumption: that a creative's early life is long enough to contain a\n",
    "settled stretch before any fatigue starts. On search inventory it usually is.\n",
    "On social, in-feed video and display it often is not.\n",
    "\n",
    "Here is a three-week social creative. Its reachable pool is small relative to\n",
    "delivery, so exposure passes three impressions per person within the first week\n",
    "and keeps climbing; its response starts falling at an exposure of 1.8 and loses\n",
    "about a fifth of what is left per additional impression per person. The calendar\n",
    "windows cannot be placed inside twenty-one days, so the first version returns\n",
    "nothing. The exposure fit reads the onset and the decay off the curve."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "0e969a2f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:41.427864Z",
     "iopub.status.busy": "2026-10-24T12:45:41.427407Z",
     "iopub.status.idle": "2026-10-24T12:45:41.471215Z",
     "shell.execute_reply": "2026-10-24T12:45:41.466119Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the first version's windows need 28 days; this creative ran 21\n",
      "{\n",
      "  \"verdict\": \"FATIGUE_FITTED\",\n",
      "  \"level\": 0.017201502866415263,\n",
      "  \"onset\": 1.9123002450660063,\n",
      "  \"decay\": 0.19436491190995903,\n",
      "  \"level_range\": [\n",
      "    0.01642721521827941,\n",
      "    0.017975790514551115\n",
      "  ],\n",
      "  \"onset_range\": [\n",
      "    1.9123002450660063,\n",
      "    2.236242195614481\n",
      "  ],\n",
      "  \"decay_range\": [\n",
      "    0.17183905131806992,\n",
      "    0.21213502278774837\n",
      "  ]\n",
      "}\n",
      "exposure at day 7: 2.95; at day 21: 8.44\n"
     ]
    }
   ],
   "source": [
    "SOCIAL_DAYS, SOCIAL_ONSET, SOCIAL_LAMBDA = 21, 1.8, 0.20\n",
    "SOCIAL_IMPRESSIONS, SOCIAL_AUDIENCE_MULT = 6_000, 2.5\n",
    "\n",
    "\n",
    "def social_creative(generator, days=SOCIAL_DAYS, daily_impressions=SOCIAL_IMPRESSIONS):\n",
    "    \"\"\"A three-week social creative: fast saturation, exposure past four within a week.\"\"\"\n",
    "    impressions = np.maximum(generator.poisson(daily_impressions, days).astype(float), 1.0)\n",
    "    cum = np.cumsum(impressions)\n",
    "    audience = daily_impressions * SOCIAL_AUDIENCE_MULT\n",
    "    reach = audience * (1 - np.exp(-cum / audience))\n",
    "    frequency = (cum / np.maximum(reach, 1.0)) * np.exp(generator.normal(0, 0.02, days))\n",
    "    true_ctr = BASE_CTR * np.exp(-SOCIAL_LAMBDA * np.maximum(frequency - SOCIAL_ONSET, 0.0))\n",
    "    clicks = generator.binomial(impressions.astype(int), true_ctr).astype(float)\n",
    "    return {\"impressions\": impressions, \"clicks\": clicks, \"frequency\": frequency, \"true_ctr\": true_ctr}\n",
    "\n",
    "\n",
    "social_sample = social_creative(np.random.default_rng(SEED + 5))\n",
    "social_verdict = score_creative(social_sample[\"impressions\"], social_sample[\"clicks\"], social_sample[\"frequency\"])\n",
    "social_fit = social_verdict[\"fit\"]\n",
    "print(f\"the first version's windows need {CALENDAR_MIN_DAYS} days; this creative ran {SOCIAL_DAYS}\")\n",
    "print(json.dumps({k: social_verdict[k] for k in (\"verdict\", \"level\", \"onset\", \"decay\",\n",
    "                                                  \"level_range\", \"onset_range\", \"decay_range\")}, indent=2))\n",
    "print(f\"exposure at day 7: {social_sample['frequency'][6]:.2f}; at day 21: {social_sample['frequency'][-1]:.2f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5fa765e0",
   "metadata": {},
   "source": [
    "## Figure 2: the fast one, read on both axes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "32491fff",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:41.481073Z",
     "iopub.status.busy": "2026-10-24T12:45:41.478823Z",
     "iopub.status.idle": "2026-10-24T12:45:42.403917Z",
     "shell.execute_reply": "2026-10-24T12:45:42.401162Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1100x460 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(11, 4.6))\n",
    "sdays = np.arange(SOCIAL_DAYS)\n",
    "social_ctr = social_sample[\"clicks\"] / social_sample[\"impressions\"]\n",
    "ax1.plot(sdays, 100 * social_ctr, \"o\", color=MUTED, ms=3.5, alpha=0.7, label=\"daily rate\")\n",
    "ax1.plot(sdays, 100 * social_sample[\"true_ctr\"], color=INK, lw=1.8, label=\"true rate\")\n",
    "ax1.axvspan(BASELINE_FROM, min(BASELINE_TO, SOCIAL_DAYS - 1), color=NAIVE, alpha=0.12)\n",
    "ax1.text(BASELINE_FROM + 1, 100 * social_ctr.max() * 0.98,\n",
    "         f\"the calendar 'baseline' would sit here -\\nand needs {CALENDAR_MIN_DAYS} days in all\",\n",
    "         color=NAIVE, fontsize=8.5, va=\"top\")\n",
    "ax1.set_xlabel(\"day\")\n",
    "ax1.set_ylabel(\"click-through rate (%)\")\n",
    "ax1.set_title(\"Calendar: no window fits inside three weeks\", loc=\"left\", fontsize=11)\n",
    "ax1.legend(frameon=False, fontsize=9, loc=\"lower left\")\n",
    "\n",
    "fg = np.linspace(social_sample[\"frequency\"].min(), social_sample[\"frequency\"].max(), 200)\n",
    "ax2.plot(social_sample[\"frequency\"], 100 * social_ctr, \"o\", color=MUTED, ms=3.5, alpha=0.7, label=\"daily rate\")\n",
    "ax2.plot(fg, 100 * BASE_CTR * np.exp(-SOCIAL_LAMBDA * np.maximum(fg - SOCIAL_ONSET, 0)),\n",
    "         color=INK, lw=1.8, label=\"true curve\")\n",
    "ax2.plot(fg, 100 * model_curve(social_fit[\"a\"], social_fit[\"psi\"], social_fit[\"lam\"], fg),\n",
    "         color=SIGNAL, lw=2.4, label=\"fitted bend\")\n",
    "ax2.axvline(social_fit[\"psi\"], color=SIGNAL, lw=1.0, ls=\"--\")\n",
    "ax2.annotate(f\"onset {social_fit['psi']:.2f}\", (social_fit[\"psi\"], 100 * social_fit[\"a\"]),\n",
    "             textcoords=\"offset points\", xytext=(8, 10), color=SIGNAL, fontsize=9)\n",
    "ax2.set_xlabel(\"impressions per person reached (cumulative)\")\n",
    "ax2.set_title(\"Exposure axis: the bend is right there\", loc=\"left\", fontsize=11)\n",
    "ax2.legend(frameon=False, fontsize=9)\n",
    "fig.tight_layout()\n",
    "fig.savefig(FIGURES / \"fig_fast_decay.png\", dpi=150, bbox_inches=\"tight\")\n",
    "plt.show()\n",
    "plt.close(fig)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "12460184",
   "metadata": {},
   "source": [
    "## Does the fit find the truth, and does it invent one?\n",
    "\n",
    "Two questions, both measured. First, recovery: on three-week social creatives\n",
    "with a known onset and decay, how often does the fit report a bend, and how\n",
    "close is it? Second, false onsets: on steady creatives whose rate never moves,\n",
    "how often does the fit report a bend anyway? The reflex rule (\"down 20% from\n",
    "its best week\") and a seven-day rolling average run on the same steady\n",
    "creatives for comparison."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "73c7f772",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:42.412453Z",
     "iopub.status.busy": "2026-10-24T12:45:42.410654Z",
     "iopub.status.idle": "2026-10-24T12:45:44.114570Z",
     "shell.execute_reply": "2026-10-24T12:45:44.099479Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\n",
      "  \"identified_pct\": 100.0,\n",
      "  \"onset_error_median\": 0.079,\n",
      "  \"onset_error_iqr\": [\n",
      "    -0.024,\n",
      "    0.258\n",
      "  ],\n",
      "  \"onset_within_a_tenth_pct\": 53.7,\n",
      "  \"onset_range_holds_truth_pct\": 68.7,\n",
      "  \"decay_ratio_median\": 1.033,\n",
      "  \"decay_ratio_iqr\": [\n",
      "    0.97,\n",
      "    1.076\n",
      "  ]\n",
      "}\n"
     ]
    }
   ],
   "source": [
    "RECOVERY_REPS = 300\n",
    "\n",
    "\n",
    "def recovery_study(reps=RECOVERY_REPS, seed=SEED + 11):\n",
    "    generator = np.random.default_rng(seed)\n",
    "    found, onset_err, decay_ratio, held = 0, [], [], 0\n",
    "    for _ in range(reps):\n",
    "        creative = social_creative(generator)\n",
    "        fit = hinge_fit(creative[\"frequency\"], creative[\"clicks\"], creative[\"impressions\"])\n",
    "        if fit[\"identified\"]:\n",
    "            found += 1\n",
    "            onset_err.append(fit[\"psi\"] - SOCIAL_ONSET)\n",
    "            # On three weeks of fast inventory the range's lower edge is mostly the lowest onset the\n",
    "            # fit allows (three days before it), not a measured bound, so count how often it holds.\n",
    "            held += int(fit[\"psi_range\"][0] <= SOCIAL_ONSET <= fit[\"psi_range\"][1])\n",
    "            decay_ratio.append(fit[\"lam\"] / SOCIAL_LAMBDA)\n",
    "    err, ratio = np.array(onset_err), np.array(decay_ratio)\n",
    "    return {\n",
    "        \"identified_pct\": round(100 * found / reps, 1),\n",
    "        \"onset_error_median\": round(float(np.median(err)), 3),\n",
    "        \"onset_error_iqr\": [round(float(np.quantile(err, .25)), 3), round(float(np.quantile(err, .75)), 3)],\n",
    "        \"onset_within_a_tenth_pct\": round(100 * float(np.mean(np.abs(err) <= 0.1)), 1),\n",
    "        \"onset_range_holds_truth_pct\": round(100 * held / max(found, 1), 1),\n",
    "        \"decay_ratio_median\": round(float(np.median(ratio)), 3),\n",
    "        \"decay_ratio_iqr\": [round(float(np.quantile(ratio, .25)), 3), round(float(np.quantile(ratio, .75)), 3)],\n",
    "    }\n",
    "\n",
    "\n",
    "recovery = recovery_study()\n",
    "print(json.dumps(recovery, indent=2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "54b0e903",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:45:44.136282Z",
     "iopub.status.busy": "2026-10-24T12:45:44.135239Z",
     "iopub.status.idle": "2026-10-24T12:46:02.865201Z",
     "shell.execute_reply": "2026-10-24T12:46:02.863693Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tier</th>\n",
       "      <th>daily_impressions</th>\n",
       "      <th>reps</th>\n",
       "      <th>naive_fires</th>\n",
       "      <th>fit_fires</th>\n",
       "      <th>rolling_fires</th>\n",
       "      <th>naive_false_alarm_pct</th>\n",
       "      <th>fit_false_onset_pct</th>\n",
       "      <th>rolling7_false_onset_pct</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>thin</td>\n",
       "      <td>400</td>\n",
       "      <td>400</td>\n",
       "      <td>213</td>\n",
       "      <td>0</td>\n",
       "      <td>62</td>\n",
       "      <td>53.25</td>\n",
       "      <td>0.0</td>\n",
       "      <td>15.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>mid</td>\n",
       "      <td>2500</td>\n",
       "      <td>400</td>\n",
       "      <td>16</td>\n",
       "      <td>0</td>\n",
       "      <td>69</td>\n",
       "      <td>4.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>17.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>high</td>\n",
       "      <td>12000</td>\n",
       "      <td>400</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>56</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>14.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   tier  daily_impressions  reps  naive_fires  fit_fires  rolling_fires  \\\n",
       "0  thin                400   400          213          0             62   \n",
       "1   mid               2500   400           16          0             69   \n",
       "2  high              12000   400            0          0             56   \n",
       "\n",
       "   naive_false_alarm_pct  fit_false_onset_pct  rolling7_false_onset_pct  \n",
       "0                  53.25                  0.0                     15.50  \n",
       "1                   4.00                  0.0                     17.25  \n",
       "2                   0.00                  0.0                     14.00  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "FALSE_REPS = 400\n",
    "\n",
    "\n",
    "def rolling_rate(clicks, impressions, f, k):\n",
    "    \"\"\"A rolling window done honestly for a proportion: rolling sums, the rate as their ratio,\n",
    "    each point placed at the window's impression-weighted exposure and weighted by its total.\"\"\"\n",
    "    kernel = np.ones(k)\n",
    "    c = np.convolve(clicks, kernel, mode=\"valid\")\n",
    "    n = np.convolve(impressions, kernel, mode=\"valid\")\n",
    "    fx = np.convolve(f * impressions, kernel, mode=\"valid\") / n\n",
    "    return fx, c, n\n",
    "\n",
    "\n",
    "def false_onset_rates(reps=FALSE_REPS, seed=SEED + 1):\n",
    "    \"\"\"Steady creatives only: every bend, every alarm, is false by construction.\"\"\"\n",
    "    generator = np.random.default_rng(seed)\n",
    "    out = []\n",
    "    for tier, volume in TIERS.items():\n",
    "        naive_fires = fit_fires = rolling_fires = 0\n",
    "        for _ in range(reps):\n",
    "            creative = make_creative(\"steady\", volume, generator)\n",
    "            # a steady creative's exposure sits flat, so give the fit a rising axis to be\n",
    "            # tempted by: the same saturating exposure a fatiguing creative would show\n",
    "            audience = volume * AUDIENCE_MULT\n",
    "            cum = np.cumsum(creative[\"impressions\"])\n",
    "            rising = cum / np.maximum(audience * (1 - np.exp(-cum / audience)), 1.0)\n",
    "            if naive_best_week(creative[\"impressions\"], creative[\"clicks\"]):\n",
    "                naive_fires += 1\n",
    "            if hinge_fit(rising, creative[\"clicks\"], creative[\"impressions\"])[\"identified\"]:\n",
    "                fit_fires += 1\n",
    "            rf, rc, rn = rolling_rate(creative[\"clicks\"], creative[\"impressions\"], rising, 7)\n",
    "            if hinge_fit(rf, rc, rn)[\"identified\"]:\n",
    "                rolling_fires += 1\n",
    "        out.append({\n",
    "            \"tier\": tier, \"daily_impressions\": volume, \"reps\": reps,\n",
    "            \"naive_fires\": naive_fires, \"fit_fires\": fit_fires, \"rolling_fires\": rolling_fires,\n",
    "            \"naive_false_alarm_pct\": 100 * naive_fires / reps,\n",
    "            \"fit_false_onset_pct\": 100 * fit_fires / reps,\n",
    "            \"rolling7_false_onset_pct\": 100 * rolling_fires / reps,\n",
    "        })\n",
    "    return pd.DataFrame(out)\n",
    "\n",
    "\n",
    "false_onsets = false_onset_rates()\n",
    "false_onsets"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa73f447",
   "metadata": {},
   "source": [
    "**Why not just smooth it?** A rolling average is the first thing anyone reaches\n",
    "for, and on the chart it looks like it helps. As a *detector* it is worse than\n",
    "the raw points: the rolling seven-day reading above finds bends on steady\n",
    "creatives far more often than the unsmoothed fit does. Smoothing makes\n",
    "neighbouring points share data, and the identification test reads that shared\n",
    "structure as a bend. A smoothed line is how to show the curve; the verdict\n",
    "comes from the unsmoothed fit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "59ee636e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:46:02.888282Z",
     "iopub.status.busy": "2026-10-24T12:46:02.886912Z",
     "iopub.status.idle": "2026-10-24T12:46:03.407437Z",
     "shell.execute_reply": "2026-10-24T12:46:03.406396Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 880x420 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8.8, 4.2))\n",
    "x = np.arange(len(false_onsets))\n",
    "width = 0.26\n",
    "ax.bar(x - width, false_onsets[\"naive_false_alarm_pct\"], width, color=NAIVE, label=\"'down 20% from its best week'\")\n",
    "ax.bar(x, false_onsets[\"rolling7_false_onset_pct\"], width, color=FATIGUE, label=\"bend fitted on a 7-day rolling average\")\n",
    "ax.bar(x + width, false_onsets[\"fit_false_onset_pct\"], width, color=SIGNAL, label=\"bend fitted on the raw points\")\n",
    "for i, row in false_onsets.iterrows():\n",
    "    ax.text(i - width, row[\"naive_false_alarm_pct\"] + 1.5, f\"{row['naive_false_alarm_pct']:.0f}%\",\n",
    "            ha=\"center\", color=NAIVE, fontsize=9)\n",
    "    ax.text(i, row[\"rolling7_false_onset_pct\"] + 1.5, f\"{row['rolling7_false_onset_pct']:.0f}%\",\n",
    "            ha=\"center\", color=FATIGUE, fontsize=9)\n",
    "    ax.text(i + width, row[\"fit_false_onset_pct\"] + 1.5, f\"{row['fit_false_onset_pct']:.1f}%\",\n",
    "            ha=\"center\", color=SIGNAL, fontsize=9)\n",
    "ax.set_xticks(x)\n",
    "ax.set_xticklabels([f\"{t}\\n{v:,}/day\" for t, v in zip(false_onsets[\"tier\"], false_onsets[\"daily_impressions\"])])\n",
    "ax.set_ylabel(\"steady creatives flagged (%)\")\n",
    "ax.set_title(\"How often each reading finds fatigue in a creative whose rate never moved\",\n",
    "             loc=\"left\", fontsize=12)\n",
    "ax.legend(frameon=False, fontsize=9)\n",
    "fig.tight_layout()\n",
    "fig.savefig(FIGURES / \"fig_false_onsets.png\", dpi=150, bbox_inches=\"tight\")\n",
    "plt.show()\n",
    "plt.close(fig)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "407cc89c",
   "metadata": {},
   "source": [
    "## What defeats both\n",
    "\n",
    "One shape defeats the calendar windows *and* the single-bend fit, and it is\n",
    "worth measuring rather than hiding: a creative that loses 45% of its rate inside\n",
    "its first week and then **holds** at the new level for the rest of its life.\n",
    "The calendar windows both sit after the decline, so the \"baseline\" they measure\n",
    "is the fatigued rate, and they call the creative steady. The fit fails for two\n",
    "reasons the method itself names: the decline starts before three days are in,\n",
    "so there is no level to fit a bend from; and a decline that then holds is not a\n",
    "decline that continues, which is the only shape a single bend can express. A\n",
    "decay to a floor, or a second bend, is the designed extension, and until it is\n",
    "built, this creative is the method's declared limit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "eae95500",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:46:03.415948Z",
     "iopub.status.busy": "2026-10-24T12:46:03.415181Z",
     "iopub.status.idle": "2026-10-24T12:48:43.126169Z",
     "shell.execute_reply": "2026-10-24T12:48:43.124574Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a creative that loses 45% of its rate in its first seven days, then holds:\n",
      "  true rate on day 0 : 1.800%\n",
      "  true rate on day 7 : 1.106%\n",
      "  the calendar baseline (days 8-21) averages 0.990% - the decay is already inside it\n",
      "  calendar windows, over 300 such creatives: {'INSUFFICIENT': 0.0, 'STEADY': 97.0, 'DECLINE_ONLY': 0.0, 'FATIGUE_RANGE': 3.0}\n",
      "  one bend reports a decay on 10.0% of them\n",
      "  two bends report one on 92.3%, reading the tail as stopped on 96.0% of those\n",
      "  median fitted decline 41.0% against a true 45%, stopping at 3.37 impressions per person\n"
     ]
    }
   ],
   "source": [
    "def plateau_creative(generator, days=DAYS, daily_impressions=3_000, decay_days=7, total_drop=0.45):\n",
    "    \"\"\"A creative that loses most of its rate in its first week, then plateaus.\"\"\"\n",
    "    impressions = np.maximum(generator.poisson(daily_impressions, days).astype(float), 1.0)\n",
    "    fraction_done = np.clip(np.arange(days) / decay_days, 0, 1)\n",
    "    true_ctr = BASE_CTR * (1 - total_drop * fraction_done)\n",
    "    cum = np.cumsum(impressions)\n",
    "    audience = daily_impressions * 2.2\n",
    "    reach = audience * (1 - np.exp(-cum / audience))\n",
    "    frequency = (cum / np.maximum(reach, 1.0)) * np.exp(generator.normal(0, 0.02, days))\n",
    "    clicks = generator.binomial(impressions.astype(int), true_ctr).astype(float)\n",
    "    return {\"impressions\": impressions, \"clicks\": clicks, \"frequency\": frequency, \"true_ctr\": true_ctr}\n",
    "\n",
    "\n",
    "PLATEAU_REPS = 300\n",
    "\n",
    "\n",
    "def plateau_readings(reps=PLATEAU_REPS, seed=SEED + 7):\n",
    "    \"\"\"The plateau creative read three ways over many runs: the first version's calendar\n",
    "    windows (with the frequency gate they used), the single-bend fit, and the second bend.\n",
    "\n",
    "    The third reading is the point of the exercise. The first two are what the method could\n",
    "    do before it, and both of them report a creative that lost 45% of its response as healthy.\n",
    "    \"\"\"\n",
    "    generator = np.random.default_rng(seed)\n",
    "    calendar = {\"INSUFFICIENT\": 0, \"STEADY\": 0, \"DECLINE_ONLY\": 0, \"FATIGUE_RANGE\": 0}\n",
    "    fitted = two_bend_hits = stopped = 0\n",
    "    drops, stops = [], []\n",
    "    for _ in range(reps):\n",
    "        creative = plateau_creative(generator)\n",
    "        n0 = creative[\"impressions\"][BASELINE_FROM:BASELINE_TO].sum()\n",
    "        c0 = creative[\"clicks\"][BASELINE_FROM:BASELINE_TO].sum()\n",
    "        n1 = creative[\"impressions\"][-CURRENT_DAYS:].sum()\n",
    "        c1 = creative[\"clicks\"][-CURRENT_DAYS:].sum()\n",
    "        z = two_proportion_z(c0, n0, c1, n1)\n",
    "        rel = relative_drop(c0, n0, c1, n1)\n",
    "        rise = frequency_rise(creative[\"frequency\"][-CURRENT_DAYS:])\n",
    "        if n0 < MIN_IMPRESSIONS or n1 < MIN_IMPRESSIONS:\n",
    "            calendar[\"INSUFFICIENT\"] += 1\n",
    "        elif not (z >= Z_GATE and rel >= REL_FLOOR):\n",
    "            calendar[\"STEADY\"] += 1\n",
    "        elif rise >= FREQ_RISE_FLOOR:\n",
    "            calendar[\"FATIGUE_RANGE\"] += 1\n",
    "        else:\n",
    "            calendar[\"DECLINE_ONLY\"] += 1\n",
    "        one = hinge_fit(creative[\"frequency\"], creative[\"clicks\"], creative[\"impressions\"])\n",
    "        fitted += int(one[\"identified\"])\n",
    "        # Ranges ARE needed here: whether the tail has stopped is read off the second rate's\n",
    "        # range, so a run without them cannot answer the question this study is asking.\n",
    "        two = two_bend_fit(creative[\"frequency\"], creative[\"clicks\"], creative[\"impressions\"],\n",
    "                           one_bend=one)\n",
    "        if two[\"identified\"]:\n",
    "            two_bend_hits += 1\n",
    "            stopped += int(two[\"second_segment\"] == \"stopped\")\n",
    "            drops.append(100 * two[\"total_drop\"])\n",
    "            stops.append(two[\"psi2\"])\n",
    "    second = {\"identified_pct\": 100 * two_bend_hits / reps,\n",
    "              \"read_as_stopped_pct\": 100 * stopped / max(two_bend_hits, 1) if two_bend_hits else 0.0,\n",
    "              \"fitted_drop_pct_median\": float(np.median(drops)) if drops else float(\"nan\"),\n",
    "              \"stop_exposure_median\": float(np.median(stops)) if stops else float(\"nan\")}\n",
    "    return {k: 100 * v / reps for k, v in calendar.items()}, 100 * fitted / reps, second\n",
    "\n",
    "\n",
    "plateau_calendar, plateau_fitted_pct, plateau_second = plateau_readings()\n",
    "plateau_sample = plateau_creative(np.random.default_rng(SEED + 7))\n",
    "plateau_fit = hinge_fit(plateau_sample[\"frequency\"], plateau_sample[\"clicks\"], plateau_sample[\"impressions\"])\n",
    "plateau_two = two_bend_fit(plateau_sample[\"frequency\"], plateau_sample[\"clicks\"],\n",
    "                           plateau_sample[\"impressions\"], one_bend=plateau_fit)\n",
    "print(\"a creative that loses 45% of its rate in its first seven days, then holds:\")\n",
    "print(f\"  true rate on day 0 : {100 * plateau_sample['true_ctr'][0]:.3f}%\")\n",
    "print(f\"  true rate on day 7 : {100 * plateau_sample['true_ctr'][6]:.3f}%\")\n",
    "print(f\"  the calendar baseline (days {BASELINE_FROM + 1}-{BASELINE_TO}) averages \"\n",
    "      f\"{100 * plateau_sample['true_ctr'][BASELINE_FROM:BASELINE_TO].mean():.3f}% - the decay is already inside it\")\n",
    "print(f\"  calendar windows, over {PLATEAU_REPS} such creatives: {plateau_calendar}\")\n",
    "print(f\"  one bend reports a decay on {plateau_fitted_pct:.1f}% of them\")\n",
    "print(f\"  two bends report one on {plateau_second['identified_pct']:.1f}%, \"\n",
    "      f\"reading the tail as stopped on {plateau_second['read_as_stopped_pct']:.1f}% of those\")\n",
    "print(f\"  median fitted decline {plateau_second['fitted_drop_pct_median']:.1f}% against a true 45%, \"\n",
    "      f\"stopping at {plateau_second['stop_exposure_median']:.2f} impressions per person\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "59706234",
   "metadata": {},
   "source": [
    "## The confounder: what the axis makes automatic, and what it does not\n",
    "\n",
    "On the exposure axis a decline is, by construction, a decline *in exposure*: a\n",
    "creative whose exposure never moved has no spread on the axis to fit a slope\n",
    "against, so the bend is simply not identified. The old confounder gate (\"a\n",
    "decline counts as fatigue only when frequency rose\") is no longer a separate\n",
    "test at the top rung. It is a consequence of the axis.\n",
    "\n",
    "It survives at the fallback rung, where two calendar windows still need it. The\n",
    "external-drop creative is the case: its rate steps down by a similar amount to\n",
    "the fatiguing one, and its exposure sits flat. Here is how every truth lands on\n",
    "every verdict at the highest volume, and beside it what the fallback gate does\n",
    "in its obvious-but-wrong form (\"is the slope above zero\"), which passes on\n",
    "arithmetic, because cumulative exposure drifts upward on nearly every creative."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "d0bbb3d2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:43.129945Z",
     "iopub.status.busy": "2026-10-24T12:48:43.129656Z",
     "iopub.status.idle": "2026-10-24T12:48:45.532996Z",
     "shell.execute_reply": "2026-10-24T12:48:45.532189Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>INSUFFICIENT</th>\n",
       "      <th>STEADY</th>\n",
       "      <th>DECLINE_ONLY</th>\n",
       "      <th>FATIGUE_RANGE</th>\n",
       "      <th>FATIGUE_FITTED</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>steady</th>\n",
       "      <td>0.0</td>\n",
       "      <td>99.5</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>fatiguing</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>external</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>99.5</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           INSUFFICIENT  STEADY  DECLINE_ONLY  FATIGUE_RANGE  FATIGUE_FITTED\n",
       "steady              0.0    99.5           0.5            0.0             0.0\n",
       "fatiguing           0.0     0.0           0.0            0.0           100.0\n",
       "external            0.0     0.0          99.5            0.5             0.0"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "CONFUSION_REPS = 200\n",
    "VERDICTS = [\"INSUFFICIENT\", \"STEADY\", \"DECLINE_ONLY\", \"FATIGUE_RANGE\", \"FATIGUE_FITTED\"]\n",
    "\n",
    "\n",
    "def confusion_study(reps=CONFUSION_REPS, seed=SEED + 2, freq_rise_floor=FREQ_RISE_FLOOR):\n",
    "    generator = np.random.default_rng(seed)\n",
    "    counts = {}\n",
    "    for kind in (\"steady\", \"fatiguing\", \"external\"):\n",
    "        tally = {v: 0 for v in VERDICTS}\n",
    "        for _ in range(reps):\n",
    "            creative = make_creative(kind, TIERS[\"high\"], generator)\n",
    "            verdict = score_creative(creative[\"impressions\"], creative[\"clicks\"], creative[\"frequency\"],\n",
    "                                     freq_rise_floor=freq_rise_floor)\n",
    "            tally[verdict[\"verdict\"]] += 1\n",
    "        counts[kind] = {k: 100 * v / reps for k, v in tally.items()}\n",
    "    return pd.DataFrame(counts).T\n",
    "\n",
    "\n",
    "confusion = confusion_study()\n",
    "confusion.round(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "8e2df354",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:45.538746Z",
     "iopub.status.busy": "2026-10-24T12:48:45.538340Z",
     "iopub.status.idle": "2026-10-24T12:48:51.663043Z",
     "shell.execute_reply": "2026-10-24T12:48:51.660790Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "external declines the fallback gate would call fatigue: {'bare_slope_pct': 50.75, 'material_rise_pct': 2.3, 'bare_fires': 1015, 'material_fires': 46}\n"
     ]
    }
   ],
   "source": [
    "GATE_REPS = 2_000\n",
    "\n",
    "\n",
    "def gate_study(reps=GATE_REPS, seed=SEED + 3):\n",
    "    \"\"\"The fallback gate alone, on external-drop creatives: how many of them the bare\n",
    "    positive-slope test would pass as fatigue, against the material-rise floor. Cheap, so\n",
    "    it runs many more times than the full ladder - the residue is a rare event.\"\"\"\n",
    "    generator = np.random.default_rng(seed)\n",
    "    bare = material = 0\n",
    "    for _ in range(reps):\n",
    "        creative = make_creative(\"external\", TIERS[\"high\"], generator)\n",
    "        rise = frequency_rise(creative[\"frequency\"][-CURRENT_DAYS:])\n",
    "        if rise > 0:\n",
    "            bare += 1\n",
    "        if rise >= FREQ_RISE_FLOOR:\n",
    "            material += 1\n",
    "    return {\"bare_slope_pct\": 100 * bare / reps, \"material_rise_pct\": 100 * material / reps,\n",
    "            \"bare_fires\": bare, \"material_fires\": material}\n",
    "\n",
    "\n",
    "gate = gate_study()\n",
    "print(\"external declines the fallback gate would call fatigue:\", gate)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f8d3f213",
   "metadata": {},
   "source": [
    "## Figure 3: the ladder, one creative per rung"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "8d557f93",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:51.674221Z",
     "iopub.status.busy": "2026-10-24T12:48:51.673807Z",
     "iopub.status.idle": "2026-10-24T12:48:52.526628Z",
     "shell.execute_reply": "2026-10-24T12:48:52.524858Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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h719cfwxfQoWLV4msy55f58SERERqRJBQrxIouwgKP9YtXodrly9jovnTyncao7St2r1OmzbsRsPH/wDPT09ZYdDGQgPj0Ctuh4YM2oEBg7oJ/NcTEwMKlWpiZUrlihckkBd/eN1D336DsDBfbvg5lZd2eFkWbcev0FTUwMH9u1SaLnxE6ciJDQUO7dtzp3AiChLsvqdJiIiIsqP8m3LQVKOfx8+wrChg5gYzIb37z/g1JlzqFK5ErS1teF9/wG2bduJnj27MTGowiIiIvH+/QfsO3AQAgjQuVP7VPM8ffocxYoVQ4vmTfM+wHxi5ux5qOVeE2Zmpnj77j3+3LAZrmXLoHr1qpkvrCIuXroCP39/lHJxQUxMNM6cvYAH//sXmzeuU3hd//77CKtWLsmFKIlIXjn5nSYiIiLKj5gcJIXs37sz85koQ/r6+nj06DH2HziEyMgoFC1qiUED+2PM6Iy75pFyPX/xAj1794e1tRWWL1sE0xR1pgCgRo1quHr5bN4Hl4+EhQkxd/4ihISEwMjQCPXq1cG0qROlA5TkBwYGhXDq1Fl8/vIFcbFxcCrhiFUrlqJpJmUn0nLrxuVciJCIFJGT32kiIiKi/IjdiomIiIiIiIiIiNRU/mmqQURERERERERERDmKyUEiIiIiIiIiIiI1xeQgERERERERERGRmmJykIiIiIiIiIiISE0xOUhERERERERERKSmmBwkIiIiIiIiIiJSU0wOEhERERERERERqSkmB4mIiIiIiIiIiNQUk4NERERERERERERqislBIiIiIiIiIiIiNcXkIBERERERERERkZpicpCIiIiIiIiIiEhNMTlIRERERERERESkppgcJCIiIiIiIiIiUlNMDhIREREREREREakpJgeJiIiIiIiIiIjUFJODREREREREREREaorJQSIiIiIiIiIiIjXF5CAREREREREREZGaYnKQiIiIiIiIiIhITTE5SEREREREREREpKaYHCQiIiIiIiIiIlJTTA4SERERERERERGpKSYHiYiIiIiIiIiI1BSTg//p0asf5i1YnOE8Ts6uuHL1utzrvOd9H07OrhAKhQrF8uHDR3Ts3AOlXSujVZuOCi2bkqIxy2PNug3ZjouIiBQjzzklp47PBw8dQe26jVDCpRx27NyT5fUcO34SFavUzHY8KdVt0CRbcRERkXxU6Rqp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r1oPlUoFfz8fTBr3HoKDAg1zgiZCoiiUqYQOgoiIiIiIiIiIiAxPPEv7ERERERERERERUQksDhIREREREREREYkUi4NEREREREREREQixeIgERERERERERGRSLE4SEREREREREREJFIsDhIREREREREREYkUi4NEREREREREREQixeIgCW7ipGkI79Zb6DAM5vyFP1CtRm1E3rgpdChERPQU5iQiIjIWzElEZCgSRaFMJXQQJG7//PMvcvPyEFwrSOhQDCIrKxt3795DUFAN2NvbCx0OERE9gTmJiIiMBXMSERkKi4NEABQKBZRKJaRSqdChmB2ZrABSqRUsLAzfUTk/Px+2trYGf18iopfBnKQ/zElERNphTtIf5iQyJhxWTIJ7urv81m071N3Jhw57ByF1G+KVzt1x+sw5KJVKLFz0DRo3a4PGzdpg/teLoVQq1ccuWbocdeo1wvXIG3i130DUqt0Anbr0xJGjx0u85+A3hmHEO6OxbftOvNK5O2rVboBbf90GABw9dgJ9+g1CcJ0wNGrSCp/O+AK5ubnqY+VyOeZ+9TVatnkFtULqo2mLthj57mhkZmVptL+07vIymQyzv5yHZi3boVbtBujesy8OHDxcajudv/AHevTqh9qhjfBqv4G4cTOqxPM2b9mOLl17IbhOGMIat8CAQUNwPfLGc9s/JiYW1WrUxrbtOzF56nSENmiKBo2aY/aX81BYWFjiufHxCRg3YTIaNmmJ4DphGDh46DPv37pdJ8z8fDZW/vATWrXtiJC6YUhPzyj1vYvP6fiJUwjv1hu1ajdAr1cH4OrV6888d+u2Hejaow9q1W6A5q3a4+tF30ChUJTYX61GbVy5eg1vvjUStUMbYe68rzVqE122PxGZNuYk5iTmJCIyFsxJzEnMSWQoVkIHQPQ8H0+citcHD8TIEW/h+5WrMPr9j9C3b29kZ2dj4YIvce1aJJYsXY6gmjXQu1cP9XGF8kKM+ehjjBjxFgL8/bFh468Y9f5H2LVzC2oF1VQ/78bNm4iNjcW4jz6Ai7MzfHwqYu++Axgz9mP079cHYz96H48eJWP+14uRmZmJpUuKvkBXfP8jNv76GyZNHI+agYFITUvD6dNnUVBQoNH+0owdPwknT53BhHFjUL16VWzfsQujPxiLlSuWouMrHdTPS0pOxuez5uK9d0fAyckJCxYuwXuj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wFfzFyI+IQHNmjaBpYUF/o2OweEjR/Hdt0tgZ/f8Vb7KahNdtj8R0dOYk5iTtGkT5iQi0ifmJOYkbdqEOUlcWBwks2MltcI3ixdgxuez8fftv+Ef4I/vvl2M4FpBZR7brWsXODk54bsVPyBi1+8AAH8/P7Rp00o9P0TDsAbYs28/Vq3+BQpFIapVrYrFC+ehVcvmGu0vzeKF87Bg4RJ8/8MqZKRnoFr1qli+bDFeeaW9VuceWrcOfv5lHfbuPYCs7Gz4VPTGOyPfxgej/1fmsRPGjcGFCxfxwYfjYWFpiSFvDMKE8R+p97u5uWL7lo1YuHgZ5i1YhPS0dLi7u6N+/dBnJunVhpenJyZNHI+v5n2Nf/+NRo0agViz+gd4enionzNyxDB4e3vhp59/wdp1G2FlZYXKlQLQoX1bSP+bz+Jl2kRX7U9E9DTmJOYkbduEOYmI9IU5iTlJ2zZhThIPiaJQphI6CCJdWbJ0OVb99DNuXr8kdCgmIyYmFm3ad8a3SxehW9cuBn3viZOm4cbNKOzfG2HQ9yUiMgTmJO0xJxER6QdzkvaYk0hMOOcgERERERERERGRSLE4SEREREREREREJFIcVkxERERERERERCRS7DlIREREREREREQkUiwOEhERERERERERiRSLg0RERERERERERCLF4iAREREREREREZFIsThIREREREREREQkUiwOEhERERERERERiRSLg0RERERERERERCLF4iAREREREREREZFIsThIREREREREREQkUv8HBWysGgI81zUAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1300x420 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "trio = [(\"high\", \"fatiguing\"), (\"thin\", \"fatiguing\"), (\"high\", \"external\")]\n",
    "fig, axes = plt.subplots(1, 3, figsize=(13, 4.2))\n",
    "for ax, key in zip(axes, trio):\n",
    "    creative = account[key]\n",
    "    verdict = score_creative(creative[\"impressions\"], creative[\"clicks\"], creative[\"frequency\"])\n",
    "    ctr = creative[\"clicks\"] / creative[\"impressions\"]\n",
    "    ax.plot(creative[\"frequency\"], 100 * ctr, \"o\", color=MUTED, ms=3.2, alpha=0.7)\n",
    "    if verdict[\"verdict\"] == \"FATIGUE_FITTED\":\n",
    "        fg = np.linspace(creative[\"frequency\"].min(), creative[\"frequency\"].max(), 200)\n",
    "        ax.plot(fg, 100 * model_curve(verdict[\"level\"], verdict[\"onset\"], verdict[\"decay\"], fg),\n",
    "                color=SIGNAL, lw=2.4)\n",
    "        ax.axvline(verdict[\"onset\"], color=SIGNAL, lw=1.0, ls=\"--\")\n",
    "    elif verdict[\"rung\"] == \"no-change range\":\n",
    "        ax.axhspan(100 * verdict[\"no_change_low\"], 100 * verdict[\"no_change_high\"], color=NAIVE, alpha=0.15)\n",
    "        ax.axhline(100 * verdict[\"current_ctr\"], color=FATIGUE, lw=2.0)\n",
    "    ax.set_title(f\"{key[0]} {key[1]}: {verdict['verdict']}\", loc=\"left\", fontsize=10)\n",
    "    ax.set_xlabel(\"impressions per person\")\n",
    "axes[0].set_ylabel(\"click-through rate (%)\")\n",
    "fig.suptitle(\"Three creatives, three rungs: fitted decay, no-change range, and a decline that is not fatigue\",\n",
    "             x=0.02, ha=\"left\", fontsize=11)\n",
    "fig.tight_layout()\n",
    "fig.savefig(FIGURES / \"fig_ladder.png\", dpi=150, bbox_inches=\"tight\")\n",
    "plt.show()\n",
    "plt.close(fig)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e79e2086",
   "metadata": {},
   "source": [
    "## What real data said\n",
    "\n",
    "The fit was also run on a public dataset of real impressions: thirty days of\n",
    "Criteo display traffic, thirty-one campaigns with three weeks or more of activity\n",
    "and at least a hundred thousand impressions. The results are stored beside this\n",
    "notebook (the raw file is too large to ship and is licensed for research use);\n",
    "the numbers the article quotes are read from that file, not retyped."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "95e8c4b8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:52.533286Z",
     "iopub.status.busy": "2026-10-24T12:48:52.531725Z",
     "iopub.status.idle": "2026-10-24T12:48:52.540558Z",
     "shell.execute_reply": "2026-10-24T12:48:52.539380Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\n",
      "  \"campaigns\": 31,\n",
      "  \"identified_daily_pct\": 0.0,\n",
      "  \"identified_hourly_pct\": 9.7,\n",
      "  \"shuffled_control_identified_pct\": 0.0,\n",
      "  \"shuffled_hourly_control_identified_pct\": 0.0,\n",
      "  \"decay_per_exposure_median\": null,\n",
      "  \"decay_per_exposure_iqr\": null,\n",
      "  \"frequency_end_median\": 2.33\n",
      "}\n"
     ]
    }
   ],
   "source": [
    "# The study's file ships with the article's repository, not with the notebook download; without it\n",
    "# this cell says so and the rest of the notebook runs on.\n",
    "REAL_STUDY = DATA / \"real_data_study.json\"\n",
    "if REAL_STUDY.exists():\n",
    "    real = json.loads(REAL_STUDY.read_text(encoding=\"utf-8\"))[\"summary\"]\n",
    "    print(json.dumps(real, indent=2))\n",
    "else:\n",
    "    real = None\n",
    "    print(\"The real-data study's results file is not next to this notebook, so it is skipped here; \"\n",
    "          \"the article reports its results. Nothing below depends on it.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9fee8de2",
   "metadata": {},
   "source": [
    "Every campaign ended the month between about 1.7 and 3.3 impressions per person,\n",
    "below the exposure range where the simulated fatigue lived. The daily reading\n",
    "found no bend in any of them, and neither did the shuffled controls: the method\n",
    "does not invent structure on real noise, and on this inventory there was none of\n",
    "the shape it looks for. That validates the fit's behaviour and says nothing about\n",
    "the fatigue call itself, because nothing in the data was exposed hard enough.\n",
    "That test is owed on inventory that is."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e3d3b8f4",
   "metadata": {},
   "source": [
    "## Pinned checks for the widget\n",
    "\n",
    "Four creatives the interactive version must reproduce, stored as their raw daily\n",
    "series so the widget's fit can be compared against this notebook's with nothing\n",
    "in between."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "cb91435a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:52.546985Z",
     "iopub.status.busy": "2026-10-24T12:48:52.546465Z",
     "iopub.status.idle": "2026-10-24T12:48:52.611044Z",
     "shell.execute_reply": "2026-10-24T12:48:52.608111Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "high volume, fitted decay        FATIGUE_FITTED  onset=2.377707  decay=0.079787\n",
      "three-week social creative       FATIGUE_FITTED  onset=1.9123  decay=0.194365\n",
      "real decline, flat exposure      DECLINE_ONLY    onset=None  decay=0.0\n",
      "thin volume                      FATIGUE_RANGE   onset=None  decay=0.0\n"
     ]
    }
   ],
   "source": [
    "def pinned_case(label, creative):\n",
    "    verdict = score_creative(creative[\"impressions\"], creative[\"clicks\"], creative[\"frequency\"])\n",
    "    fit = verdict[\"fit\"]\n",
    "    expected = {\n",
    "        \"verdict\": verdict[\"verdict\"], \"rung\": verdict[\"rung\"],\n",
    "        \"identified\": bool(fit[\"identified\"]),\n",
    "        \"a\": round(fit[\"a\"], 6),\n",
    "        \"psi\": None if not fit[\"identified\"] else round(fit[\"psi\"], 6),\n",
    "        \"lam\": round(fit[\"lam\"], 6),\n",
    "        \"a_range\": [round(v, 6) for v in fit[\"a_range\"]],\n",
    "        \"psi_range\": None if not fit[\"identified\"] else [round(v, 6) for v in fit[\"psi_range\"]],\n",
    "        \"lam_range\": [round(v, 6) for v in fit[\"lam_range\"]],\n",
    "    }\n",
    "    if verdict[\"rung\"] != \"fitted decay\":\n",
    "        expected.update({\n",
    "            \"baseline_ctr\": round(verdict[\"baseline_ctr\"], 6),\n",
    "            \"current_ctr\": round(verdict[\"current_ctr\"], 6),\n",
    "            \"z\": round(verdict[\"z\"], 6),\n",
    "            \"relative_drop\": round(verdict[\"relative_drop\"], 6),\n",
    "            \"no_change_low\": round(verdict[\"no_change_low\"], 6),\n",
    "            \"no_change_high\": round(verdict[\"no_change_high\"], 6),\n",
    "            \"frequency_rise\": round(verdict[\"frequency_rise\"], 6),\n",
    "        })\n",
    "    # The fallback rung's arithmetic on every creative long enough to carry it, whatever rung\n",
    "    # it landed on: the spreadsheet shows both rungs side by side and is checked on both.\n",
    "    if len(creative[\"impressions\"]) >= CALENDAR_MIN_DAYS:\n",
    "        base_slice = slice(BASELINE_FROM, BASELINE_TO)\n",
    "        cur_slice = slice(len(creative[\"impressions\"]) - CURRENT_DAYS, len(creative[\"impressions\"]))\n",
    "        n0, c0 = float(creative[\"impressions\"][base_slice].sum()), float(creative[\"clicks\"][base_slice].sum())\n",
    "        n1, c1 = float(creative[\"impressions\"][cur_slice].sum()), float(creative[\"clicks\"][cur_slice].sum())\n",
    "        lo, hi = no_change_range(c0, n0, c1, n1)\n",
    "        expected[\"fallback\"] = {\n",
    "            \"baseline_impressions\": n0, \"baseline_clicks\": c0,\n",
    "            \"current_impressions\": n1, \"current_clicks\": c1,\n",
    "            \"baseline_ctr\": round(c0 / n0, 6), \"current_ctr\": round(c1 / n1, 6),\n",
    "            \"z\": round(two_proportion_z(c0, n0, c1, n1), 6),\n",
    "            \"relative_drop\": round(relative_drop(c0, n0, c1, n1), 6),\n",
    "            \"no_change_low\": round(lo, 6), \"no_change_high\": round(hi, 6),\n",
    "            \"frequency_rise\": round(frequency_rise(creative[\"frequency\"][cur_slice]), 6),\n",
    "        }\n",
    "    return {\n",
    "        \"label\": label,\n",
    "        \"impressions\": [int(v) for v in creative[\"impressions\"]],\n",
    "        \"clicks\": [int(v) for v in creative[\"clicks\"]],\n",
    "        \"frequency\": [round(float(v), 6) for v in creative[\"frequency\"]],\n",
    "        \"expected\": expected,\n",
    "    }\n",
    "\n",
    "\n",
    "pinned = [\n",
    "    pinned_case(\"high volume, fitted decay\", account[(\"high\", \"fatiguing\")]),\n",
    "    pinned_case(\"three-week social creative\", social_sample),\n",
    "    pinned_case(\"real decline, flat exposure\", account[(\"high\", \"external\")]),\n",
    "    pinned_case(\"thin volume\", account[(\"thin\", \"fatiguing\")]),\n",
    "]\n",
    "checks = {\n",
    "    \"tolerance\": 1e-4,\n",
    "    \"settings\": {\n",
    "        \"psi_grid\": PSI_GRID, \"lambda_grid\": list(LAMBDA_GRID),\n",
    "        \"min_left_points\": MIN_LEFT_POINTS, \"min_right_points\": MIN_RIGHT_POINTS,\n",
    "        \"min_tail_span\": MIN_TAIL_SPAN, \"min_exposure_span\": MIN_EXPOSURE_SPAN,\n",
    "        \"bic_margin\": BIC_MARGIN, \"profile_chi2\": PROFILE_CHI2,\n",
    "        \"z_gate\": Z_GATE, \"relative_floor\": REL_FLOOR, \"min_impressions\": MIN_IMPRESSIONS,\n",
    "        \"baseline_from\": BASELINE_FROM, \"baseline_to\": BASELINE_TO, \"current_days\": CURRENT_DAYS,\n",
    "        \"frequency_rise_floor\": FREQ_RISE_FLOOR,\n",
    "    },\n",
    "    \"cases\": pinned,\n",
    "}\n",
    "(DATA / \"checks.json\").write_text(json.dumps(checks, indent=2), encoding=\"utf-8\")\n",
    "for case in checks[\"cases\"]:\n",
    "    e = case[\"expected\"]\n",
    "    print(f\"{case['label']:32s} {e['verdict']:15s} onset={e['psi']}  decay={e['lam']}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "36f7391c",
   "metadata": {},
   "source": [
    "## The article's numbers\n",
    "\n",
    "Every figure the prose quotes is written here and read from the file. Nothing in\n",
    "the article is typed by hand."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "22ef7504",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:52.617648Z",
     "iopub.status.busy": "2026-10-24T12:48:52.615639Z",
     "iopub.status.idle": "2026-10-24T12:48:52.679653Z",
     "shell.execute_reply": "2026-10-24T12:48:52.678249Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\n",
      "  \"tier\": \"mid\",\n",
      "  \"daily_impressions\": 2500,\n",
      "  \"verdict\": \"FATIGUE_FITTED\",\n",
      "  \"rung\": \"fitted decay\",\n",
      "  \"level_pct\": 1.779,\n",
      "  \"level_range_pct\": [\n",
      "    1.698,\n",
      "    1.859\n",
      "  ],\n",
      "  \"onset\": 2.46,\n",
      "  \"onset_range\": [\n",
      "    1.23,\n",
      "    3.56\n",
      "  ],\n",
      "  \"decay\": 0.08,\n",
      "  \"decay_range\": [\n",
      "    0.049,\n",
      "    0.125\n",
      "  ],\n",
      "  \"decay_pct_per_exposure\": 7.7,\n",
      "  \"decay_range_pct_per_exposure\": [\n",
      "    4.7,\n",
      "    11.8\n",
      "  ],\n",
      "  \"drop_at_end_pct\": 29.7,\n",
      "  \"exposure_start\": 1.07,\n",
      "  \"exposure_end\": 6.87,\n",
      "  \"true_onset\": 2.6,\n",
      "  \"true_decay\": 0.09,\n",
      "  \"true_level_pct\": 1.8\n",
      "}\n",
      "{\n",
      "  \"thin\": {\n",
      "    \"daily_impressions\": 400,\n",
      "    \"naive_pct\": 53.2,\n",
      "    \"fit_pct\": 0.0,\n",
      "    \"rolling7_pct\": 15.5,\n",
      "    \"naive_fires\": 213,\n",
      "    \"fit_fires\": 0,\n",
      "    \"rolling_fires\": 62\n",
      "  },\n",
      "  \"mid\": {\n",
      "    \"daily_impressions\": 2500,\n",
      "    \"naive_pct\": 4.0,\n",
      "    \"fit_pct\": 0.0,\n",
      "    \"rolling7_pct\": 17.2,\n",
      "    \"naive_fires\": 16,\n",
      "    \"fit_fires\": 0,\n",
      "    \"rolling_fires\": 69\n",
      "  },\n",
      "  \"high\": {\n",
      "    \"daily_impressions\": 12000,\n",
      "    \"naive_pct\": 0.0,\n",
      "    \"fit_pct\": 0.0,\n",
      "    \"rolling7_pct\": 14.0,\n",
      "    \"naive_fires\": 0,\n",
      "    \"fit_fires\": 0,\n",
      "    \"rolling_fires\": 56\n",
      "  }\n",
      "}\n"
     ]
    }
   ],
   "source": [
    "thin = score_creative(*(account[(\"thin\", \"fatiguing\")][k] for k in (\"impressions\", \"clicks\", \"frequency\")))\n",
    "external = score_creative(*(account[(\"high\", \"external\")][k] for k in (\"impressions\", \"clicks\", \"frequency\")))\n",
    "high = score_creative(*(account[(\"high\", \"fatiguing\")][k] for k in (\"impressions\", \"clicks\", \"frequency\")))\n",
    "\n",
    "\n",
    "def fitted_block(verdict, truth_onset=None, truth_decay=None):\n",
    "    block = {\n",
    "        \"verdict\": verdict[\"verdict\"], \"rung\": verdict[\"rung\"],\n",
    "        \"level_pct\": round(100 * verdict[\"level\"], 3),\n",
    "        \"level_range_pct\": [round(100 * v, 3) for v in verdict[\"level_range\"]],\n",
    "        \"onset\": round(verdict[\"onset\"], 2),\n",
    "        \"onset_range\": [round(v, 2) for v in verdict[\"onset_range\"]],\n",
    "        \"decay\": round(verdict[\"decay\"], 3),\n",
    "        \"decay_range\": [round(v, 3) for v in verdict[\"decay_range\"]],\n",
    "        \"decay_pct_per_exposure\": round(100 * (1 - np.exp(-verdict[\"decay\"])), 1),\n",
    "        \"decay_range_pct_per_exposure\": [round(100 * (1 - np.exp(-v)), 1) for v in verdict[\"decay_range\"]],\n",
    "        \"drop_at_end_pct\": round(100 * verdict[\"drop_at_end\"], 1),\n",
    "        \"exposure_start\": round(verdict[\"exposure_start\"], 2),\n",
    "        \"exposure_end\": round(verdict[\"exposure_end\"], 2),\n",
    "    }\n",
    "    if truth_onset is not None:\n",
    "        block.update({\"true_onset\": truth_onset, \"true_decay\": truth_decay,\n",
    "                      \"true_level_pct\": round(100 * BASE_CTR, 3)})\n",
    "    return block\n",
    "\n",
    "\n",
    "worked = {\n",
    "    \"label\": \"synthetic\",\n",
    "    \"seed\": SEED,\n",
    "    \"days\": DAYS,\n",
    "    \"base_ctr_pct\": round(100 * BASE_CTR, 3),\n",
    "    \"settings\": checks[\"settings\"],\n",
    "    \"calendar_min_days\": CALENDAR_MIN_DAYS,\n",
    "    \"focus_creative\": {\"tier\": \"mid\", \"daily_impressions\": TIERS[\"mid\"],\n",
    "                       **fitted_block(focus_verdict, ONSET_F, LAMBDA)},\n",
    "    # The worked creative's own daily series, so the video's stills draw the real points rather\n",
    "    # than an illustrative shape - the same rule the article's numbers follow.\n",
    "    \"focus_series\": {\n",
    "        \"impressions\": [int(v) for v in focus[\"impressions\"]],\n",
    "        \"clicks\": [int(v) for v in focus[\"clicks\"]],\n",
    "        \"frequency\": [round(float(v), 4) for v in focus[\"frequency\"]],\n",
    "        \"true_ctr_pct\": [round(100 * float(v), 4) for v in focus[\"true_ctr\"]],\n",
    "    },\n",
    "    \"high_creative\": {\"tier\": \"high\", \"daily_impressions\": TIERS[\"high\"],\n",
    "                      **fitted_block(high, ONSET_F, LAMBDA)},\n",
    "    \"social_creative\": {\"days\": SOCIAL_DAYS, \"daily_impressions\": SOCIAL_IMPRESSIONS,\n",
    "                        **fitted_block(social_verdict, SOCIAL_ONSET, SOCIAL_LAMBDA),\n",
    "                        \"exposure_at_day_7\": round(float(social_sample[\"frequency\"][6]), 2)},\n",
    "    \"thin_fatiguing\": {\n",
    "        \"daily_impressions\": TIERS[\"thin\"], \"verdict\": thin[\"verdict\"], \"rung\": thin[\"rung\"],\n",
    "        \"reason\": thin[\"reason\"],\n",
    "        \"baseline_ctr_pct\": round(100 * thin.get(\"baseline_ctr\", 0), 3),\n",
    "        \"current_ctr_pct\": round(100 * thin.get(\"current_ctr\", 0), 3),\n",
    "        \"no_change_low_pct\": round(100 * thin.get(\"no_change_low\", 0), 3),\n",
    "        \"no_change_high_pct\": round(100 * thin.get(\"no_change_high\", 0), 3),\n",
    "        \"relative_drop_pct\": round(100 * thin.get(\"relative_drop\", 0), 1),\n",
    "        \"z\": round(thin.get(\"z\", 0), 2),\n",
    "        \"frequency_rise_pct\": round(100 * thin.get(\"frequency_rise\", 0), 1),\n",
    "        \"fit_reason\": thin[\"fit\"][\"reason\"],\n",
    "        \"thin_expected_daily_clicks\": round(TIERS[\"thin\"] * BASE_CTR, 1),\n",
    "    },\n",
    "    \"external_creative\": {\n",
    "        \"verdict\": external[\"verdict\"], \"rung\": external[\"rung\"],\n",
    "        \"fit_reason\": external[\"fit\"][\"reason\"],\n",
    "        \"exposure_span\": round(external[\"fit\"][\"exposure_span\"], 3),\n",
    "        \"no_change_low_pct\": round(100 * external[\"no_change_low\"], 3),\n",
    "        \"no_change_high_pct\": round(100 * external[\"no_change_high\"], 3),\n",
    "        \"current_ctr_pct\": round(100 * external[\"current_ctr\"], 3),\n",
    "        \"relative_drop_pct\": round(100 * external[\"relative_drop\"], 1),\n",
    "        \"z\": round(external[\"z\"], 2),\n",
    "        \"frequency_rise_pct\": round(100 * external[\"frequency_rise\"], 1),\n",
    "        \"step_day\": EXTERNAL_DAY, \"step_pct\": round(100 * (1 - EXTERNAL_FACTOR), 0),\n",
    "    },\n",
    "    \"plateau\": {\n",
    "        \"drop_pct\": 45, \"days\": 7, \"reps\": PLATEAU_REPS,\n",
    "        \"calendar\": {k: round(v, 1) for k, v in plateau_calendar.items()},\n",
    "        \"fit_identified_pct\": round(plateau_fitted_pct, 1),\n",
    "        \"sample_fit_reason\": plateau_fit[\"reason\"],\n",
    "        \"sample_exposure_at_day_7\": round(float(plateau_sample[\"frequency\"][6]), 2),\n",
    "        \"sample_calendar_baseline_pct\": round(100 * float(plateau_sample[\"true_ctr\"][BASELINE_FROM:BASELINE_TO].mean()), 3),\n",
    "        \"sample_day0_pct\": round(100 * float(plateau_sample[\"true_ctr\"][0]), 3),\n",
    "        \"sample_day7_pct\": round(100 * float(plateau_sample[\"true_ctr\"][6]), 3),\n",
    "        \"two_bend_identified_pct\": round(plateau_second[\"identified_pct\"], 1),\n",
    "        \"two_bend_read_as_stopped_pct\": round(plateau_second[\"read_as_stopped_pct\"], 1),\n",
    "        \"two_bend_fitted_drop_pct_median\": round(plateau_second[\"fitted_drop_pct_median\"], 1),\n",
    "        \"two_bend_stop_exposure_median\": round(plateau_second[\"stop_exposure_median\"], 2),\n",
    "        \"sample_two_bend_onset\": round(float(plateau_two[\"psi1\"]), 2),\n",
    "        \"sample_two_bend_stop\": round(float(plateau_two[\"psi2\"]), 2),\n",
    "        \"sample_two_bend_stop_range\": [round(float(v), 2) for v in plateau_two[\"psi2_range\"]],\n",
    "        \"sample_two_bend_second_rate\": round(float(plateau_two[\"lam2\"]), 4),\n",
    "        \"sample_two_bend_second_rate_range\": [round(float(v), 4) for v in plateau_two[\"lam2_range\"]],\n",
    "        \"sample_two_bend_segment\": plateau_two[\"second_segment\"],\n",
    "        \"sample_two_bend_drop_pct\": round(100 * float(plateau_two[\"total_drop\"]), 1),\n",
    "    },\n",
    "    \"recovery\": {\"reps\": RECOVERY_REPS, \"true_onset\": SOCIAL_ONSET, \"true_decay\": SOCIAL_LAMBDA, **recovery},\n",
    "    \"false_onsets\": {\n",
    "        row[\"tier\"]: {\n",
    "            \"daily_impressions\": int(row[\"daily_impressions\"]),\n",
    "            \"naive_pct\": round(float(row[\"naive_false_alarm_pct\"]), 1),\n",
    "            \"fit_pct\": round(float(row[\"fit_false_onset_pct\"]), 1),\n",
    "            \"rolling7_pct\": round(float(row[\"rolling7_false_onset_pct\"]), 1),\n",
    "            \"naive_fires\": int(row[\"naive_fires\"]), \"fit_fires\": int(row[\"fit_fires\"]),\n",
    "            \"rolling_fires\": int(row[\"rolling_fires\"]),\n",
    "        }\n",
    "        for _, row in false_onsets.iterrows()\n",
    "    },\n",
    "    \"false_onset_reps\": FALSE_REPS,\n",
    "    \"confusion\": {truth: {v: round(float(x), 1) for v, x in row.items()} for truth, row in confusion.iterrows()},\n",
    "    \"confusion_reps\": CONFUSION_REPS,\n",
    "    \"gate\": {k: (round(v, 1) if isinstance(v, float) else v) for k, v in gate.items()},\n",
    "    \"gate_reps\": GATE_REPS,\n",
    "    \"real_data\": {\n",
    "        \"campaigns\": real[\"campaigns\"],\n",
    "        \"identified_daily_pct\": real[\"identified_daily_pct\"],\n",
    "        \"identified_hourly_pct\": real[\"identified_hourly_pct\"],\n",
    "        \"shuffled_daily_pct\": real[\"shuffled_control_identified_pct\"],\n",
    "        \"shuffled_hourly_pct\": real[\"shuffled_hourly_control_identified_pct\"],\n",
    "        \"frequency_end_median\": real[\"frequency_end_median\"],\n",
    "    } if real is not None else None,\n",
    "    \"naive_drop_threshold_pct\": 20,\n",
    "}\n",
    "(DATA / \"worked_example.json\").write_text(json.dumps(worked, indent=2), encoding=\"utf-8\")\n",
    "print(json.dumps(worked[\"focus_creative\"], indent=2))\n",
    "print(json.dumps(worked[\"false_onsets\"], indent=2))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f69203a5",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "# Run it on your own data\n",
    "\n",
    "Everything below runs locally. Your file is read from your own disk and nothing\n",
    "is uploaded anywhere.\n",
    "\n",
    "## The column contract\n",
    "\n",
    "One row per creative per day:\n",
    "\n",
    "| column | meaning | example |\n",
    "|---|---|---|\n",
    "| `creative_id` | any stable identifier for the ad | `ad_44192` |\n",
    "| `date` | the day, any parseable date format | `2026-08-14` |\n",
    "| `impressions` | impressions served that day | `2841` |\n",
    "| `clicks` | clicks that day | `47` |\n",
    "| `reach` | people reached **to date** (cumulative) | `18240` |\n",
    "\n",
    "`reach` is the column that builds the exposure axis, and it has to be reach **to\n",
    "date**: everyone reached from the creative's first day up to that row's day. A\n",
    "by-day report from Meta or TikTok gives each day's own reach instead, and its\n",
    "Frequency column is each day's own frequency; neither builds the axis, and the\n",
    "notebook refuses a reach column that falls from one day to the next or never\n",
    "exceeds a single day's impressions. Reach to date comes from asking for reach over\n",
    "a range that starts at launch and ends on each day: Meta's Insights API takes a\n",
    "list of such ranges in one call (`time_ranges`), and in Ads Manager it is one\n",
    "export per end date. If your export carries frequency to date, name that column in\n",
    "`FREQUENCY_COLUMN` below instead. Without either there is no axis: the notebook can\n",
    "still report a decline from the fallback rung, but it cannot fit a bend and cannot\n",
    "separate fatigue from another cause, which is the honest answer, not a degraded one.\n",
    "\n",
    "The file can be a CSV or an `.xlsx` download as it comes: title lines, Total rows,\n",
    "formatted numbers such as `8,563` and the platforms' own column names (Meta's\n",
    "`Ad ID`, `Day`, `Link clicks`, `Reach`; TikTok's `By Day`, `Clicks (destination)`;\n",
    "Google Ads' `Impr.`) are read as they are."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "a1ebdcb5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:52.684771Z",
     "iopub.status.busy": "2026-10-24T12:48:52.684422Z",
     "iopub.status.idle": "2026-10-24T12:48:52.752001Z",
     "shell.execute_reply": "2026-10-24T12:48:52.750262Z"
    }
   },
   "outputs": [],
   "source": [
    "# ---- export reader (shared across every Stochastic Strata notebook; do not edit here) ----------\n",
    "# One reader for the file you bring. Ad platforms and analytics tools do not hand over clean tables:\n",
    "# a Google Ads download opens with a title line and a date-range line and closes with \"Total:\" rows,\n",
    "# a GA4 download opens with \"#\" lines and writes dates as 20261019, a European download separates\n",
    "# with semicolons and writes 1.234,56, and Excel turns numbers into \"1,234.56\" or \"€12.30\". This\n",
    "# reader finds the real header row, sets the title, comment and total rows aside, turns formatted\n",
    "# numbers back into numbers, and reads dates in the platforms' own forms. Where a file is genuinely\n",
    "# ambiguous - 06/07/2026 could be the 6th of July or the 7th of June - it stops and asks rather than\n",
    "# guessing, because a guessed date silently moves a day to the wrong weekday.\n",
    "#\n",
    "#     table, notes = read_export(\"my_export.csv\", columns={\"date\": [\"day\", \"date\"], ...})\n",
    "#     for note in notes: print(note)\n",
    "#\n",
    "# `columns` maps the names this notebook uses to the names your file might use (case and spacing do\n",
    "# not matter, and a currency suffix such as \"(EUR)\" is ignored). `date_columns` are read as dates,\n",
    "# `id_columns` are kept as text. Everything else that reads as numbers becomes numbers; a share\n",
    "# written \"49.41%\" becomes 0.4941. A share the platform shows only as \"< 10%\" or \"> 90%\" is read as\n",
    "# 0.10 or 0.90 and the direction is kept in a column ending \"_bound\", because it is a limit, not a\n",
    "# measurement. Every row set aside, and why, comes back in `notes`.\n",
    "import csv as _csv\n",
    "import io as _io\n",
    "import re as _re\n",
    "from pathlib import Path as _Path\n",
    "\n",
    "import numpy as _np\n",
    "import pandas as _pd\n",
    "\n",
    "\n",
    "class ExportReadError(ValueError):\n",
    "    \"\"\"The file cannot be read without guessing; the message says what to change.\"\"\"\n",
    "\n",
    "\n",
    "_TOTAL_ROW = _re.compile(r\"^\\s*(grand\\s+)?totals?\\b\", _re.I)\n",
    "_CURRENCY = _re.compile(r\"[€$£¥₹]|\\b(EUR|USD|GBP|CHF|SEK|NOK|DKK|PLN|AUD|CAD)\\b\", _re.I)\n",
    "_EMPTY = {\"\", \"--\", \"-\", \"—\", \"–\", \"n/a\", \"na\", \"nan\", \"none\", \"null\", \"(not set)\"}\n",
    "_MONTHS = {m: i for i, m in enumerate(\n",
    "    [\"jan\", \"feb\", \"mar\", \"apr\", \"may\", \"jun\", \"jul\", \"aug\", \"sep\", \"oct\", \"nov\", \"dec\"], 1)}\n",
    "\n",
    "\n",
    "def _norm(name):\n",
    "    name = _re.sub(r\"\\((?:[A-Z]{3}|[€$£])\\)\", \"\", str(name))\n",
    "    return _re.sub(r\"[\\s_\\-./]+\", \" \", name).strip().lower()\n",
    "\n",
    "\n",
    "def _decode(raw):\n",
    "    if raw[:2] in (b\"\\xff\\xfe\", b\"\\xfe\\xff\"):\n",
    "        return raw.decode(\"utf-16\")\n",
    "    for encoding in (\"utf-8-sig\", \"cp1252\", \"latin-1\"):\n",
    "        try:\n",
    "            return raw.decode(encoding)\n",
    "        except UnicodeDecodeError:\n",
    "            continue\n",
    "    return raw.decode(\"utf-8\", errors=\"replace\")\n",
    "\n",
    "\n",
    "def _rows_from(source):\n",
    "    \"\"\"Every row of the file as a list of strings, whatever the container.\"\"\"\n",
    "    if isinstance(source, _pd.DataFrame):\n",
    "        return [list(map(str, source.columns))] + source.astype(str).values.tolist(), \",\"\n",
    "    path = _Path(source)\n",
    "    if not path.exists():\n",
    "        raise ExportReadError(f\"There is no file at {path}. Check the name and the folder.\")\n",
    "    if path.suffix.lower() in (\".xlsx\", \".xlsm\", \".xls\"):\n",
    "        sheet = _pd.read_excel(path, header=None, dtype=str).fillna(\"\")\n",
    "        return sheet.values.tolist(), \",\"\n",
    "    text = _decode(path.read_bytes())\n",
    "    lines = [ln for ln in text.splitlines() if not ln.lstrip().startswith(\"#\")]\n",
    "    counts = {d: sum(ln.count(d) for ln in lines[:60]) for d in (\",\", \";\", \"\\t\")}\n",
    "    delimiter = max(counts, key=counts.get) if any(counts.values()) else \",\"\n",
    "    return [row for row in _csv.reader(_io.StringIO(\"\\n\".join(lines)), delimiter=delimiter)], delimiter\n",
    "\n",
    "\n",
    "def _find_header(rows, wanted):\n",
    "    \"\"\"The first row that names the columns: the one matching most expected names, else the first\n",
    "    row as wide as the data below it that is mostly words rather than numbers.\"\"\"\n",
    "    widths = [len([c for c in r if str(c).strip()]) for r in rows]\n",
    "    if wanted:\n",
    "        best, best_hits = None, 0\n",
    "        for i, row in enumerate(rows[:40]):\n",
    "            names = {_norm(c) for c in row if str(c).strip()}\n",
    "            hits = sum(1 for options in wanted.values() if names & set(options))\n",
    "            if hits > best_hits:\n",
    "                best, best_hits = i, hits\n",
    "        if best is not None:\n",
    "            return best\n",
    "    body = [w for w in widths if w > 1]\n",
    "    width = max(set(body), key=body.count) if body else 1\n",
    "    for i, row in enumerate(rows[:40]):\n",
    "        cells = [str(c).strip() for c in row if str(c).strip()]\n",
    "        if len(cells) >= max(2, width - 1) and sum(_looks_number(c) for c in cells) <= len(cells) / 2:\n",
    "            return i\n",
    "    return 0\n",
    "\n",
    "\n",
    "def _looks_number(text):\n",
    "    if _re.fullmatch(r\"\\d{1,4}[./\\-]\\d{1,2}[./\\-]\\d{1,4}\", str(text).strip()):\n",
    "        return False  # a date such as 22.09.2026, not a number with separators\n",
    "    return bool(_re.fullmatch(r\"[<>]?\\s*[-+(]?[€$£]?\\s*[\\d.,\\s']+\\s*%?\\)?\", str(text).strip()))\n",
    "\n",
    "\n",
    "def _decimal_comma(values):\n",
    "    \"\"\"True when these values write 1.234,56 (a comma followed by one or two final digits, or dots\n",
    "    grouping thousands with a comma after them), False when they write 1,234.56, None when they do\n",
    "    not say (whole numbers only, or a lone '1.340').\"\"\"\n",
    "    comma_votes = dot_votes = 0\n",
    "    for v in values:\n",
    "        s = _re.sub(r\"[^\\d.,]\", \"\", v)\n",
    "        if \",\" in s and \".\" in s:\n",
    "            comma_votes += s.rfind(\",\") > s.rfind(\".\")\n",
    "            dot_votes += s.rfind(\".\") > s.rfind(\",\")\n",
    "        elif _re.search(r\",\\d{1,2}$\", s):\n",
    "            comma_votes += 1\n",
    "        elif _re.search(r\"\\.\\d{1,2}$\", s) or _re.search(r\"\\.\\d{4,}$\", s):\n",
    "            dot_votes += 1\n",
    "    if comma_votes == dot_votes:\n",
    "        return None\n",
    "    return comma_votes > dot_votes\n",
    "\n",
    "\n",
    "def _to_number(text, comma_decimal):\n",
    "    s = str(text).strip().replace(\" \", \" \")\n",
    "    if s.lower() in _EMPTY:\n",
    "        return _np.nan, None, True\n",
    "    bound = None\n",
    "    if s[:1] in \"<>\":\n",
    "        bound, s = s[0], s[1:].strip()\n",
    "    negative = s.startswith(\"(\") and s.endswith(\")\")\n",
    "    s = _CURRENCY.sub(\"\", s).strip(\"() \").replace(\" \", \"\").replace(\"'\", \"\")\n",
    "    percent = s.endswith(\"%\")\n",
    "    s = s.rstrip(\"%\")\n",
    "    if comma_decimal:\n",
    "        s = s.replace(\".\", \"\").replace(\",\", \".\")\n",
    "    else:\n",
    "        s = s.replace(\",\", \"\")\n",
    "    try:\n",
    "        value = float(s)\n",
    "    except ValueError:\n",
    "        return _np.nan, None, False\n",
    "    if negative:\n",
    "        value = -value\n",
    "    return (value / 100.0 if percent else value), bound, True\n",
    "\n",
    "\n",
    "def _parse_dates(values, column, dayfirst):\n",
    "    text = [str(v).strip() for v in values]\n",
    "    present = [t for t in text if t.lower() not in _EMPTY]\n",
    "    if not present:\n",
    "        return _pd.Series([_pd.NaT] * len(text)), []\n",
    "    notes = []\n",
    "    if all(_re.fullmatch(r\"\\d{8}\", t) for t in present):\n",
    "        return _pd.to_datetime(_pd.Series(text), format=\"%Y%m%d\", errors=\"coerce\"), notes\n",
    "    if all(_re.fullmatch(r\"\\d{10}(\\.\\d+)?|\\d{13}|\\d{16}\", t) for t in present):\n",
    "        digits = len(present[0].split(\".\")[0])\n",
    "        unit = {10: \"s\", 13: \"ms\", 16: \"us\"}[digits]\n",
    "        notes.append(f\"'{column}' holds epoch times in {dict(s='seconds', ms='milliseconds', us='microseconds')[unit]}; read as such.\")\n",
    "        return _pd.to_datetime(_pd.to_numeric(_pd.Series(text), errors=\"coerce\"), unit=unit), notes\n",
    "    cleaned = [_re.sub(r\"\\s+(UTC|GMT|Z)$\", \"\", t) for t in text]\n",
    "    slash = [t for t in cleaned if _re.fullmatch(r\"\\d{1,2}[/.\\-]\\d{1,2}[/.\\-]\\d{2,4}(\\s.*)?\", t)]\n",
    "    if slash and len(slash) >= len(present) * 0.9:\n",
    "        firsts = [int(_re.split(r\"[/.\\-]\", t)[0]) for t in slash]\n",
    "        seconds = [int(_re.split(r\"[/.\\-]\", t)[1]) for t in slash]\n",
    "        dotted = all(\".\" in t.split(\" \")[0] for t in slash)\n",
    "        if dayfirst is None:\n",
    "            if max(firsts) > 12 and max(seconds) <= 12:\n",
    "                dayfirst = True\n",
    "            elif max(seconds) > 12 and max(firsts) <= 12:\n",
    "                dayfirst = False\n",
    "            elif dotted:\n",
    "                dayfirst = True\n",
    "            else:\n",
    "                raise ExportReadError(\n",
    "                    f\"The dates in '{column}' (for example {slash[0]}) could be day-first or month-first, \"\n",
    "                    \"and nothing in the file says which. Re-run with dayfirst=True for 6 July written \"\n",
    "                    \"06/07, or dayfirst=False for June 7 written 06/07 - or export the dates as \"\n",
    "                    \"2026-07-06.\")\n",
    "        return _pd.to_datetime(_pd.Series(cleaned), dayfirst=dayfirst, errors=\"coerce\"), notes\n",
    "    parsed = _pd.to_datetime(_pd.Series(cleaned), errors=\"coerce\", format=\"mixed\")\n",
    "    return parsed, notes\n",
    "\n",
    "\n",
    "def read_export(source, columns=None, date_columns=(), id_columns=(), dayfirst=None,\n",
    "                max_unreadable_share=0.02):\n",
    "    \"\"\"Read a downloaded report into a table with this notebook's column names. Returns\n",
    "    (table, notes); raises ExportReadError with a plain-words fix when it cannot read without\n",
    "    guessing.\"\"\"\n",
    "    columns = columns or {}\n",
    "    # Each name's candidates in the caller's order of preference, the name itself first.\n",
    "    wanted = {name: list(dict.fromkeys([_norm(name)] + [_norm(a) for a in aliases]))\n",
    "              for name, aliases in columns.items()}\n",
    "    rows, delimiter = _rows_from(source)\n",
    "    rows = [r for r in rows if any(str(c).strip() for c in r)]\n",
    "    if not rows:\n",
    "        raise ExportReadError(\"The file is empty.\")\n",
    "    notes = []\n",
    "    h = _find_header(rows, wanted)\n",
    "    if h:\n",
    "        notes.append(f\"set aside {h} line(s) above the header (a report title or date range).\")\n",
    "    header = [str(c).strip() for c in rows[h]]\n",
    "    body, totals = [], 0\n",
    "    for r in rows[h + 1:]:\n",
    "        first = next((str(c) for c in r if str(c).strip()), \"\")\n",
    "        if _TOTAL_ROW.match(first):\n",
    "            totals += 1\n",
    "            continue\n",
    "        if [str(c).strip() for c in r] == header:\n",
    "            continue\n",
    "        body.append([str(c) for c in r] + [\"\"] * (len(header) - len(r)))\n",
    "    if totals:\n",
    "        notes.append(f\"set aside {totals} total row(s).\")\n",
    "    frame = _pd.DataFrame([r[:len(header)] for r in body], columns=header)\n",
    "    rename = {}\n",
    "    for name, options in wanted.items():\n",
    "        by_norm = {}\n",
    "        for c in frame.columns:\n",
    "            by_norm.setdefault(_norm(c), c)\n",
    "        match = next((by_norm[o] for o in options if o in by_norm and by_norm[o] not in rename), None)\n",
    "        if match is not None:\n",
    "            rename[match] = name\n",
    "    frame = frame.rename(columns=rename)\n",
    "    missing = [name for name in columns if name not in frame.columns]\n",
    "    if missing:\n",
    "        seen = \", \".join(f\"'{c}'\" for c in header[:12])\n",
    "        raise ExportReadError(\n",
    "            f\"Could not find the column(s) {', '.join(missing)}. The file's columns are {seen}. \"\n",
    "            \"Rename the column in the file, or add its name to the list this cell accepts.\")\n",
    "    dates = set(date_columns)\n",
    "    # The file's own convention, for a column that cannot tell by itself: a clicks column of whole\n",
    "    # numbers says nothing, but its \"1.340\" means one thousand three hundred and forty when the\n",
    "    # file's other columns write decimals with a comma.\n",
    "    every = [str(v) for c in frame.columns if c not in date_columns for v in frame[c].tolist()\n",
    "             if _looks_number(v)]\n",
    "    file_comma = _decimal_comma(every)\n",
    "    if file_comma is None:\n",
    "        file_comma = delimiter == \";\"\n",
    "    ids = set(id_columns) | {c for c in frame.columns if _re.search(r\"(^|[ _])(id|pseudo id)$\", _norm(c))}\n",
    "    for col in frame.columns:\n",
    "        values = frame[col].tolist()\n",
    "        if col in dates:\n",
    "            parsed, extra = _parse_dates(values, col, dayfirst)\n",
    "            notes += extra\n",
    "            bad = int(parsed.isna().sum() - sum(str(v).strip().lower() in _EMPTY for v in values))\n",
    "            if bad > max(1, max_unreadable_share * len(values)):\n",
    "                example = next(v for v, p in zip(values, parsed) if _pd.isna(p) and str(v).strip())\n",
    "                raise ExportReadError(f\"{bad} value(s) in '{col}' are not dates I can read, for example '{example}'.\")\n",
    "            frame[col] = parsed.values\n",
    "            continue\n",
    "        if col in ids:\n",
    "            continue\n",
    "        present = [v for v in values if str(v).strip().lower() not in _EMPTY]\n",
    "        if not present or sum(_looks_number(v) for v in present) < 0.5 * len(present):\n",
    "            continue\n",
    "        comma = _decimal_comma(present)\n",
    "        if comma is None:\n",
    "            comma = file_comma\n",
    "        parsed = [_to_number(v, comma) for v in values]\n",
    "        unreadable = [v for v, (_, _, ok) in zip(values, parsed) if not ok]\n",
    "        if unreadable and col not in columns:\n",
    "            notes.append(f\"'{col}' mixes numbers with labels such as '{unreadable[0]}'; kept as text.\")\n",
    "            continue\n",
    "        if unreadable:\n",
    "            notes.append(f\"{len(unreadable)} value(s) in '{col}' could not be read as numbers, for example \"\n",
    "                         f\"'{unreadable[0]}'; they are left empty.\")\n",
    "            if len(unreadable) > max(1, max_unreadable_share * len(values)):\n",
    "                raise ExportReadError(\n",
    "                    f\"{len(unreadable)} of {len(values)} values in '{col}' are not numbers I can read, for \"\n",
    "                    f\"example '{unreadable[0]}'. Fix them in the file, or export the column unformatted.\")\n",
    "        frame[col] = [p[0] for p in parsed]\n",
    "        bounds = [p[1] for p in parsed]\n",
    "        if any(bounds):\n",
    "            # An object column, so a day with no limit stays None: a newer pandas would infer a string\n",
    "            # column here and turn None into NaN, which is truthy and reads as a limit.\n",
    "            frame[f\"{col}_bound\"] = _pd.Series(bounds, index=frame.index, dtype=object)\n",
    "            notes.append(f\"'{col}' has values the platform shows only as a limit (for example \"\n",
    "                         f\"'{next(v for v, b in zip(values, bounds) if b)}'); kept as the limit, with the \"\n",
    "                         f\"direction in '{col}_bound'.\")\n",
    "    if dates:\n",
    "        undated = frame[list(dates)].isna().all(axis=1)\n",
    "        if undated.any():\n",
    "            frame = frame[~undated].reset_index(drop=True)\n",
    "            notes.append(f\"set aside {int(undated.sum())} row(s) with no date (GA4 writes its grand total \"\n",
    "                         \"this way, under the header).\")\n",
    "    return frame, notes\n",
    "# ---- end of export reader -------------------------------------------------------------------------"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "66171d9b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:52.757384Z",
     "iopub.status.busy": "2026-10-24T12:48:52.757004Z",
     "iopub.status.idle": "2026-10-24T12:48:52.947320Z",
     "shell.execute_reply": "2026-10-24T12:48:52.945523Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MY_FILE is empty, so nothing of yours is scored; the demonstrations below show the path.\n"
     ]
    }
   ],
   "source": [
    "# ---------------------------------------------------------------- YOUR FILE HERE\n",
    "MY_FILE = \"\"            # e.g. \"ads_by_day.csv\" or \".xlsx\": one row per creative per day; empty skips the run\n",
    "FREQUENCY_COLUMN = \"\"   # only if the file carries frequency TO DATE, e.g. \"Frequency to date\"\n",
    "# -------------------------------------------------------------------------------\n",
    "\n",
    "\n",
    "class DataProblem(Exception):\n",
    "    \"\"\"Raised with a plain-words message a non-programmer can act on.\"\"\"\n",
    "\n",
    "\n",
    "REQUIRED = [\"creative_id\", \"date\", \"impressions\", \"clicks\"]\n",
    "CREATIVE_COLUMNS = {\n",
    "    \"creative_id\": [\"ad id\", \"ad_id\", \"creative id\", \"creative\", \"ad\", \"ad name\"],\n",
    "    \"date\": [\"day\", \"by day\", \"date\", \"date_start\", \"reporting starts\"],\n",
    "    \"impressions\": [\"impr.\", \"impr\", \"imprs\"],\n",
    "    \"clicks\": [\"link clicks\", \"link_clicks\", \"clicks (destination)\", \"clicks (all)\", \"clicks_all\"],\n",
    "    \"reach\": [\"reach to date\", \"people reached\", \"reached_people\", \"unique users\"],\n",
    "}\n",
    "\n",
    "\n",
    "def _read_creatives(path, frequency_column):\n",
    "    wanted = dict(CREATIVE_COLUMNS)\n",
    "    if frequency_column:\n",
    "        wanted[\"frequency\"] = [frequency_column]\n",
    "    while True:\n",
    "        try:\n",
    "            return read_export(path, columns=wanted, date_columns=[\"date\"], id_columns=[\"creative_id\"])\n",
    "        except FileNotFoundError:\n",
    "            raise DataProblem(\n",
    "                f\"No file at {path}. Put your export next to this notebook and use its exact filename.\"\n",
    "            ) from None\n",
    "        except ExportReadError as exc:\n",
    "            text = str(exc)\n",
    "            if not text.startswith(\"Could not find the column(s)\"):\n",
    "                raise DataProblem(text) from None\n",
    "            missing = text.split(\". The file's\")[0]\n",
    "            if \"reach\" in wanted and \"reach\" in missing:   # optional: drop it and ask again\n",
    "                del wanted[\"reach\"]\n",
    "                continue\n",
    "            raise DataProblem(\n",
    "                text + \"\\nThe notebook needs \" + \", \".join(REQUIRED) + \"; reach to date is optional.\") from None\n",
    "\n",
    "\n",
    "def read_creative_csv(path, frequency_column=None):\n",
    "    \"\"\"Read a creative-day export (CSV or .xlsx) and check it before anything is computed.\"\"\"\n",
    "    frame, notes = _read_creatives(path, frequency_column)\n",
    "    for n in notes:\n",
    "        print(\"note:\", n)\n",
    "    for column in (\"impressions\", \"clicks\"):\n",
    "        frame[column] = pd.to_numeric(frame[column], errors=\"coerce\")\n",
    "        if frame[column].isna().any():\n",
    "            raise DataProblem(f\"Some {column} values are not numbers, for example in row \"\n",
    "                              f\"{int(frame[column].isna().idxmax()) + 1}. Check for text in that column.\")\n",
    "    if frame[\"date\"].isna().any():\n",
    "        bad = int(frame[\"date\"].isna().sum())\n",
    "        raise DataProblem(f\"{bad} row(s) have a date this notebook cannot read. Fix or drop them.\")\n",
    "\n",
    "    if (frame[\"clicks\"] > frame[\"impressions\"]).any():\n",
    "        raise DataProblem(\n",
    "            \"Some rows have more clicks than impressions, which cannot happen. \"\n",
    "            \"You may have joined two exports at different date grains.\"\n",
    "        )\n",
    "\n",
    "    frame[\"creative_id\"] = frame[\"creative_id\"].astype(str).str.strip()\n",
    "    frame = frame.sort_values([\"creative_id\", \"date\"]).reset_index(drop=True)\n",
    "    plain_frequency = next((c for c in frame.columns if str(c).strip().lower() == \"frequency\"), None)\n",
    "    if plain_frequency and not frequency_column:\n",
    "        print(f\"note: the file's '{plain_frequency}' column is not used. In a by-day export it is each \"\n",
    "              \"day's own frequency, not frequency to date; if yours is to date, name it in FREQUENCY_COLUMN.\")\n",
    "\n",
    "    if frequency_column:\n",
    "        frame[\"frequency\"] = pd.to_numeric(frame[\"frequency\"], errors=\"coerce\")\n",
    "        _refuse_by_day(frame, \"frequency\", \"frequency\")\n",
    "    elif \"reach\" in frame.columns:\n",
    "        frame[\"reach\"] = pd.to_numeric(frame[\"reach\"], errors=\"coerce\")\n",
    "        _refuse_by_day(frame, \"reach\", \"reach\")\n",
    "        # Cumulative impressions PER CREATIVE, not across the file: one cumsum over a\n",
    "        # multi-creative export makes every creative inherit the ones before it.\n",
    "        frame[\"frequency\"] = (\n",
    "            frame.groupby(\"creative_id\")[\"impressions\"].cumsum() / frame[\"reach\"].clip(lower=1)\n",
    "        )\n",
    "    else:\n",
    "        print(\"note: no reach column, so there is no exposure axis: a decline can be seen, but fatigue \"\n",
    "              \"cannot be separated from another cause.\")\n",
    "        frame[\"frequency\"] = np.nan\n",
    "\n",
    "    return frame\n",
    "\n",
    "\n",
    "def _refuse_by_day(frame, column, word):\n",
    "    \"\"\"Reach (or frequency) to date never falls, and reach to date soon exceeds any one day's\n",
    "    impressions. A by-day export does neither; building exposure from it gives a silent wrong\n",
    "    verdict, so it is refused.\"\"\"\n",
    "    for creative_id, group in frame.groupby(\"creative_id\"):\n",
    "        values = group[column].to_numpy(dtype=float)\n",
    "        falls = int(np.sum(values[1:] < 0.9 * values[:-1]))\n",
    "        never_above = (column == \"reach\" and len(values) >= 7\n",
    "                       and values[-1] <= group[\"impressions\"].to_numpy(dtype=float)[-1])\n",
    "        if falls or never_above:\n",
    "            why = (f\"falls by more than a tenth on {falls} day(s)\" if falls\n",
    "                   else \"is no bigger than a single day's impressions on its last day\")\n",
    "            raise DataProblem(\n",
    "                f\"For creative {creative_id} the {word} column {why}, so it is each day's own {word}, not \"\n",
    "                f\"{word} to date. Exposure built from it would be wrong without any warning. Export {word} \"\n",
    "                \"over a range that starts at the creative's first day and ends on each day (Meta's Insights \"\n",
    "                \"API takes a list of such ranges in one call), or leave the column out and read the decline \"\n",
    "                \"without an exposure axis.\")\n",
    "\n",
    "\n",
    "def score_your_data(frame, min_days=MIN_LEFT_POINTS + MIN_RIGHT_POINTS):\n",
    "    \"\"\"Score every creative in the frame through the ladder, with plain-words refusals.\"\"\"\n",
    "    results = []\n",
    "    for creative_id, group in frame.groupby(\"creative_id\"):\n",
    "        if len(group) < min_days:\n",
    "            results.append({\"creative_id\": creative_id, \"rung\": \"silence\", \"verdict\": \"INSUFFICIENT\",\n",
    "                            \"note\": f\"only {len(group)} days of history - a bend needs at least {min_days}\"})\n",
    "            continue\n",
    "        has_exposure = group[\"frequency\"].notna().all()\n",
    "        verdict = score_creative(\n",
    "            group[\"impressions\"].to_numpy(), group[\"clicks\"].to_numpy(),\n",
    "            group[\"frequency\"].to_numpy() if has_exposure else np.full(len(group), np.nan),\n",
    "        )\n",
    "        note = verdict[\"reason\"]\n",
    "        if not has_exposure and verdict[\"verdict\"] in (\"FATIGUE_RANGE\", \"DECLINE_ONLY\"):\n",
    "            verdict[\"verdict\"] = \"DECLINE_ONLY\"\n",
    "            note = \"no reach or frequency column, so a decline can be seen but fatigue cannot be separated from it\"\n",
    "        row = {\"creative_id\": creative_id, \"rung\": verdict[\"rung\"], \"verdict\": verdict[\"verdict\"]}\n",
    "        if verdict[\"verdict\"] == \"FATIGUE_FITTED\":\n",
    "            rng = lambda r, d: f\"{r[0]:.{d}f} to {r[1]:.{d}f}\" if r is not None else \"not bounded\"\n",
    "            row.update({\"level_pct\": round(100 * verdict[\"level\"], 3),\n",
    "                        \"level_range_pct\": rng([100 * v for v in verdict[\"level_range\"]], 3)\n",
    "                        if verdict[\"level_range\"] is not None else \"not bounded\",\n",
    "                        \"onset\": round(verdict[\"onset\"], 2), \"onset_range\": rng(verdict[\"onset_range\"], 2),\n",
    "                        \"decay\": round(verdict[\"decay\"], 3), \"decay_range\": rng(verdict[\"decay_range\"], 3),\n",
    "                        \"drop_so_far_pct\": round(100 * verdict[\"drop_at_end\"], 1)})\n",
    "        elif verdict[\"rung\"] == \"no-change range\":\n",
    "            row.update({\"baseline_rate_pct\": round(100 * verdict[\"baseline_ctr\"], 3),\n",
    "                        \"last_week_rate_pct\": round(100 * verdict[\"current_ctr\"], 3),\n",
    "                        \"unchanged_range_pct\": f\"{100 * verdict['no_change_low']:.3f} to \"\n",
    "                                               f\"{100 * verdict['no_change_high']:.3f}\",\n",
    "                        \"z\": round(verdict[\"z\"], 2), \"drop_pct\": round(100 * verdict[\"relative_drop\"], 1)})\n",
    "        row[\"note\"] = note\n",
    "        results.append(row)\n",
    "    return pd.DataFrame(results)\n",
    "\n",
    "\n",
    "if MY_FILE:\n",
    "    mine = score_your_data(read_creative_csv(MY_FILE, FREQUENCY_COLUMN or None))\n",
    "    print(mine.to_string(index=False))\n",
    "else:\n",
    "    print(\"MY_FILE is empty, so nothing of yours is scored; the demonstrations below show the path.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6d0df4b9",
   "metadata": {},
   "source": [
    "## If all you have is a raw impression log\n",
    "\n",
    "Some exports are one row per impression or per placement-day rather than per\n",
    "creative-day. This rolls one up into the contract above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "cf804cc2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:52.953148Z",
     "iopub.status.busy": "2026-10-24T12:48:52.952737Z",
     "iopub.status.idle": "2026-10-24T12:48:52.963627Z",
     "shell.execute_reply": "2026-10-24T12:48:52.962756Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "GET https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/insights\n",
      "    ?level=ad\n",
      "    &fields=ad_id,impressions,inline_link_clicks,reach\n",
      "    &time_ranges=[{\"since\":\"<LAUNCH>\",\"until\":\"<LAUNCH>\"},\n",
      "                  {\"since\":\"<LAUNCH>\",\"until\":\"<LAUNCH + 1 day>\"},\n",
      "                  ... one range per day, every one starting at <LAUNCH> ...]\n",
      "Each row comes back with date_start = <LAUNCH> and date_stop = the range's end day: use\n",
      "date_stop as the date, inline_link_clicks as clicks, then from_ranges_to_date(frame).\n",
      "In Ads Manager the same thing is one export per end day, each from the launch date.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "def consolidate_impressions(frame, creative_col=\"creative_id\", date_col=\"date\"):\n",
    "    \"\"\"Roll a finer-grained log up to one row per creative per day.\"\"\"\n",
    "    frame = frame.copy()\n",
    "    frame[date_col] = pd.to_datetime(frame[date_col], errors=\"coerce\").dt.date\n",
    "    # Reach to date is carried only when the log has it. Filling it with impressions would make\n",
    "    # exposure count elapsed days, and an outside-cause decline would read as fatigue.\n",
    "    sums = {\"impressions\": (\"impressions\", \"sum\"), \"clicks\": (\"clicks\", \"sum\")}\n",
    "    if \"reach\" in frame.columns:\n",
    "        sums[\"reach\"] = (\"reach\", \"max\")\n",
    "    aggregated = frame.groupby([creative_col, date_col]).agg(**sums).reset_index()\n",
    "    return aggregated.rename(columns={creative_col: \"creative_id\", date_col: \"date\"})\n",
    "\n",
    "\n",
    "def from_ranges_to_date(frame, creative_col=\"creative_id\", date_col=\"date\"):\n",
    "    \"\"\"A to-date export becomes the contract: one row per creative per END day, every range starting\n",
    "    at the creative's first day, so impressions and clicks are running totals and reach is reach to\n",
    "    date. Impressions and clicks are differenced back into each day's own; reach stays to date.\"\"\"\n",
    "    frame = frame.rename(columns={creative_col: \"creative_id\", date_col: \"date\"}).copy()\n",
    "    frame[\"date\"] = pd.to_datetime(frame[\"date\"], errors=\"coerce\")\n",
    "    frame = frame.sort_values([\"creative_id\", \"date\"])\n",
    "    for column in (\"impressions\", \"clicks\"):\n",
    "        frame[column] = frame.groupby(\"creative_id\")[column].diff().fillna(frame[column])\n",
    "    if (frame[[\"impressions\", \"clicks\"]] < 0).any().any():\n",
    "        raise DataProblem(\"A running total falls from one end day to the next, so these rows are not \"\n",
    "                          \"ranges that all start on the creative's first day.\")\n",
    "    return frame.reset_index(drop=True)\n",
    "\n",
    "\n",
    "# Where reach to date comes from. No by-day report carries it: a by-day row's reach is that day's own.\n",
    "# Ask for every range from launch to each day instead, and difference the running totals with\n",
    "# from_ranges_to_date above. Meta's Insights API takes the ranges as one list:\n",
    "REACH_TO_DATE_RECIPE = \"\"\"\n",
    "GET https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/insights\n",
    "    ?level=ad\n",
    "    &fields=ad_id,impressions,inline_link_clicks,reach\n",
    "    &time_ranges=[{\"since\":\"<LAUNCH>\",\"until\":\"<LAUNCH>\"},\n",
    "                  {\"since\":\"<LAUNCH>\",\"until\":\"<LAUNCH + 1 day>\"},\n",
    "                  ... one range per day, every one starting at <LAUNCH> ...]\n",
    "Each row comes back with date_start = <LAUNCH> and date_stop = the range's end day: use\n",
    "date_stop as the date, inline_link_clicks as clicks, then from_ranges_to_date(frame).\n",
    "In Ads Manager the same thing is one export per end day, each from the launch date.\n",
    "\"\"\"\n",
    "print(REACH_TO_DATE_RECIPE)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f548076f",
   "metadata": {},
   "source": [
    "## The honest-failure demonstrations\n",
    "\n",
    "Two files that should not produce a confident answer. If either of these\n",
    "printed an onset, the notebook would be lying to you."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "1e343d8f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:52.968055Z",
     "iopub.status.busy": "2026-10-24T12:48:52.967285Z",
     "iopub.status.idle": "2026-10-24T12:48:53.012900Z",
     "shell.execute_reply": "2026-10-24T12:48:53.011825Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "REFUSED, as it should:\n",
      " Could not find the column(s) date, impressions, clicks. The file's columns are 'ad_name', 'spend'. Rename the column in the file, or add its name to the list this cell accepts.\n",
      "The notebook needs creative_id, date, impressions, clicks; reach to date is optional.\n",
      "\n",
      " creative_id    rung      verdict                                             note\n",
      "       ad_1 silence INSUFFICIENT only 6 days of history - a bend needs at least 8\n"
     ]
    }
   ],
   "source": [
    "demo_dir = HERE / \"_demo_inputs\"\n",
    "demo_dir.mkdir(exist_ok=True)\n",
    "\n",
    "# 1. A file with the wrong columns.\n",
    "pd.DataFrame({\"ad_name\": [\"a\", \"b\"], \"spend\": [10, 20]}).to_csv(demo_dir / \"wrong_columns.csv\", index=False)\n",
    "try:\n",
    "    read_creative_csv(demo_dir / \"wrong_columns.csv\")\n",
    "except DataProblem as problem:\n",
    "    print(\"REFUSED, as it should:\\n\", problem)\n",
    "\n",
    "# 2. A file that is clean but far too short to judge.\n",
    "short = pd.DataFrame({\n",
    "    \"creative_id\": [\"ad_1\"] * 6,\n",
    "    \"date\": pd.date_range(\"2026-08-01\", periods=6),\n",
    "    \"impressions\": [900] * 6,\n",
    "    \"clicks\": [16] * 6,\n",
    "    \"reach\": np.cumsum([700] * 6),\n",
    "})\n",
    "short.to_csv(demo_dir / \"too_short.csv\", index=False)\n",
    "print(\"\\n\", score_your_data(read_creative_csv(demo_dir / \"too_short.csv\")).to_string(index=False))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "58a76df1",
   "metadata": {},
   "source": [
    "## A second synthetic dataset, to prove the your-data path reproduces a known answer\n",
    "\n",
    "The same generator, a different seed, written out as a CSV and read back through\n",
    "the reader the way your own file would be, so the path you use is the path that\n",
    "was tested."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "2cedabd7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-24T12:48:53.017094Z",
     "iopub.status.busy": "2026-10-24T12:48:53.016748Z",
     "iopub.status.idle": "2026-10-24T12:48:53.087977Z",
     "shell.execute_reply": "2026-10-24T12:48:53.087097Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   creative_id            rung        verdict  baseline_rate_pct  last_week_rate_pct unchanged_range_pct    z  drop_pct                                                                               note  level_pct level_range_pct  onset  onset_range  decay    decay_range  drop_so_far_pct\n",
      "ad_other_cause no-change range   DECLINE_ONLY              1.746               1.325      1.644 to 1.848 8.28      24.1 below the no-change range but exposure did not rise - look elsewhere for the cause        NaN             NaN    NaN          NaN    NaN            NaN              NaN\n",
      "     ad_steady no-change range         STEADY              1.820               1.790      1.708 to 1.932 0.53       1.6                  the current rate sits inside the range it would land in unchanged        NaN             NaN    NaN          NaN    NaN            NaN              NaN\n",
      "   ad_worn_out    fitted decay FATIGUE_FITTED                NaN                 NaN                 NaN  NaN       NaN                         response falls along the exposure axis from a fitted onset      1.787  1.754 to 1.820   2.35 1.74 to 2.95  0.082 0.067 to 0.101             30.1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_784387/443044623.py:9: DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`). Please use a specific unit instead.\n",
      "  \"date\": pd.Timestamp(\"2026-07-01\") + pd.Timedelta(days=day),\n"
     ]
    }
   ],
   "source": [
    "check_rng = np.random.default_rng(SEED + 99)\n",
    "export_rows = []\n",
    "for name, kind in ((\"ad_worn_out\", \"fatiguing\"), (\"ad_steady\", \"steady\"), (\"ad_other_cause\", \"external\")):\n",
    "    creative = make_creative(kind, TIERS[\"high\"], check_rng)\n",
    "    cumulative_reach = np.cumsum(creative[\"impressions\"]) / np.maximum(creative[\"frequency\"], 1e-9)\n",
    "    for day in range(DAYS):\n",
    "        export_rows.append({\n",
    "            \"creative_id\": name,\n",
    "            \"date\": pd.Timestamp(\"2026-07-01\") + pd.Timedelta(days=day),\n",
    "            \"impressions\": int(creative[\"impressions\"][day]),\n",
    "            \"clicks\": int(creative[\"clicks\"][day]),\n",
    "            \"reach\": int(cumulative_reach[day]),\n",
    "        })\n",
    "pd.DataFrame(export_rows).to_csv(demo_dir / \"second_dataset.csv\", index=False)\n",
    "\n",
    "replay = score_your_data(read_creative_csv(demo_dir / \"second_dataset.csv\"))\n",
    "print(replay.to_string(index=False))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "41e9a0f5",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "## What this method claims, and what it does not\n",
    "\n",
    "**It claims:** this creative's response is falling as a function of how many\n",
    "times the average person has seen it: from a fitted level, at a fitted onset,\n",
    "at a fitted rate, each with a range. When the bend cannot be fitted, it claims\n",
    "less: a decline and its size against where the rate would land unchanged, or\n",
    "nothing at all.\n",
    "\n",
    "**It does not claim** a causal measurement, or that repetition itself caused the\n",
    "decline. Exposure is the coordinate, not the asserted cause. The shape is\n",
    "consistent with fatigue and also with anything that moves in step with exposure\n",
    "(an audience-quality shift as the reachable pool runs out, a bid change pulling\n",
    "in colder traffic). The only way to settle it is to hold the creative constant in\n",
    "a randomised slice of the audience and compare, which is an experiment, not a\n",
    "score. And the single-bend model has no state for a creative that dips and\n",
    "recovers, or dips and holds; one scored during the dip reads as tired, and one\n",
    "that held is the shape measured above as the method's limit.\n",
    "\n",
    "**Sources.** The segmented fit (a flat segment joined to a sloping one at an\n",
    "estimated break) is Muggeo (2003), *Estimating regression models with unknown\n",
    "break-points*. That detecting a change in *slope* is a harder problem than a\n",
    "change in level, and that the usual change-point detectors do not do it, is\n",
    "Maidstone, Fearnhead and Letchford (2019), *Detecting changes in slope with an\n",
    "L0 penalty*. The two-standard-error gate at the fallback rung is Shaw (2025),\n",
    "*A Level-Aware Path Signature Framework for Synthetic Screening of\n",
    "Fatigue-Related Advertising Performance Changes*. The wearout-versus-weariness\n",
    "distinction is Chae, Bruno and Feinberg (2019), *Wearout or Weariness?*, *Journal\n",
    "of Marketing Research* 56(1), a study whose identification rests on exposure\n",
    "being effectively **random**, which a live account never gives you. The robust\n",
    "slope is Theil (1950) and Sen (1968). That frequency builds response at a\n",
    "decreasing rate with no decline of its own, and that excessive frequency can\n",
    "advance the decline of an effective campaign, is Naples (1979), *Effective\n",
    "Frequency*.\n",
    "\n",
    "**The data above is synthetic**, generated in this notebook so that every claim\n",
    "could be scored against a known truth; the real-data section reads results from\n",
    "a stored run on a public dataset. The thresholds are demonstration rules of\n",
    "thumb, not settings tuned on any real account."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
