{
  "title": "Scale a holdout outcome rate before subtracting conversions",
  "synthetic": true,
  "inputs": {
    "tn": 1000,
    "tc": 80,
    "cn": 500,
    "cc": 30
  },
  "outputs": [
    {
      "label": "Scaled holdout conversions",
      "actual": 60,
      "expected": 60,
      "passed": true
    },
    {
      "label": "Descriptive excess conversions",
      "actual": 20,
      "expected": 20,
      "passed": true
    },
    {
      "label": "Rate difference percentage points",
      "actual": 2.0000000000000004,
      "expected": 2.0000000000000004,
      "passed": true
    }
  ],
  "constraints": [
    "v.tc<=v.tn",
    "v.cc<=v.cn"
  ],
  "formulas": [
    {
      "label": "Scaled holdout conversions",
      "javascript": "v.cc/v.cn*v.tn"
    },
    {
      "label": "Descriptive excess conversions",
      "javascript": "v.tc-v.cc/v.cn*v.tn"
    },
    {
      "label": "Rate difference percentage points",
      "javascript": "100*(v.tc/v.tn-v.cc/v.cn)"
    }
  ],
  "limits": "Random assignment, comparable observation and limited spillover are unverified. The worksheet does not model sampling uncertainty, noncompliance, household clustering or interactions with concurrent campaigns."
}
