Written and maintained by CASRAI Editorial Board
Last updated
A 95% confidence interval for an odds ratio is not symmetric around the point estimate on the scale you actually read it — and that is not an error, it is a direct consequence of how the interval is computed. The calculation happens on the log-odds scale, where the interval genuinely is symmetric, and only becomes lopsided after the bounds are exponentiated back to the odds-ratio scale you report. Missing this produces a specific, common misreading: treating the midpoint of the reported bounds as the point estimate, when the point estimate actually sits at their geometric mean, not their arithmetic mean. This guide works the calculation by hand, shows exactly where the asymmetry comes from, and covers what changes when the underlying table is sparse.
The Formula: A Confidence Interval Computed on the Log-Odds Scale
For a 2×2 table with cell counts a, b, c, d (exposed-with-outcome, exposed-without, unexposed-with-outcome, unexposed-without), the odds ratio itself is straightforward:
| Outcome | No outcome | |
|---|---|---|
| Exposed | a | b |
| Unexposed | c | d |
OR = (a × d) / (b × c)
The confidence interval is not built by adding and subtracting a margin of error from this ratio directly. It is built on the natural log of the odds ratio, which behaves like an ordinary, roughly-normal quantity that a standard error can legitimately describe. This is Woolf’s method, and it is the log-scale computation almost every statistics package uses by default:
- SE(ln OR) = √(1/a + 1/b + 1/c + 1/d)
- 95% CI for ln(OR) = ln(OR) ± 1.96 × SE(ln OR)
- 95% CI for OR = exp(lower log bound) to exp(upper log bound)
Everything before the final exponentiation step happens in additive, symmetric log space. The asymmetry you see in the reported interval is introduced entirely by that last step — converting back from log-odds to odds.
Worked Example
Suppose a study compares an outcome between an exposed and an unexposed group:
| Outcome | No outcome | Total | |
|---|---|---|---|
| Exposed | 30 | 70 | 100 |
| Unexposed | 15 | 85 | 100 |
Step 1 — odds ratio: OR = (30 × 85) / (70 × 15) = 2550 / 1050 ≈ 2.43.
Step 2 — standard error of the log odds ratio: SE(ln OR) = √(1/30 + 1/70 + 1/15 + 1/85) = √0.1260 ≈ 0.355.
Step 3 — interval on the log scale: ln(2.43) ≈ 0.887. The 95% interval is 0.887 ± (1.96 × 0.355) = 0.887 ± 0.696, giving log bounds of 0.191 to 1.583. This interval is exactly symmetric around 0.887 — each bound is 0.696 away from the point estimate, on the log scale.
Step 4 — exponentiate back to the odds-ratio scale: exp(0.191) ≈ 1.21, and exp(1.583) ≈ 4.87. The reported result is OR = 2.43, 95% CI 1.21–4.87.
Why the Interval Is Asymmetric on the Natural Scale
Look at the distances from the point estimate to each bound on the odds-ratio scale: 2.43 − 1.21 = 1.22 down to the lower bound, but 4.87 − 2.43 = 2.44 up to the upper bound — the upper gap is roughly double the lower one, even though both were built from the identical ±0.696 margin on the log scale. This is not a computational quirk; it is what exponentiating a symmetric interval always does. Odds ratios live on a multiplicative scale: doubling and halving are equally-sized moves in log space, but a halving (2.43 → 1.21) covers far less linear distance than a doubling (2.43 → 4.87). The same ±0.696 log-units therefore stretches much further above 2.43 than below it once exponentiated.
The interpretation trap this creates: the arithmetic midpoint of the reported bounds, (1.21 + 4.87) / 2 ≈ 3.04, is not the odds ratio — it overstates it by about 25%. The point estimate is instead the geometric mean of the bounds: √(1.21 × 4.87) ≈ 2.43, which matches exactly, because exponentiating a symmetric log interval preserves that relationship. Eyeballing a reported CI and assuming the point estimate sits halfway between the two numbers — the way it would for a mean difference or a risk difference — silently shifts your read of the effect toward the wider, upper side of the interval. When you need the true center, compute it on the log scale (or take the geometric mean), never the arithmetic mean of the published bounds.
When the Table Is Sparse: Zero Cells and Alternatives to Woolf’s Method
Woolf’s log-scale method breaks down when any cell in the 2×2 table is zero — 1/0 is undefined, and ln(OR) itself is undefined if the odds ratio is 0 or infinite. Three common responses:
- Continuity correction: add 0.5 to every cell before computing OR and SE(ln OR). This keeps the Woolf calculation defined and is the simplest fix, but it biases the estimate toward 1.0 and is a poor choice when counts are small across the board, not just in one cell.
- Exact (conditional) methods: compute the interval from the non-central hypergeometric distribution directly (the same distribution behind Fisher’s exact test) rather than approximating with a normal distribution on the log scale. These are more accurate for small or sparse tables and don’t require a continuity correction, at the cost of needing iterative computation rather than a closed-form formula.
- From a fitted logistic regression model: the model’s default confidence interval (Wald: coefficient ± 1.96 × its standard error, on the log-odds scale, then exponentiated) is the direct generalization of Woolf’s method to a multivariable setting. Many statistical packages instead default to a profile-likelihood interval for a fitted model, which is not the same calculation — the two methods agree closely on well-populated, near-null coefficients, but diverge meaningfully with sparse cells or large effect sizes, where Wald intervals are known to perform worse. Check which method your software actually reports before assuming it matches a hand calculation.
Reading and Reporting the Interval Correctly
A complete report states the odds ratio and its interval together, not the point estimate alone: “OR = 2.43 (95% CI, 1.21–4.87)” is a complete statement; “OR = 2.43” alone is not, since the interval is what tells a reader how precisely that 2.43 was estimated. A few checks that follow directly from the asymmetry above:
- Never average the two bounds to sanity-check the point estimate — use the geometric mean, or better, verify the calculation on the log scale where the arithmetic is genuinely symmetric.
- An interval that excludes 1.0 indicates the odds ratio is distinguishable from “no association” at that confidence level; an interval that spans 1.0 does not, regardless of how far the point estimate itself sits from 1.0.
- A wide interval on the odds-ratio scale (e.g., 1.21–4.87) reflects genuine imprecision, usually from a small number of outcome events, not an error in the calculation — the width is honest information, not a sign something went wrong.
Frequently Asked Questions
Why is a 95% CI for an odds ratio asymmetric on the natural scale?
Because the interval is computed on the log-odds scale, where it is exactly symmetric, and only exponentiated back to the odds-ratio scale afterward. Exponentiating a symmetric interval on a multiplicative quantity always produces a wider gap on the upper side than the lower side.
How do you calculate a 95% CI for an odds ratio by hand?
From a 2×2 table, compute OR = ad/bc, then SE(ln OR) = √(1/a + 1/b + 1/c + 1/d), then take ln(OR) ± 1.96 × SE(ln OR) for the log-scale bounds, then exponentiate each bound back to the odds-ratio scale.
Does the odds ratio sit at the midpoint of its reported confidence interval?
No — not the arithmetic midpoint. It sits at the geometric mean of the lower and upper bounds, which is lower than the arithmetic mean because the interval is asymmetric on that scale.
What happens when a cell in the 2×2 table is zero?
The standard log-scale (Woolf) formula is undefined, since it involves dividing by that cell’s count. Common fixes are a continuity correction (adding 0.5 to every cell) or switching to an exact method based on the non-central hypergeometric distribution, which handles zero cells without a correction.
Is the confidence interval from a logistic regression model the same as one computed from a 2×2 table by hand?
They use the same underlying idea — a symmetric interval on the log-odds scale, then exponentiated — but the default method differs by software. A Wald interval (coefficient ± 1.96 × SE) matches the hand calculation directly; a profile-likelihood interval, which many packages default to for a fitted model, is computed differently and can diverge from the Wald result with sparse data or large effects, though the two typically agree closely for well-populated, near-null terms.
Related CASRAI Resources
- How to Interpret an Odds Ratio: Odds, Not Probability
- Confidence Interval Explained: How to Calculate and Interpret One
- Logistic Regression (the Logit Model): Interpretation, Diagnostics, and Reporting
- How to Report Confidence Intervals in a Manuscript
- Case-Control Study vs. Cohort Study
- Research Methods hub








