{
 "about": {
  "method": "counts",
  "origin": "Original synthetic values, except the R help pages' smokers (?prop.trend.test) and tea tasting (?fisher.test)",
  "ruling": "CSO memo of 13 October 2026 (docs/board/memos/2026-10-13-cso-counts.md); roadmap A-2 family 5",
  "settings": {
   "chi-squared": "chisq.test(x, correct = FALSE); on 2 x 2 also chisq.test(x, correct = TRUE)",
   "Fisher": "fisher.test(x, workspace = 2e8, conf.level = level); the 2 x 2 conditional MLE and interval from a transcription of fisher.test's internals with uniroot(tol = 1e-12)",
   "r x c bound": "10000000 tables, counted here exactly from the margins",
   "measures": "Woolf odds ratio, Katz relative risk, Newcombe hybrid score risk difference (method 10), by hand in R with qnorm",
   "proportions": "prop.test(x, n, correct = FALSE)$conf.int (Wilson)",
   "McNemar": "binom.test(b, b + c, 0.5) primary; mcnemar.test(correct = FALSE) second; mcnemar.test(correct = TRUE) in the export; paired OR b/c with the Clopper-Pearson limits mapped p/(1 - p)",
   "trend": "prop.trend.test(x, n, score)"
  },
  "withheldCodes": [
   "UNIT_NOT_INDEPENDENT",
   "DESIGN_UNDECLARED",
   "COUNT_REFUSED",
   "TABLE_SIZE",
   "ZERO_MARGIN",
   "NOT_2X2",
   "ROLES_UNDECLARED",
   "ZERO_CELL",
   "DESIGN_RR",
   "FISHER_TOO_LARGE",
   "NO_DISCORDANT",
   "TOO_FEW_GROUPS",
   "SCORES_INVALID",
   "NOT_TWO_COLUMNS"
  ],
  "tolerances": {
   "arithmetic (odds ratio, relative risk, risk difference, proportions, expected counts, X2)": "1e-9 relative",
   "qnorm-based bounds": "1e-9 relative",
   "chi-squared and normal p": "1e-8 relative",
   "Fisher 2 x 2 p, binomial p and Clopper-Pearson bounds": "1e-8 relative",
   "Fisher r x c p against fisher.test(workspace = 2e8)": "1e-6 relative",
   "conditional MLE odds ratio and its interval": "1e-8 relative against the uniroot(tol = 1e-12) transcription; fisher.test's own recorded",
   "p below 1e-300": "absolute",
   "withheld states, codes and refused cells": "exact"
  },
  "recordedOn": "2026-10-13",
  "script": "pipeline/assay-analyser/oracles/counts.py",
  "scriptSha256": "42c9ec8c7412cda431ca92c62e1167ca47ac6404086339cd3745c2a0a12dda13",
  "helper": {
   "script": "pipeline/assay-analyser/oracles/stage_a_oracle.py",
   "sha256": "492d85ca2fa6750db80b1c64214fd4a0b13cd4c588267244f6262c504c73e3e8"
  },
  "environment": {
   "image": "ghcr.io/biotechmat/drybench/oracle-env:11b8a5e4456df7eb@sha256:7e69891ca1d9f24838660e0a9887bdb654ce7771d2f2ac7e7275e9b1eb3b6a09",
   "r": "R version 4.4.3 (2025-02-28)",
   "packages": {
    "jsonlite": "2.0.0"
   },
   "python": "3.11.15",
   "numpy": "2.0.2",
   "scipy": "1.13.1",
   "recordedOn": "2026-10-13",
   "cpu": "AMD EPYC 7763 64-Core Processor",
   "cpuClass": "x86-64-v3",
   "simd": [
    "SSSE3",
    "SSE41",
    "POPCNT",
    "SSE42",
    "AVX",
    "F16C",
    "FMA3",
    "AVX2"
   ],
   "openblasCore": "Haswell",
   "threads": 1
  },
  "crossCheck": {
   "tool": "checks inside R (Wilson by hand against prop.test; fisher.test against the tight transcription)",
   "ran": true,
   "cases": 37,
   "agreeing": 37,
   "result": [
    {
     "what": "tea-tasting conditional estimate: fisher.test against the tol 1e-12 transcription",
     "transcription": 6.40831965820435,
     "fisherTest": 6.40830886700579,
     "agrees": true
    },
    {
     "what": "tea-tasting conditional lower: fisher.test against the tol 1e-12 transcription",
     "transcription": 0.211735595446578,
     "fisherTest": 0.211732915305503,
     "agrees": true
    },
    {
     "what": "tea-tasting conditional upper: fisher.test against the tol 1e-12 transcription",
     "transcription": 626.243530686334,
     "fisherTest": 621.933750545417,
     "agrees": true
    },
    {
     "what": "tea-tasting Wilson by hand against prop.test",
     "difference": 1.38777878078145e-17,
     "agrees": true
    },
    {
     "what": "hand-2x2-chi-squared Wilson by hand against prop.test",
     "difference": 2.77555756156289e-17,
     "agrees": true
    },
    {
     "what": "hand-2x2-fisher conditional estimate: fisher.test against the tol 1e-12 transcription",
     "transcription": 2.41780518804621,
     "fisherTest": 2.41781401226808,
     "agrees": true
    },
    {
     "what": "hand-2x2-fisher conditional lower: fisher.test against the tol 1e-12 transcription",
     "transcription": 1.15414553224601,
     "fisherTest": 1.15412959027888,
     "agrees": true
    },
    {
     "what": "hand-2x2-fisher conditional upper: fisher.test against the tol 1e-12 transcription",
     "transcription": 5.24670494131667,
     "fisherTest": 5.24639899646817,
     "agrees": true
    },
    {
     "what": "hand-2x2-fisher Wilson by hand against prop.test",
     "difference": 2.77555756156289e-17,
     "agrees": true
    },
    {
     "what": "expected-below-5 Wilson by hand against prop.test",
     "difference": 5.55111512312578e-17,
     "agrees": true
    },
    {
     "what": "expected-below-1 Wilson by hand against prop.test",
     "difference": 3.46944695195361e-18,
     "agrees": true
    },
    {
     "what": "yates-capped Wilson by hand against prop.test",
     "difference": 5.55111512312578e-17,
     "agrees": true
    },
    {
     "what": "zero-cell-a conditional upper: fisher.test against the tol 1e-12 transcription",
     "transcription": 0.836521793917735,
     "fisherTest": 0.836542842502002,
     "agrees": true
    },
    {
     "what": "zero-cell-a Wilson by hand against prop.test",
     "difference": 2.77555756156289e-17,
     "agrees": true
    },
    {
     "what": "zero-cell-b conditional lower: fisher.test against the tol 1e-12 transcription",
     "transcription": 1.19542611713275,
     "fisherTest": 1.19539603854492,
     "agrees": true
    },
    {
     "what": "zero-cell-b Wilson by hand against prop.test",
     "difference": 2.77555756156289e-17,
     "agrees": true
    },
    {
     "what": "case-control conditional estimate: fisher.test against the tol 1e-12 transcription",
     "transcription": 2.41780518804621,
     "fisherTest": 2.41781401226808,
     "agrees": true
    },
    {
     "what": "case-control conditional lower: fisher.test against the tol 1e-12 transcription",
     "transcription": 1.15414553224601,
     "fisherTest": 1.15412959027888,
     "agrees": true
    },
    {
     "what": "case-control conditional upper: fisher.test against the tol 1e-12 transcription",
     "transcription": 5.24670494131667,
     "fisherTest": 5.24639899646817,
     "agrees": true
    },
    {
     "what": "case-control Wilson by hand against prop.test",
     "difference": 2.77555756156289e-17,
     "agrees": true
    },
    {
     "what": "exposed-swapped conditional estimate: fisher.test against the tol 1e-12 transcription",
     "transcription": 0.413598252226469,
     "fisherTest": 0.413596742729574,
     "agrees": true
    },
    {
     "what": "exposed-swapped conditional lower: fisher.test against the tol 1e-12 transcription",
     "transcription": 0.190595814169998,
     "fisherTest": 0.190606928804536,
     "agrees": true
    },
    {
     "what": "exposed-swapped conditional upper: fisher.test against the tol 1e-12 transcription",
     "transcription": 0.866441858553111,
     "fisherTest": 0.866453826695805,
     "agrees": true
    },
    {
     "what": "exposed-swapped Wilson by hand against prop.test",
     "difference": 2.77555756156289e-17,
     "agrees": true
    },
    {
     "what": "large-counts Wilson by hand against prop.test",
     "difference": 1.11022302462516e-16,
     "agrees": true
    },
    {
     "what": "large-fisher conditional estimate: fisher.test against the tol 1e-12 transcription",
     "transcription": 1.08333289965314,
     "fisherTest": 1.08333218701539,
     "agrees": true
    },
    {
     "what": "large-fisher conditional lower: fisher.test against the tol 1e-12 transcription",
     "transcription": 1.06445748685185,
     "fisherTest": 1.06445886804647,
     "agrees": true
    },
    {
     "what": "large-fisher conditional upper: fisher.test against the tol 1e-12 transcription",
     "transcription": 1.10254386447626,
     "fisherTest": 1.10255043426025,
     "agrees": true
    },
    {
     "what": "large-fisher Wilson by hand against prop.test",
     "difference": 1.11022302462516e-16,
     "agrees": true
    },
    {
     "what": "level-90 conditional estimate: fisher.test against the tol 1e-12 transcription",
     "transcription": 2.41780518804621,
     "fisherTest": 2.41781401226808,
     "agrees": true
    },
    {
     "what": "level-90 conditional lower: fisher.test against the tol 1e-12 transcription",
     "transcription": 1.28446422068976,
     "fisherTest": 1.2844647272336,
     "agrees": true
    },
    {
     "what": "level-90 conditional upper: fisher.test against the tol 1e-12 transcription",
     "transcription": 4.65934835998654,
     "fisherTest": 4.65935228550437,
     "agrees": true
    },
    {
     "what": "level-90 Wilson by hand against prop.test",
     "difference": 5.55111512312578e-17,
     "agrees": true
    },
    {
     "what": "level-99 conditional estimate: fisher.test against the tol 1e-12 transcription",
     "transcription": 2.41780518804621,
     "fisherTest": 2.41781401226808,
     "agrees": true
    },
    {
     "what": "level-99 conditional lower: fisher.test against the tol 1e-12 transcription",
     "transcription": 0.937083636225826,
     "fisherTest": 0.93707692808055,
     "agrees": true
    },
    {
     "what": "level-99 conditional upper: fisher.test against the tol 1e-12 transcription",
     "transcription": 6.64927997706002,
     "fisherTest": 6.64967217781833,
     "agrees": true
    },
    {
     "what": "level-99 Wilson by hand against prop.test",
     "difference": 2.77555756156289e-17,
     "agrees": true
    }
   ],
   "r": {
    "tool": "R stats",
    "version": "R version 4.4.3 (2025-02-28)",
    "script": "pipeline/assay-analyser/oracles/r/counts.R",
    "scriptSha256": "3390c38f8a2670c9f6b5329cfd65dbcfadc91f5271f3fef85bc8887d329c7300",
    "jobs": 117
   }
  }
 },
 "oracle": {
  "engine": "R stats (counts.R)",
  "method": "every number from R; the withholding policy from the memo, applied here"
 },
 "cases": [
  {
   "name": "tea-tasting",
   "text": "\tMilk\tTea\nMilk first\t3\t1\nTea first\t1\t3",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Milk first",
      "Tea first"
     ],
     "columns": [
      "Milk",
      "Tea"
     ],
     "counts": [
      [
       3,
       1
      ],
      [
       1,
       3
      ]
     ]
    },
    "totals": {
     "rows": [
      4,
      4
     ],
     "columns": [
      4,
      4
     ],
     "n": 8
    },
    "expected": [
     [
      2,
      2
     ],
     [
      2,
      2
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Milk first",
      "x": 3,
      "n": 4,
      "proportion": 0.75,
      "interval": {
       "status": "value",
       "estimate": 0.75,
       "lower": 0.300641842582402,
       "upper": 0.954412739190299
      }
     },
     {
      "row": "Tea first",
      "x": 1,
      "n": 4,
      "proportion": 0.25,
      "interval": {
       "status": "value",
       "estimate": 0.25,
       "lower": 0.0455872608097006,
       "upper": 0.699358157417598
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.485714285714286
     },
     "conditionalOr": {
      "status": "value",
      "estimate": 6.40831965820435,
      "lower": 0.211735595446578,
      "upper": 626.243530686334
     },
     "fisherTestConditional": {
      "estimate": 6.40830886700579,
      "lower": 0.211732915305503,
      "upper": 621.933750545417
     },
     "oddsRatio": {
      "status": "value",
      "estimate": 9,
      "lower": 0.366636931925546,
      "upper": 220.927006929157
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 3,
      "lower": 0.501284309386941,
      "upper": 17.9538833182447
     },
     "riskDifference": {
      "status": "value",
      "estimate": 0.5,
      "lower": -0.135488400582951,
      "upper": 0.789083268084756
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "hand-2x2-chi-squared",
   "text": "\tEvent\tNone\nTreated\t30\t70\nControl\t15\t85",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       30,
       70
      ],
      [
       15,
       85
      ]
     ]
    },
    "totals": {
     "rows": [
      100,
      100
     ],
     "columns": [
      45,
      155
     ],
     "n": 200
    },
    "expected": [
     [
      22.5,
      77.5
     ],
     [
      22.5,
      77.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 30,
      "n": 100,
      "proportion": 0.3,
      "interval": {
       "status": "value",
       "estimate": 0.3,
       "lower": 0.218948852949328,
       "upper": 0.395848546333467
      }
     },
     {
      "row": "Control",
      "x": 15,
      "n": 100,
      "proportion": 0.15,
      "interval": {
       "status": "value",
       "estimate": 0.15,
       "lower": 0.0930598528365663,
       "upper": 0.232835595908324
      }
     }
    ],
    "association": {
     "test": "chi-squared",
     "pointer": null,
     "chiSquared": {
      "status": "value",
      "statistic": 6.45161290322581,
      "df": 1,
      "p": 0.0110851663806027
     },
     "yates": {
      "status": "value",
      "statistic": 5.62007168458781,
      "df": 1,
      "p": 0.0177559226140361
     },
     "fisher": {
      "status": "not-run"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "status": "value",
      "estimate": 2.42857142857143,
      "lower": 1.21099920892763,
      "upper": 4.87032455528708
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 2,
      "lower": 1.14887781259183,
      "upper": 3.48165832446196
     },
     "riskDifference": {
      "status": "value",
      "estimate": 0.15,
      "lower": 0.0341077035014113,
      "upper": 0.261485982048113
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "hand-2x2-fisher",
   "text": "\tEvent\tNone\nTreated\t30\t70\nControl\t15\t85",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       30,
       70
      ],
      [
       15,
       85
      ]
     ]
    },
    "totals": {
     "rows": [
      100,
      100
     ],
     "columns": [
      45,
      155
     ],
     "n": 200
    },
    "expected": [
     [
      22.5,
      77.5
     ],
     [
      22.5,
      77.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 30,
      "n": 100,
      "proportion": 0.3,
      "interval": {
       "status": "value",
       "estimate": 0.3,
       "lower": 0.218948852949328,
       "upper": 0.395848546333467
      }
     },
     {
      "row": "Control",
      "x": 15,
      "n": 100,
      "proportion": 0.15,
      "interval": {
       "status": "value",
       "estimate": 0.15,
       "lower": 0.0930598528365663,
       "upper": 0.232835595908324
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.0171490227684085
     },
     "conditionalOr": {
      "status": "value",
      "estimate": 2.41780518804621,
      "lower": 1.15414553224601,
      "upper": 5.24670494131667
     },
     "fisherTestConditional": {
      "estimate": 2.41781401226808,
      "lower": 1.15412959027888,
      "upper": 5.24639899646817
     },
     "oddsRatio": {
      "status": "value",
      "estimate": 2.42857142857143,
      "lower": 1.21099920892763,
      "upper": 4.87032455528708
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 2,
      "lower": 1.14887781259183,
      "upper": 3.48165832446196
     },
     "riskDifference": {
      "status": "value",
      "estimate": 0.15,
      "lower": 0.0341077035014113,
      "upper": 0.261485982048113
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "expected-below-5",
   "text": "\tEvent\tNone\nTreated\t6\t14\nControl\t2\t18",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       6,
       14
      ],
      [
       2,
       18
      ]
     ]
    },
    "totals": {
     "rows": [
      20,
      20
     ],
     "columns": [
      8,
      32
     ],
     "n": 40
    },
    "expected": [
     [
      4,
      16
     ],
     [
      4,
      16
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 6,
      "n": 20,
      "proportion": 0.3,
      "interval": {
       "status": "value",
       "estimate": 0.3,
       "lower": 0.145477244867604,
       "upper": 0.518972818353523
      }
     },
     {
      "row": "Control",
      "x": 2,
      "n": 20,
      "proportion": 0.1,
      "interval": {
       "status": "value",
       "estimate": 0.1,
       "lower": 0.0278664812137682,
       "upper": 0.301033645228487
      }
     }
    ],
    "association": {
     "test": "chi-squared",
     "pointer": "below-5",
     "chiSquared": {
      "status": "value",
      "statistic": 2.5,
      "df": 1,
      "p": 0.113846298006658
     },
     "yates": {
      "status": "value",
      "statistic": 1.40625,
      "df": 1,
      "p": 0.235679913429038
     },
     "fisher": {
      "status": "not-run"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "status": "value",
      "estimate": 3.85714285714286,
      "lower": 0.672907112835675,
      "upper": 22.1093680489023
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 3,
      "lower": 0.686056701661792,
      "upper": 13.118449215932
     },
     "riskDifference": {
      "status": "value",
      "estimate": 0.2,
      "lower": -0.0535582938252259,
      "upper": 0.430547911962283
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "expected-below-1",
   "text": "\tEvent\tNone\nTreated\t2\t30\nControl\t0\t25",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       2,
       30
      ],
      [
       0,
       25
      ]
     ]
    },
    "totals": {
     "rows": [
      32,
      25
     ],
     "columns": [
      2,
      55
     ],
     "n": 57
    },
    "expected": [
     [
      1.12280701754386,
      30.8771929824561
     ],
     [
      0.87719298245614,
      24.1228070175439
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 2,
      "n": 32,
      "proportion": 0.0625,
      "interval": {
       "status": "value",
       "estimate": 0.0625,
       "lower": 0.017310567031641,
       "upper": 0.201471231441546
      }
     },
     {
      "row": "Control",
      "x": 0,
      "n": 25,
      "proportion": 0.0,
      "interval": {
       "status": "value",
       "estimate": 0,
       "lower": 0,
       "upper": 0.133192250939048
      }
     }
    ],
    "association": {
     "test": "chi-squared",
     "pointer": "below-1",
     "chiSquared": {
      "status": "value",
      "statistic": 1.61931818181818,
      "df": 1,
      "p": 0.203186883597333
     },
     "yates": {
      "status": "value",
      "statistic": 0.299411931818182,
      "df": 1,
      "p": 0.584251321738041
     },
     "fisher": {
      "status": "not-run"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "ZERO_CELL"
     },
     "relativeRisk": {
      "withheld": "ZERO_CELL"
     },
     "riskDifference": {
      "status": "value",
      "estimate": 0.0625,
      "lower": -0.0781494243223635,
      "upper": 0.201471231441546
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "yates-capped",
   "text": "\tEvent\tNone\nTreated\t5\t5\nControl\t5\t4",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       5,
       5
      ],
      [
       5,
       4
      ]
     ]
    },
    "totals": {
     "rows": [
      10,
      9
     ],
     "columns": [
      10,
      9
     ],
     "n": 19
    },
    "expected": [
     [
      5.26315789473684,
      4.73684210526316
     ],
     [
      4.73684210526316,
      4.26315789473684
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 5,
      "n": 10,
      "proportion": 0.5,
      "interval": {
       "status": "value",
       "estimate": 0.5,
       "lower": 0.236593090512564,
       "upper": 0.763406909487436
      }
     },
     {
      "row": "Control",
      "x": 5,
      "n": 9,
      "proportion": 0.5555555555555556,
      "interval": {
       "status": "value",
       "estimate": 0.555555555555556,
       "lower": 0.266651293495493,
       "upper": 0.811221478902335
      }
     }
    ],
    "association": {
     "test": "chi-squared",
     "pointer": "below-5",
     "chiSquared": {
      "status": "value",
      "statistic": 0.0586419753086421,
      "df": 1,
      "p": 0.808655372639763
     },
     "yates": {
      "status": "value",
      "statistic": 0,
      "df": 1,
      "p": 1
     },
     "fisher": {
      "status": "not-run"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "status": "value",
      "estimate": 0.8,
      "lower": 0.131316996223109,
      "upper": 4.87370270724615
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 0.9,
      "lower": 0.3839713607845,
      "upper": 2.10953233164336
     },
     "riskDifference": {
      "status": "value",
      "estimate": -0.0555555555555556,
      "lower": -0.422636288264974,
      "upper": 0.335403358656912
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "zero-cell-a",
   "text": "\tEvent\tNone\nTreated\t0\t10\nControl\t5\t5",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       0,
       10
      ],
      [
       5,
       5
      ]
     ]
    },
    "totals": {
     "rows": [
      10,
      10
     ],
     "columns": [
      5,
      15
     ],
     "n": 20
    },
    "expected": [
     [
      2.5,
      7.5
     ],
     [
      2.5,
      7.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 0,
      "n": 10,
      "proportion": 0.0,
      "interval": {
       "status": "value",
       "estimate": 0,
       "lower": 0,
       "upper": 0.277532799862889
      }
     },
     {
      "row": "Control",
      "x": 5,
      "n": 10,
      "proportion": 0.5,
      "interval": {
       "status": "value",
       "estimate": 0.5,
       "lower": 0.236593090512564,
       "upper": 0.763406909487436
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.0325077399380805
     },
     "conditionalOr": {
      "status": "value",
      "estimate": 0,
      "lower": 0,
      "upper": 0.836521793917735
     },
     "fisherTestConditional": {
      "estimate": 0,
      "lower": 0,
      "upper": 0.836542842502002
     },
     "oddsRatio": {
      "withheld": "ZERO_CELL"
     },
     "relativeRisk": {
      "withheld": "ZERO_CELL"
     },
     "riskDifference": {
      "status": "value",
      "estimate": -0.5,
      "lower": -0.763406909487436,
      "upper": -0.117367467450222
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "zero-cell-b",
   "text": "\tEvent\tNone\nTreated\t10\t0\nControl\t5\t5",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       10,
       0
      ],
      [
       5,
       5
      ]
     ]
    },
    "totals": {
     "rows": [
      10,
      10
     ],
     "columns": [
      15,
      5
     ],
     "n": 20
    },
    "expected": [
     [
      7.5,
      2.5
     ],
     [
      7.5,
      2.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 10,
      "n": 10,
      "proportion": 1.0,
      "interval": {
       "status": "value",
       "estimate": 1,
       "lower": 0.722467200137111,
       "upper": 1
      }
     },
     {
      "row": "Control",
      "x": 5,
      "n": 10,
      "proportion": 0.5,
      "interval": {
       "status": "value",
       "estimate": 0.5,
       "lower": 0.236593090512564,
       "upper": 0.763406909487436
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.0325077399380805
     },
     "conditionalOr": {
      "status": "value",
      "estimate": "not-finite",
      "lower": 1.19542611713275,
      "upper": "unbounded"
     },
     "fisherTestConditional": {
      "estimate": "Inf",
      "lower": 1.19539603854492,
      "upper": "Inf"
     },
     "oddsRatio": {
      "withheld": "ZERO_CELL"
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 2,
      "lower": 1.07610942025418,
      "upper": 3.71709412139073
     },
     "riskDifference": {
      "status": "value",
      "estimate": 0.5,
      "lower": 0.117367467450222,
      "upper": 0.763406909487436
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "zero-row",
   "text": "\tEvent\tNone\nTreated\t0\t0\nControl\t5\t5",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       0,
       0
      ],
      [
       5,
       5
      ]
     ]
    },
    "totals": {
     "rows": [
      0,
      10
     ],
     "columns": [
      5,
      5
     ],
     "n": 10
    },
    "expected": null,
    "zeroMargins": [
     {
      "kind": "row",
      "name": "Treated"
     }
    ],
    "proportions": [
     {
      "row": "Treated",
      "x": 0,
      "n": 0,
      "proportion": null,
      "interval": {
       "withheld": "ZERO_MARGIN"
      }
     },
     {
      "row": "Control",
      "x": 5,
      "n": 10,
      "proportion": 0.5,
      "interval": {
       "status": "value",
       "estimate": 0.5,
       "lower": 0.236593090512564,
       "upper": 0.763406909487436
      }
     }
    ],
    "association": {
     "test": "chi-squared",
     "pointer": null,
     "chiSquared": {
      "withheld": "ZERO_MARGIN"
     },
     "yates": {
      "withheld": "ZERO_MARGIN"
     },
     "fisher": {
      "status": "not-run"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "ZERO_MARGIN"
     },
     "relativeRisk": {
      "withheld": "ZERO_MARGIN"
     },
     "riskDifference": {
      "withheld": "ZERO_MARGIN"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "zero-column",
   "text": "\tEvent\tNone\nTreated\t0\t7\nControl\t0\t5",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       0,
       7
      ],
      [
       0,
       5
      ]
     ]
    },
    "totals": {
     "rows": [
      7,
      5
     ],
     "columns": [
      0,
      12
     ],
     "n": 12
    },
    "expected": null,
    "zeroMargins": [
     {
      "kind": "column",
      "name": "Event"
     }
    ],
    "proportions": [
     {
      "row": "Treated",
      "x": 0,
      "n": 7,
      "proportion": 0.0,
      "interval": {
       "status": "value",
       "estimate": 0,
       "lower": 0,
       "upper": 0.354330435066687
      }
     },
     {
      "row": "Control",
      "x": 0,
      "n": 5,
      "proportion": 0.0,
      "interval": {
       "status": "value",
       "estimate": 0,
       "lower": 0,
       "upper": 0.434482464783175
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "withheld": "ZERO_MARGIN"
     },
     "conditionalOr": {
      "withheld": "ZERO_MARGIN"
     },
     "oddsRatio": {
      "withheld": "ZERO_MARGIN"
     },
     "relativeRisk": {
      "withheld": "ZERO_MARGIN"
     },
     "riskDifference": {
      "withheld": "ZERO_MARGIN"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "two-by-three",
   "text": "\tC1\tC2\tC3\nR1\t12\t5\t9\nR2\t7\t11\t4",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "R1",
      "R2"
     ],
     "columns": [
      "C1",
      "C2",
      "C3"
     ],
     "counts": [
      [
       12,
       5,
       9
      ],
      [
       7,
       11,
       4
      ]
     ]
    },
    "totals": {
     "rows": [
      26,
      22
     ],
     "columns": [
      19,
      16,
      13
     ],
     "n": 48
    },
    "expected": [
     [
      10.2916666666667,
      8.66666666666667,
      7.04166666666667
     ],
     [
      8.70833333333333,
      7.33333333333333,
      5.95833333333333
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "R1",
      "x": 12,
      "n": 26,
      "proportion": 0.46153846153846156,
      "interval": {
       "status": "value",
       "estimate": 0.461538461538462,
       "lower": 0.287558535303912,
       "upper": 0.645420612531412
      }
     },
     {
      "row": "R2",
      "x": 7,
      "n": 22,
      "proportion": 0.3181818181818182,
      "interval": {
       "status": "value",
       "estimate": 0.318181818181818,
       "lower": 0.163605931813563,
       "upper": 0.526814022589572
      }
     }
    ],
    "association": {
     "test": "chi-squared",
     "pointer": null,
     "chiSquared": {
      "status": "value",
      "statistic": 5.19158574219303,
      "df": 2,
      "p": 0.0745867149734849
     },
     "yates": null,
     "fisher": {
      "status": "not-run"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "NOT_2X2"
     },
     "relativeRisk": {
      "withheld": "NOT_2X2"
     },
     "riskDifference": {
      "withheld": "NOT_2X2"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "two-by-three-fisher",
   "text": "\tC1\tC2\tC3\nR1\t12\t5\t9\nR2\t7\t11\t4",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "R1",
      "R2"
     ],
     "columns": [
      "C1",
      "C2",
      "C3"
     ],
     "counts": [
      [
       12,
       5,
       9
      ],
      [
       7,
       11,
       4
      ]
     ]
    },
    "totals": {
     "rows": [
      26,
      22
     ],
     "columns": [
      19,
      16,
      13
     ],
     "n": 48
    },
    "expected": [
     [
      10.2916666666667,
      8.66666666666667,
      7.04166666666667
     ],
     [
      8.70833333333333,
      7.33333333333333,
      5.95833333333333
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "R1",
      "x": 12,
      "n": 26,
      "proportion": 0.46153846153846156,
      "interval": {
       "status": "value",
       "estimate": 0.461538461538462,
       "lower": 0.287558535303912,
       "upper": 0.645420612531412
      }
     },
     {
      "row": "R2",
      "x": 7,
      "n": 22,
      "proportion": 0.3181818181818182,
      "interval": {
       "status": "value",
       "estimate": 0.318181818181818,
       "lower": 0.163605931813563,
       "upper": 0.526814022589572
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.0769676849531213,
      "tables": 204
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "NOT_2X2"
     },
     "relativeRisk": {
      "withheld": "NOT_2X2"
     },
     "riskDifference": {
      "withheld": "NOT_2X2"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "four-by-five",
   "text": "\tC1\tC2\tC3\tC4\tC5\nR1\t4\t6\t3\t2\t5\nR2\t3\t2\t6\t4\t1\nR3\t5\t3\t2\t6\t4\nR4\t1\t4\t5\t3\t6",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "R1",
      "R2",
      "R3",
      "R4"
     ],
     "columns": [
      "C1",
      "C2",
      "C3",
      "C4",
      "C5"
     ],
     "counts": [
      [
       4,
       6,
       3,
       2,
       5
      ],
      [
       3,
       2,
       6,
       4,
       1
      ],
      [
       5,
       3,
       2,
       6,
       4
      ],
      [
       1,
       4,
       5,
       3,
       6
      ]
     ]
    },
    "totals": {
     "rows": [
      20,
      16,
      20,
      19
     ],
     "columns": [
      13,
      15,
      16,
      15,
      16
     ],
     "n": 75
    },
    "expected": [
     [
      3.46666666666667,
      4,
      4.26666666666667,
      4,
      4.26666666666667
     ],
     [
      2.77333333333333,
      3.2,
      3.41333333333333,
      3.2,
      3.41333333333333
     ],
     [
      3.46666666666667,
      4,
      4.26666666666667,
      4,
      4.26666666666667
     ],
     [
      3.29333333333333,
      3.8,
      4.05333333333333,
      3.8,
      4.05333333333333
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": {
     "test": "chi-squared",
     "pointer": "below-5",
     "chiSquared": {
      "status": "value",
      "statistic": 13.000142332996,
      "df": 12,
      "p": 0.369030338242411
     },
     "yates": null,
     "fisher": {
      "status": "not-run"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "NOT_2X2"
     },
     "relativeRisk": {
      "withheld": "NOT_2X2"
     },
     "riskDifference": {
      "withheld": "NOT_2X2"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "four-by-five-fisher",
   "text": "\tC1\tC2\tC3\tC4\tC5\nR1\t4\t6\t3\t2\t5\nR2\t3\t2\t6\t4\t1\nR3\t5\t3\t2\t6\t4\nR4\t1\t4\t5\t3\t6",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "R1",
      "R2",
      "R3",
      "R4"
     ],
     "columns": [
      "C1",
      "C2",
      "C3",
      "C4",
      "C5"
     ],
     "counts": [
      [
       4,
       6,
       3,
       2,
       5
      ],
      [
       3,
       2,
       6,
       4,
       1
      ],
      [
       5,
       3,
       2,
       6,
       4
      ],
      [
       1,
       4,
       5,
       3,
       6
      ]
     ]
    },
    "totals": {
     "rows": [
      20,
      16,
      20,
      19
     ],
     "columns": [
      13,
      15,
      16,
      15,
      16
     ],
     "n": 75
    },
    "expected": [
     [
      3.46666666666667,
      4,
      4.26666666666667,
      4,
      4.26666666666667
     ],
     [
      2.77333333333333,
      3.2,
      3.41333333333333,
      3.2,
      3.41333333333333
     ],
     [
      3.46666666666667,
      4,
      4.26666666666667,
      4,
      4.26666666666667
     ],
     [
      3.29333333333333,
      3.8,
      4.05333333333333,
      3.8,
      4.05333333333333
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "withheld": "FISHER_TOO_LARGE"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "NOT_2X2"
     },
     "relativeRisk": {
      "withheld": "NOT_2X2"
     },
     "riskDifference": {
      "withheld": "NOT_2X2"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "fisher-just-under-bound",
   "text": "\tC1\tC2\tC3\tC4\nR1\t3\t2\t3\t2\nR2\t2\t3\t3\t3\nR3\t3\t3\t2\t3\nR4\t2\t3\t3\t3",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "R1",
      "R2",
      "R3",
      "R4"
     ],
     "columns": [
      "C1",
      "C2",
      "C3",
      "C4"
     ],
     "counts": [
      [
       3,
       2,
       3,
       2
      ],
      [
       2,
       3,
       3,
       3
      ],
      [
       3,
       3,
       2,
       3
      ],
      [
       2,
       3,
       3,
       3
      ]
     ]
    },
    "totals": {
     "rows": [
      10,
      11,
      11,
      11
     ],
     "columns": [
      10,
      11,
      11,
      11
     ],
     "n": 43
    },
    "expected": [
     [
      2.32558139534884,
      2.55813953488372,
      2.55813953488372,
      2.55813953488372
     ],
     [
      2.55813953488372,
      2.81395348837209,
      2.81395348837209,
      2.81395348837209
     ],
     [
      2.55813953488372,
      2.81395348837209,
      2.81395348837209,
      2.81395348837209
     ],
     [
      2.55813953488372,
      2.81395348837209,
      2.81395348837209,
      2.81395348837209
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.999999999999981,
      "tables": 8529235
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "NOT_2X2"
     },
     "relativeRisk": {
      "withheld": "NOT_2X2"
     },
     "riskDifference": {
      "withheld": "NOT_2X2"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "fisher-just-over-bound",
   "text": "\tC1\tC2\tC3\tC4\nR1\t3\t3\t3\t2\nR2\t3\t3\t2\t3\nR3\t2\t3\t3\t3\nR4\t3\t2\t3\t3",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "R1",
      "R2",
      "R3",
      "R4"
     ],
     "columns": [
      "C1",
      "C2",
      "C3",
      "C4"
     ],
     "counts": [
      [
       3,
       3,
       3,
       2
      ],
      [
       3,
       3,
       2,
       3
      ],
      [
       2,
       3,
       3,
       3
      ],
      [
       3,
       2,
       3,
       3
      ]
     ]
    },
    "totals": {
     "rows": [
      11,
      11,
      11,
      11
     ],
     "columns": [
      11,
      11,
      11,
      11
     ],
     "n": 44
    },
    "expected": [
     [
      2.75,
      2.75,
      2.75,
      2.75
     ],
     [
      2.75,
      2.75,
      2.75,
      2.75
     ],
     [
      2.75,
      2.75,
      2.75,
      2.75
     ],
     [
      2.75,
      2.75,
      2.75,
      2.75
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "withheld": "FISHER_TOO_LARGE"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "NOT_2X2"
     },
     "relativeRisk": {
      "withheld": "NOT_2X2"
     },
     "riskDifference": {
      "withheld": "NOT_2X2"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "fisher-well-over-bound",
   "text": "\tC1\tC2\tC3\tC4\tC5\nR1\t4\t4\t4\t4\t4\nR2\t4\t4\t4\t4\t4\nR3\t4\t4\t4\t4\t4\nR4\t4\t4\t4\t4\t4",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "R1",
      "R2",
      "R3",
      "R4"
     ],
     "columns": [
      "C1",
      "C2",
      "C3",
      "C4",
      "C5"
     ],
     "counts": [
      [
       4,
       4,
       4,
       4,
       4
      ],
      [
       4,
       4,
       4,
       4,
       4
      ],
      [
       4,
       4,
       4,
       4,
       4
      ],
      [
       4,
       4,
       4,
       4,
       4
      ]
     ]
    },
    "totals": {
     "rows": [
      20,
      20,
      20,
      20
     ],
     "columns": [
      16,
      16,
      16,
      16,
      16
     ],
     "n": 80
    },
    "expected": [
     [
      4,
      4,
      4,
      4,
      4
     ],
     [
      4,
      4,
      4,
      4,
      4
     ],
     [
      4,
      4,
      4,
      4,
      4
     ],
     [
      4,
      4,
      4,
      4,
      4
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "withheld": "FISHER_TOO_LARGE"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "NOT_2X2"
     },
     "relativeRisk": {
      "withheld": "NOT_2X2"
     },
     "riskDifference": {
      "withheld": "NOT_2X2"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "case-control",
   "text": "\tEvent\tNone\nTreated\t30\t70\nControl\t15\t85",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "case-control",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       30,
       70
      ],
      [
       15,
       85
      ]
     ]
    },
    "totals": {
     "rows": [
      100,
      100
     ],
     "columns": [
      45,
      155
     ],
     "n": 200
    },
    "expected": [
     [
      22.5,
      77.5
     ],
     [
      22.5,
      77.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 30,
      "n": 100,
      "proportion": 0.3,
      "interval": {
       "withheld": "DESIGN_RR"
      }
     },
     {
      "row": "Control",
      "x": 15,
      "n": 100,
      "proportion": 0.15,
      "interval": {
       "withheld": "DESIGN_RR"
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.0171490227684085
     },
     "conditionalOr": {
      "status": "value",
      "estimate": 2.41780518804621,
      "lower": 1.15414553224601,
      "upper": 5.24670494131667
     },
     "fisherTestConditional": {
      "estimate": 2.41781401226808,
      "lower": 1.15412959027888,
      "upper": 5.24639899646817
     },
     "oddsRatio": {
      "status": "value",
      "estimate": 2.42857142857143,
      "lower": 1.21099920892763,
      "upper": 4.87032455528708
     },
     "relativeRisk": {
      "withheld": "DESIGN_RR"
     },
     "riskDifference": {
      "withheld": "DESIGN_RR"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "roles-undeclared",
   "text": "\tEvent\tNone\nTreated\t30\t70\nControl\t15\t85",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       30,
       70
      ],
      [
       15,
       85
      ]
     ]
    },
    "totals": {
     "rows": [
      100,
      100
     ],
     "columns": [
      45,
      155
     ],
     "n": 200
    },
    "expected": [
     [
      22.5,
      77.5
     ],
     [
      22.5,
      77.5
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.0171490227684085
     },
     "conditionalOr": {
      "withheld": "ROLES_UNDECLARED"
     },
     "oddsRatio": {
      "withheld": "ROLES_UNDECLARED"
     },
     "relativeRisk": {
      "withheld": "ROLES_UNDECLARED"
     },
     "riskDifference": {
      "withheld": "ROLES_UNDECLARED"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "exposed-swapped",
   "text": "\tEvent\tNone\nTreated\t30\t70\nControl\t15\t85",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 1,
     "reference": 0,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       30,
       70
      ],
      [
       15,
       85
      ]
     ]
    },
    "totals": {
     "rows": [
      100,
      100
     ],
     "columns": [
      45,
      155
     ],
     "n": 200
    },
    "expected": [
     [
      22.5,
      77.5
     ],
     [
      22.5,
      77.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 30,
      "n": 100,
      "proportion": 0.3,
      "interval": {
       "status": "value",
       "estimate": 0.3,
       "lower": 0.218948852949328,
       "upper": 0.395848546333467
      }
     },
     {
      "row": "Control",
      "x": 15,
      "n": 100,
      "proportion": 0.15,
      "interval": {
       "status": "value",
       "estimate": 0.15,
       "lower": 0.0930598528365663,
       "upper": 0.232835595908324
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.0171490227684085
     },
     "conditionalOr": {
      "status": "value",
      "estimate": 0.413598252226469,
      "lower": 0.190595814169998,
      "upper": 0.866441858553111
     },
     "fisherTestConditional": {
      "estimate": 0.413596742729574,
      "lower": 0.190606928804536,
      "upper": 0.866453826695805
     },
     "oddsRatio": {
      "status": "value",
      "estimate": 0.411764705882353,
      "lower": 0.205325125389114,
      "upper": 0.82576437096563
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 0.5,
      "lower": 0.287219453147958,
      "upper": 0.87041458111549
     },
     "riskDifference": {
      "status": "value",
      "estimate": -0.15,
      "lower": -0.261485982048113,
      "upper": -0.0341077035014113
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "mcnemar-1-6",
   "text": "\tAfter: event\tAfter: none\nBefore: event\t20\t1\nBefore: none\t6\t30",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "paired",
    "level": 0.95,
    "analysis": "mcnemar",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Before: event",
      "Before: none"
     ],
     "columns": [
      "After: event",
      "After: none"
     ],
     "counts": [
      [
       20,
       1
      ],
      [
       6,
       30
      ]
     ]
    },
    "totals": {
     "rows": [
      21,
      36
     ],
     "columns": [
      26,
      31
     ],
     "n": 57
    },
    "expected": [
     [
      9.57894736842105,
      11.4210526315789
     ],
     [
      16.4210526315789,
      19.5789473684211
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": null,
    "mcnemar": {
     "b": 1,
     "c": 6,
     "exact": {
      "status": "value",
      "p": 0.125
     },
     "asymptotic": {
      "status": "value",
      "statistic": 3.57142857142857,
      "p": 0.058781721355359
     },
     "corrected": {
      "status": "value",
      "statistic": 2.28571428571429,
      "p": 0.130570018115737,
      "method": "McNemar's Chi-squared test with continuity correction"
     },
     "pairedOr": {
      "status": "value",
      "estimate": 0.166666666666667,
      "lower": 0.00362337833332688,
      "upper": 1.37373620617448
     }
    },
    "trend": null
   }
  },
  {
   "name": "mcnemar-equal",
   "text": "\tAfter: event\tAfter: none\nBefore: event\t20\t5\nBefore: none\t5\t30",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "paired",
    "level": 0.95,
    "analysis": "mcnemar",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Before: event",
      "Before: none"
     ],
     "columns": [
      "After: event",
      "After: none"
     ],
     "counts": [
      [
       20,
       5
      ],
      [
       5,
       30
      ]
     ]
    },
    "totals": {
     "rows": [
      25,
      35
     ],
     "columns": [
      25,
      35
     ],
     "n": 60
    },
    "expected": [
     [
      10.4166666666667,
      14.5833333333333
     ],
     [
      14.5833333333333,
      20.4166666666667
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": null,
    "mcnemar": {
     "b": 5,
     "c": 5,
     "exact": {
      "status": "value",
      "p": 1
     },
     "asymptotic": {
      "status": "value",
      "statistic": 0,
      "p": 1
     },
     "corrected": {
      "status": "value",
      "statistic": 0,
      "p": 1,
      "method": "McNemar's Chi-squared test"
     },
     "pairedOr": {
      "status": "value",
      "estimate": 1,
      "lower": 0.230142468938108,
      "upper": 4.345134579524
     }
    },
    "trend": null
   }
  },
  {
   "name": "mcnemar-no-discordant",
   "text": "\tAfter: event\tAfter: none\nBefore: event\t20\t0\nBefore: none\t0\t30",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "paired",
    "level": 0.95,
    "analysis": "mcnemar",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Before: event",
      "Before: none"
     ],
     "columns": [
      "After: event",
      "After: none"
     ],
     "counts": [
      [
       20,
       0
      ],
      [
       0,
       30
      ]
     ]
    },
    "totals": {
     "rows": [
      20,
      30
     ],
     "columns": [
      20,
      30
     ],
     "n": 50
    },
    "expected": [
     [
      8,
      12
     ],
     [
      12,
      18
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": null,
    "mcnemar": {
     "b": 0,
     "c": 0,
     "exact": {
      "withheld": "NO_DISCORDANT"
     },
     "asymptotic": {
      "withheld": "NO_DISCORDANT"
     },
     "corrected": {
      "withheld": "NO_DISCORDANT"
     },
     "pairedOr": {
      "withheld": "NO_DISCORDANT"
     }
    },
    "trend": null
   }
  },
  {
   "name": "mcnemar-b-zero",
   "text": "\tAfter: event\tAfter: none\nBefore: event\t20\t0\nBefore: none\t4\t30",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "paired",
    "level": 0.95,
    "analysis": "mcnemar",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Before: event",
      "Before: none"
     ],
     "columns": [
      "After: event",
      "After: none"
     ],
     "counts": [
      [
       20,
       0
      ],
      [
       4,
       30
      ]
     ]
    },
    "totals": {
     "rows": [
      20,
      34
     ],
     "columns": [
      24,
      30
     ],
     "n": 54
    },
    "expected": [
     [
      8.88888888888889,
      11.1111111111111
     ],
     [
      15.1111111111111,
      18.8888888888889
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": null,
    "mcnemar": {
     "b": 0,
     "c": 4,
     "exact": {
      "status": "value",
      "p": 0.125
     },
     "asymptotic": {
      "status": "value",
      "statistic": 4,
      "p": 0.0455002638963585
     },
     "corrected": {
      "status": "value",
      "statistic": 2.25,
      "p": 0.133614402537715,
      "method": "McNemar's Chi-squared test with continuity correction"
     },
     "pairedOr": {
      "status": "value",
      "estimate": 0,
      "lower": 0,
      "upper": 1.51486685936587
     }
    },
    "trend": null
   }
  },
  {
   "name": "mcnemar-c-zero",
   "text": "\tAfter: event\tAfter: none\nBefore: event\t20\t4\nBefore: none\t0\t30",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "paired",
    "level": 0.95,
    "analysis": "mcnemar",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Before: event",
      "Before: none"
     ],
     "columns": [
      "After: event",
      "After: none"
     ],
     "counts": [
      [
       20,
       4
      ],
      [
       0,
       30
      ]
     ]
    },
    "totals": {
     "rows": [
      24,
      30
     ],
     "columns": [
      20,
      34
     ],
     "n": 54
    },
    "expected": [
     [
      8.88888888888889,
      15.1111111111111
     ],
     [
      11.1111111111111,
      18.8888888888889
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": null,
    "mcnemar": {
     "b": 4,
     "c": 0,
     "exact": {
      "status": "value",
      "p": 0.125
     },
     "asymptotic": {
      "status": "value",
      "statistic": 4,
      "p": 0.0455002638963585
     },
     "corrected": {
      "status": "value",
      "statistic": 2.25,
      "p": 0.133614402537715,
      "method": "McNemar's Chi-squared test with continuity correction"
     },
     "pairedOr": {
      "status": "value",
      "estimate": "not-finite",
      "lower": 0.660124019360094,
      "upper": "unbounded"
     }
    },
    "trend": null
   }
  },
  {
   "name": "mcnemar-40-25",
   "text": "\tAfter: event\tAfter: none\nBefore: event\t20\t40\nBefore: none\t25\t30",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "paired",
    "level": 0.95,
    "analysis": "mcnemar",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Before: event",
      "Before: none"
     ],
     "columns": [
      "After: event",
      "After: none"
     ],
     "counts": [
      [
       20,
       40
      ],
      [
       25,
       30
      ]
     ]
    },
    "totals": {
     "rows": [
      60,
      55
     ],
     "columns": [
      45,
      70
     ],
     "n": 115
    },
    "expected": [
     [
      23.4782608695652,
      36.5217391304348
     ],
     [
      21.5217391304348,
      33.4782608695652
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": null,
    "mcnemar": {
     "b": 40,
     "c": 25,
     "exact": {
      "status": "value",
      "p": 0.0816815339415403
     },
     "asymptotic": {
      "status": "value",
      "statistic": 3.46153846153846,
      "p": 0.0628118475160988
     },
     "corrected": {
      "status": "value",
      "statistic": 3.01538461538462,
      "p": 0.08247788747321,
      "method": "McNemar's Chi-squared test with continuity correction"
     },
     "pairedOr": {
      "status": "value",
      "estimate": 1.6,
      "lower": 0.94715322093657,
      "upper": 2.75183926938798
     }
    },
    "trend": null
   }
  },
  {
   "name": "mcnemar-design-undeclared",
   "text": "\tAfter: event\tAfter: none\nBefore: event\t20\t40\nBefore: none\t25\t30",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "mcnemar",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Before: event",
      "Before: none"
     ],
     "columns": [
      "After: event",
      "After: none"
     ],
     "counts": [
      [
       20,
       40
      ],
      [
       25,
       30
      ]
     ]
    },
    "totals": {
     "rows": [
      60,
      55
     ],
     "columns": [
      45,
      70
     ],
     "n": 115
    },
    "expected": [
     [
      23.4782608695652,
      36.5217391304348
     ],
     [
      21.5217391304348,
      33.4782608695652
     ]
    ],
    "zeroMargins": [],
    "proportions": null,
    "association": null,
    "mcnemar": {
     "b": 40,
     "c": 25,
     "exact": {
      "withheld": "DESIGN_UNDECLARED"
     },
     "asymptotic": {
      "withheld": "DESIGN_UNDECLARED"
     },
     "corrected": {
      "withheld": "DESIGN_UNDECLARED"
     },
     "pairedOr": {
      "withheld": "DESIGN_UNDECLARED"
     }
    },
    "trend": null
   }
  },
  {
   "name": "trend-smokers",
   "text": "\tSmokers\tNon-smokers\nGroup 1\t83\t3\nGroup 2\t90\t3\nGroup 3\t129\t7\nGroup 4\t70\t12",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "trend",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Group 1",
      "Group 2",
      "Group 3",
      "Group 4"
     ],
     "columns": [
      "Smokers",
      "Non-smokers"
     ],
     "counts": [
      [
       83,
       3
      ],
      [
       90,
       3
      ],
      [
       129,
       7
      ],
      [
       70,
       12
      ]
     ]
    },
    "totals": {
     "rows": [
      86,
      93,
      136,
      82
     ],
     "columns": [
      372,
      25
     ],
     "n": 397
    },
    "expected": [
     [
      80.5843828715365,
      5.41561712846348
     ],
     [
      87.1435768261965,
      5.85642317380353
     ],
     [
      127.435768261965,
      8.56423173803526
     ],
     [
      76.8362720403023,
      5.16372795969773
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Group 1",
      "x": 83,
      "n": 86,
      "proportion": 0.9651162790697675,
      "interval": {
       "status": "value",
       "estimate": 0.965116279069767,
       "lower": 0.902391288974392,
       "upper": 0.988066201922592
      }
     },
     {
      "row": "Group 2",
      "x": 90,
      "n": 93,
      "proportion": 0.967741935483871,
      "interval": {
       "status": "value",
       "estimate": 0.967741935483871,
       "lower": 0.909406174888785,
       "upper": 0.988969387184108
      }
     },
     {
      "row": "Group 3",
      "x": 129,
      "n": 136,
      "proportion": 0.9485294117647058,
      "interval": {
       "status": "value",
       "estimate": 0.948529411764706,
       "lower": 0.897569701815442,
       "upper": 0.974846826364726
      }
     },
     {
      "row": "Group 4",
      "x": 70,
      "n": 82,
      "proportion": 0.8536585365853658,
      "interval": {
       "status": "value",
       "estimate": 0.853658536585366,
       "lower": 0.761405815101991,
       "upper": 0.914258377897694
      }
     }
    ],
    "association": null,
    "mcnemar": null,
    "trend": {
     "scores": [
      1,
      2,
      3,
      4
     ],
     "result": {
      "status": "value",
      "statistic": 8.22492228519773,
      "df": 1,
      "p": 0.00413189747764143,
      "method": "Chi-squared Test for Trend in Proportions",
      "direction": "falls"
     }
    }
   }
  },
  {
   "name": "trend-smokers-last-scored",
   "text": "\tSmokers\tNon-smokers\nGroup 1\t83\t3\nGroup 2\t90\t3\nGroup 3\t129\t7\nGroup 4\t70\t12",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "trend",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": 0
    },
    "scores": [
     0,
     0,
     0,
     1
    ]
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Group 1",
      "Group 2",
      "Group 3",
      "Group 4"
     ],
     "columns": [
      "Smokers",
      "Non-smokers"
     ],
     "counts": [
      [
       83,
       3
      ],
      [
       90,
       3
      ],
      [
       129,
       7
      ],
      [
       70,
       12
      ]
     ]
    },
    "totals": {
     "rows": [
      86,
      93,
      136,
      82
     ],
     "columns": [
      372,
      25
     ],
     "n": 397
    },
    "expected": [
     [
      80.5843828715365,
      5.41561712846348
     ],
     [
      87.1435768261965,
      5.85642317380353
     ],
     [
      127.435768261965,
      8.56423173803526
     ],
     [
      76.8362720403023,
      5.16372795969773
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Group 1",
      "x": 83,
      "n": 86,
      "proportion": 0.9651162790697675,
      "interval": {
       "status": "value",
       "estimate": 0.965116279069767,
       "lower": 0.902391288974392,
       "upper": 0.988066201922592
      }
     },
     {
      "row": "Group 2",
      "x": 90,
      "n": 93,
      "proportion": 0.967741935483871,
      "interval": {
       "status": "value",
       "estimate": 0.967741935483871,
       "lower": 0.909406174888785,
       "upper": 0.988969387184108
      }
     },
     {
      "row": "Group 3",
      "x": 129,
      "n": 136,
      "proportion": 0.9485294117647058,
      "interval": {
       "status": "value",
       "estimate": 0.948529411764706,
       "lower": 0.897569701815442,
       "upper": 0.974846826364726
      }
     },
     {
      "row": "Group 4",
      "x": 70,
      "n": 82,
      "proportion": 0.8536585365853658,
      "interval": {
       "status": "value",
       "estimate": 0.853658536585366,
       "lower": 0.761405815101991,
       "upper": 0.914258377897694
      }
     }
    ],
    "association": null,
    "mcnemar": null,
    "trend": {
     "scores": [
      0,
      0,
      0,
      1
     ],
     "result": {
      "status": "value",
      "statistic": 12.1731462207402,
      "df": 1,
      "p": 0.000484824593441679,
      "method": "Chi-squared Test for Trend in Proportions",
      "direction": "falls"
     }
    }
   }
  },
  {
   "name": "trend-doses",
   "text": "\tResponded\tNot\nDose 0\t2\t18\nDose 1\t4\t16\nDose 10\t9\t11\nDose 100\t15\t5",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "trend",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": 0
    },
    "scores": [
     0,
     1,
     10,
     100
    ]
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Dose 0",
      "Dose 1",
      "Dose 10",
      "Dose 100"
     ],
     "columns": [
      "Responded",
      "Not"
     ],
     "counts": [
      [
       2,
       18
      ],
      [
       4,
       16
      ],
      [
       9,
       11
      ],
      [
       15,
       5
      ]
     ]
    },
    "totals": {
     "rows": [
      20,
      20,
      20,
      20
     ],
     "columns": [
      30,
      50
     ],
     "n": 80
    },
    "expected": [
     [
      7.5,
      12.5
     ],
     [
      7.5,
      12.5
     ],
     [
      7.5,
      12.5
     ],
     [
      7.5,
      12.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Dose 0",
      "x": 2,
      "n": 20,
      "proportion": 0.1,
      "interval": {
       "status": "value",
       "estimate": 0.1,
       "lower": 0.0278664812137682,
       "upper": 0.301033645228487
      }
     },
     {
      "row": "Dose 1",
      "x": 4,
      "n": 20,
      "proportion": 0.2,
      "interval": {
       "status": "value",
       "estimate": 0.2,
       "lower": 0.0806576625797981,
       "upper": 0.416017432251894
      }
     },
     {
      "row": "Dose 10",
      "x": 9,
      "n": 20,
      "proportion": 0.45,
      "interval": {
       "status": "value",
       "estimate": 0.45,
       "lower": 0.258197858255624,
       "upper": 0.657914657549658
      }
     },
     {
      "row": "Dose 100",
      "x": 15,
      "n": 20,
      "proportion": 0.75,
      "interval": {
       "status": "value",
       "estimate": 0.75,
       "lower": 0.531299122381256,
       "upper": 0.888138298592334
      }
     }
    ],
    "association": null,
    "mcnemar": null,
    "trend": {
     "scores": [
      0,
      1,
      10,
      100
     ],
     "result": {
      "status": "value",
      "statistic": 17.6203700934136,
      "df": 1,
      "p": 2.69684189614029e-05,
      "method": "Chi-squared Test for Trend in Proportions",
      "direction": "rises"
     }
    }
   }
  },
  {
   "name": "trend-two-groups",
   "text": "\tResponded\tNot\nLow\t2\t18\nHigh\t9\t11",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "trend",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Low",
      "High"
     ],
     "columns": [
      "Responded",
      "Not"
     ],
     "counts": [
      [
       2,
       18
      ],
      [
       9,
       11
      ]
     ]
    },
    "totals": {
     "rows": [
      20,
      20
     ],
     "columns": [
      11,
      29
     ],
     "n": 40
    },
    "expected": [
     [
      5.5,
      14.5
     ],
     [
      5.5,
      14.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Low",
      "x": 2,
      "n": 20,
      "proportion": 0.1,
      "interval": {
       "status": "value",
       "estimate": 0.1,
       "lower": 0.0278664812137682,
       "upper": 0.301033645228487
      }
     },
     {
      "row": "High",
      "x": 9,
      "n": 20,
      "proportion": 0.45,
      "interval": {
       "status": "value",
       "estimate": 0.45,
       "lower": 0.258197858255624,
       "upper": 0.657914657549658
      }
     }
    ],
    "association": null,
    "mcnemar": null,
    "trend": {
     "scores": [
      1,
      2
     ],
     "result": {
      "withheld": "TOO_FEW_GROUPS"
     }
    }
   }
  },
  {
   "name": "trend-constant-scores",
   "text": "\tSmokers\tNon-smokers\nGroup 1\t83\t3\nGroup 2\t90\t3\nGroup 3\t129\t7\nGroup 4\t70\t12",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "trend",
    "test": null,
    "roles": {
     "exposed": null,
     "reference": null,
     "event": 0
    },
    "scores": [
     2,
     2,
     2,
     2
    ]
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Group 1",
      "Group 2",
      "Group 3",
      "Group 4"
     ],
     "columns": [
      "Smokers",
      "Non-smokers"
     ],
     "counts": [
      [
       83,
       3
      ],
      [
       90,
       3
      ],
      [
       129,
       7
      ],
      [
       70,
       12
      ]
     ]
    },
    "totals": {
     "rows": [
      86,
      93,
      136,
      82
     ],
     "columns": [
      372,
      25
     ],
     "n": 397
    },
    "expected": [
     [
      80.5843828715365,
      5.41561712846348
     ],
     [
      87.1435768261965,
      5.85642317380353
     ],
     [
      127.435768261965,
      8.56423173803526
     ],
     [
      76.8362720403023,
      5.16372795969773
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Group 1",
      "x": 83,
      "n": 86,
      "proportion": 0.9651162790697675,
      "interval": {
       "status": "value",
       "estimate": 0.965116279069767,
       "lower": 0.902391288974392,
       "upper": 0.988066201922592
      }
     },
     {
      "row": "Group 2",
      "x": 90,
      "n": 93,
      "proportion": 0.967741935483871,
      "interval": {
       "status": "value",
       "estimate": 0.967741935483871,
       "lower": 0.909406174888785,
       "upper": 0.988969387184108
      }
     },
     {
      "row": "Group 3",
      "x": 129,
      "n": 136,
      "proportion": 0.9485294117647058,
      "interval": {
       "status": "value",
       "estimate": 0.948529411764706,
       "lower": 0.897569701815442,
       "upper": 0.974846826364726
      }
     },
     {
      "row": "Group 4",
      "x": 70,
      "n": 82,
      "proportion": 0.8536585365853658,
      "interval": {
       "status": "value",
       "estimate": 0.853658536585366,
       "lower": 0.761405815101991,
       "upper": 0.914258377897694
      }
     }
    ],
    "association": null,
    "mcnemar": null,
    "trend": {
     "scores": null,
     "result": {
      "withheld": "SCORES_INVALID"
     }
    }
   }
  },
  {
   "name": "refused-cells",
   "text": "\tEvent\tNone\nA\t\tn.d.\nB\t1.5\t-1\nC\t7\t3.0\nD\t1e2\t4",
   "exclude": [
    "0:0:2"
   ],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": {
     "withheld": "COUNT_REFUSED"
    },
    "refused": [
     {
      "row": "A",
      "rowNumber": 1,
      "column": "Event",
      "reason": "blank"
     },
     {
      "row": "A",
      "rowNumber": 1,
      "column": "None",
      "reason": "text",
      "text": "n.d."
     },
     {
      "row": "B",
      "rowNumber": 2,
      "column": "Event",
      "reason": "non-integer"
     },
     {
      "row": "B",
      "rowNumber": 2,
      "column": "None",
      "reason": "negative"
     },
     {
      "row": "C",
      "rowNumber": 3,
      "column": "Event",
      "reason": "excluded"
     }
    ],
    "table": null,
    "totals": null,
    "expected": null,
    "zeroMargins": [],
    "proportions": null,
    "association": null,
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "unit-undeclared",
   "text": "\tEvent\tNone\nTreated\t30\t70\nControl\t15\t85",
   "exclude": [],
   "settings": {
    "unit": "unspecified",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       30,
       70
      ],
      [
       15,
       85
      ]
     ]
    },
    "totals": {
     "rows": [
      100,
      100
     ],
     "columns": [
      45,
      155
     ],
     "n": 200
    },
    "expected": [
     [
      22.5,
      77.5
     ],
     [
      22.5,
      77.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 30,
      "n": 100,
      "proportion": 0.3,
      "interval": {
       "withheld": "UNIT_NOT_INDEPENDENT"
      }
     },
     {
      "row": "Control",
      "x": 15,
      "n": 100,
      "proportion": 0.15,
      "interval": {
       "withheld": "UNIT_NOT_INDEPENDENT"
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "withheld": "UNIT_NOT_INDEPENDENT"
     },
     "conditionalOr": {
      "withheld": "UNIT_NOT_INDEPENDENT"
     },
     "oddsRatio": {
      "withheld": "UNIT_NOT_INDEPENDENT"
     },
     "relativeRisk": {
      "withheld": "UNIT_NOT_INDEPENDENT"
     },
     "riskDifference": {
      "withheld": "UNIT_NOT_INDEPENDENT"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "unit-technical",
   "text": "\tEvent\tNone\nTreated\t30\t70\nControl\t15\t85",
   "exclude": [],
   "settings": {
    "unit": "technical",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       30,
       70
      ],
      [
       15,
       85
      ]
     ]
    },
    "totals": {
     "rows": [
      100,
      100
     ],
     "columns": [
      45,
      155
     ],
     "n": 200
    },
    "expected": [
     [
      22.5,
      77.5
     ],
     [
      22.5,
      77.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 30,
      "n": 100,
      "proportion": 0.3,
      "interval": {
       "withheld": "UNIT_NOT_INDEPENDENT"
      }
     },
     {
      "row": "Control",
      "x": 15,
      "n": 100,
      "proportion": 0.15,
      "interval": {
       "withheld": "UNIT_NOT_INDEPENDENT"
      }
     }
    ],
    "association": {
     "test": "chi-squared",
     "pointer": null,
     "chiSquared": {
      "withheld": "UNIT_NOT_INDEPENDENT"
     },
     "yates": {
      "withheld": "UNIT_NOT_INDEPENDENT"
     },
     "fisher": {
      "status": "not-run"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "UNIT_NOT_INDEPENDENT"
     },
     "relativeRisk": {
      "withheld": "UNIT_NOT_INDEPENDENT"
     },
     "riskDifference": {
      "withheld": "UNIT_NOT_INDEPENDENT"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "design-undeclared",
   "text": "\tEvent\tNone\nTreated\t30\t70\nControl\t15\t85",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "unspecified",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       30,
       70
      ],
      [
       15,
       85
      ]
     ]
    },
    "totals": {
     "rows": [
      100,
      100
     ],
     "columns": [
      45,
      155
     ],
     "n": 200
    },
    "expected": [
     [
      22.5,
      77.5
     ],
     [
      22.5,
      77.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 30,
      "n": 100,
      "proportion": 0.3,
      "interval": {
       "withheld": "DESIGN_RR"
      }
     },
     {
      "row": "Control",
      "x": 15,
      "n": 100,
      "proportion": 0.15,
      "interval": {
       "withheld": "DESIGN_RR"
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "withheld": "DESIGN_UNDECLARED"
     },
     "conditionalOr": {
      "withheld": "DESIGN_UNDECLARED"
     },
     "oddsRatio": {
      "withheld": "DESIGN_UNDECLARED"
     },
     "relativeRisk": {
      "withheld": "DESIGN_UNDECLARED"
     },
     "riskDifference": {
      "withheld": "DESIGN_UNDECLARED"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "large-counts",
   "text": "\tEvent\tNone\nTreated\t1200345\t998765\nControl\t1103456\t1087654",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       1200345,
       998765
      ],
      [
       1103456,
       1087654
      ]
     ]
    },
    "totals": {
     "rows": [
      2199110,
      2191110
     ],
     "columns": [
      2303801,
      2086419
     ],
     "n": 4390220
    },
    "expected": [
     [
      1153999.53011694,
      1045110.46988306
     ],
     [
      1149801.46988306,
      1041308.53011694
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 1200345,
      "n": 2199110,
      "proportion": 0.5458321775627413,
      "interval": {
       "status": "value",
       "estimate": 0.545832177562741,
       "lower": 0.54517404281609,
       "upper": 0.546490152188148
      }
     },
     {
      "row": "Control",
      "x": 1103456,
      "n": 2191110,
      "proportion": 0.5036059348914477,
      "interval": {
       "status": "value",
       "estimate": 0.503605934891448,
       "lower": 0.502943903661181,
       "upper": 0.504267953477871
      }
     }
    ],
    "association": {
     "test": "chi-squared",
     "pointer": null,
     "chiSquared": {
      "status": "value",
      "statistic": 7847.21958209464,
      "df": 1,
      "p": 0
     },
     "yates": {
      "status": "value",
      "statistic": 7847.05026290828,
      "df": 1,
      "p": 0
     },
     "fisher": {
      "status": "not-run"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "status": "value",
      "estimate": 1.18461850859051,
      "lower": 1.18018495222367,
      "upper": 1.1890687203316
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 1.08384778602817,
      "lower": 1.08191625561558,
      "upper": 1.0857827647758
     },
     "riskDifference": {
      "status": "value",
      "estimate": 0.0422262426712936,
      "lower": 0.0412927492575411,
      "upper": 0.0431596321706599
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "large-fisher",
   "text": "\tEvent\tNone\nTreated\t52000\t48000\nControl\t50000\t50000",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       52000,
       48000
      ],
      [
       50000,
       50000
      ]
     ]
    },
    "totals": {
     "rows": [
      100000,
      100000
     ],
     "columns": [
      102000,
      98000
     ],
     "n": 200000
    },
    "expected": [
     [
      51000,
      49000
     ],
     [
      51000,
      49000
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 52000,
      "n": 100000,
      "proportion": 0.52,
      "interval": {
       "status": "value",
       "estimate": 0.52,
       "lower": 0.51690279612709,
       "upper": 0.523095667348407
      }
     },
     {
      "row": "Control",
      "x": 50000,
      "n": 100000,
      "proportion": 0.5,
      "interval": {
       "status": "value",
       "estimate": 0.5,
       "lower": 0.49690108435969,
       "upper": 0.50309891564031
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 3.82594775803131e-19
     },
     "conditionalOr": {
      "status": "value",
      "estimate": 1.08333289965314,
      "lower": 1.06445748685185,
      "upper": 1.10254386447626
     },
     "fisherTestConditional": {
      "estimate": 1.08333218701539,
      "lower": 1.06445886804647,
      "upper": 1.10255043426025
     },
     "oddsRatio": {
      "status": "value",
      "estimate": 1.08333333333333,
      "lower": 1.06450003140188,
      "upper": 1.10249983700379
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 1.04,
      "lower": 1.03109949368935,
      "upper": 1.04897733596004
     },
     "riskDifference": {
      "status": "value",
      "estimate": 0.02,
      "lower": 0.015618681707964,
      "upper": 0.0243802322401617
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "eleven-rows",
   "text": "\tC1\tC2\nR1\t1\t10\nR2\t2\t9\nR3\t3\t8\nR4\t4\t7\nR5\t5\t6\nR6\t6\t5\nR7\t7\t4\nR8\t8\t3\nR9\t9\t2\nR10\t10\t1\nR11\t11\t0",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": null
    },
    "scores": null
   },
   "expected": {
    "problem": {
     "withheld": "TABLE_SIZE"
    },
    "refused": [],
    "table": null,
    "totals": null,
    "expected": null,
    "zeroMargins": [],
    "proportions": null,
    "association": null,
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "level-90",
   "text": "\tEvent\tNone\nTreated\t30\t70\nControl\t15\t85",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.9,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       30,
       70
      ],
      [
       15,
       85
      ]
     ]
    },
    "totals": {
     "rows": [
      100,
      100
     ],
     "columns": [
      45,
      155
     ],
     "n": 200
    },
    "expected": [
     [
      22.5,
      77.5
     ],
     [
      22.5,
      77.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 30,
      "n": 100,
      "proportion": 0.3,
      "interval": {
       "status": "value",
       "estimate": 0.3,
       "lower": 0.230704954369145,
       "upper": 0.379832133944124
      }
     },
     {
      "row": "Control",
      "x": 15,
      "n": 100,
      "proportion": 0.15,
      "interval": {
       "status": "value",
       "estimate": 0.15,
       "lower": 0.100536867660301,
       "upper": 0.217903036887921
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.0171490227684085
     },
     "conditionalOr": {
      "status": "value",
      "estimate": 2.41780518804621,
      "lower": 1.28446422068976,
      "upper": 4.65934835998654
     },
     "fisherTestConditional": {
      "estimate": 2.41781401226808,
      "lower": 1.2844647272336,
      "upper": 4.65935228550437
     },
     "oddsRatio": {
      "status": "value",
      "estimate": 2.42857142857143,
      "lower": 1.35434950590673,
      "upper": 4.35482802478287
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 2,
      "lower": 1.25597519555528,
      "upper": 3.18477627118389
     },
     "riskDifference": {
      "status": "value",
      "estimate": 0.15,
      "lower": 0.0529813122765278,
      "upper": 0.243913636235252
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "level-99",
   "text": "\tEvent\tNone\nTreated\t30\t70\nControl\t15\t85",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cohort",
    "level": 0.99,
    "analysis": "association",
    "test": "fisher",
    "roles": {
     "exposed": 0,
     "reference": 1,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Treated",
      "Control"
     ],
     "columns": [
      "Event",
      "None"
     ],
     "counts": [
      [
       30,
       70
      ],
      [
       15,
       85
      ]
     ]
    },
    "totals": {
     "rows": [
      100,
      100
     ],
     "columns": [
      45,
      155
     ],
     "n": 200
    },
    "expected": [
     [
      22.5,
      77.5
     ],
     [
      22.5,
      77.5
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Treated",
      "x": 30,
      "n": 100,
      "proportion": 0.3,
      "interval": {
       "status": "value",
       "estimate": 0.3,
       "lower": 0.197460656209905,
       "upper": 0.427427618876424
      }
     },
     {
      "row": "Control",
      "x": 15,
      "n": 100,
      "proportion": 0.15,
      "interval": {
       "status": "value",
       "estimate": 0.15,
       "lower": 0.0800854422870671,
       "upper": 0.263469039114009
      }
     }
    ],
    "association": {
     "test": "fisher",
     "pointer": null,
     "chiSquared": {
      "status": "not-run"
     },
     "yates": null,
     "fisher": {
      "status": "value",
      "p": 0.0171490227684085
     },
     "conditionalOr": {
      "status": "value",
      "estimate": 2.41780518804621,
      "lower": 0.937083636225826,
      "upper": 6.64927997706002
     },
     "fisherTestConditional": {
      "estimate": 2.41781401226808,
      "lower": 0.93707692808055,
      "upper": 6.64967217781833
     },
     "oddsRatio": {
      "status": "value",
      "estimate": 2.42857142857143,
      "lower": 0.973158389202205,
      "upper": 6.06063642785695
     },
     "relativeRisk": {
      "status": "value",
      "estimate": 2,
      "lower": 0.965212141041292,
      "upper": 4.14416668618021
     },
     "riskDifference": {
      "status": "value",
      "estimate": 0.15,
      "lower": -0.0029363915566199,
      "upper": 0.295347320005256
     }
    },
    "mcnemar": null,
    "trend": null
   }
  },
  {
   "name": "cross-sectional-proportions",
   "text": "\tYes\tNo\tUnsure\nSite 1\t12\t30\t8\nSite 2\t20\t22\t8",
   "exclude": [],
   "settings": {
    "unit": "independent",
    "design": "cross-sectional",
    "level": 0.95,
    "analysis": "association",
    "test": "chi-squared",
    "roles": {
     "exposed": null,
     "reference": null,
     "event": 0
    },
    "scores": null
   },
   "expected": {
    "problem": null,
    "refused": [],
    "table": {
     "rows": [
      "Site 1",
      "Site 2"
     ],
     "columns": [
      "Yes",
      "No",
      "Unsure"
     ],
     "counts": [
      [
       12,
       30,
       8
      ],
      [
       20,
       22,
       8
      ]
     ]
    },
    "totals": {
     "rows": [
      50,
      50
     ],
     "columns": [
      32,
      52,
      16
     ],
     "n": 100
    },
    "expected": [
     [
      16,
      26,
      8
     ],
     [
      16,
      26,
      8
     ]
    ],
    "zeroMargins": [],
    "proportions": [
     {
      "row": "Site 1",
      "x": 12,
      "n": 50,
      "proportion": 0.24,
      "interval": {
       "status": "value",
       "estimate": 0.24,
       "lower": 0.142973913969917,
       "upper": 0.374126837579429
      }
     },
     {
      "row": "Site 2",
      "x": 20,
      "n": 50,
      "proportion": 0.4,
      "interval": {
       "status": "value",
       "estimate": 0.4,
       "lower": 0.276083897302565,
       "upper": 0.538185622524106
      }
     }
    ],
    "association": {
     "test": "chi-squared",
     "pointer": null,
     "chiSquared": {
      "status": "value",
      "statistic": 3.23076923076923,
      "df": 2,
      "p": 0.198814188738074
     },
     "yates": null,
     "fisher": {
      "status": "not-run"
     },
     "conditionalOr": null,
     "oddsRatio": {
      "withheld": "NOT_2X2"
     },
     "relativeRisk": {
      "withheld": "NOT_2X2"
     },
     "riskDifference": {
      "withheld": "NOT_2X2"
     }
    },
    "mcnemar": null,
    "trend": null
   }
  }
 ]
}
