HomeDescriptive StatisticsProportion Calculator - Free Confidence Interval & Test

Proportion Calculator – Free Confidence Interval & Test

Proportion Calculator - Free CI & Z Test | StatsUnlock

Proportion Calculator

Paste comma-separated numbers or upload a CSV and get the sample proportion with a Wilson, Agresti-Coull and exact confidence interval, a one sample or two sample proportion test, chi-square across groups, Cohen's h effect size and four charts.

DescriptiveConfidence IntervalOne SampleTwo SampleChi-SquareFree Online

0. Quick Answer

A proportion calculator divides the number of cases that have a feature by the total number of cases, so the answer always sits between 0 and 1.

If 33 of 60 patients improved, the proportion is 33 ÷ 60 = 0.550, or 55.0%. A proportion on its own is only half the answer, so this tool also returns the standard error, a Wilson score confidence interval, an exact interval, and a z test against any value you choose.

p̂ = x ÷ n   |   SE = √( p̂(1 − p̂) ÷ n )

Rule of thumb: report the Wilson score interval, not the Wald interval, and only trust the normal approximation when the number of successes and the number of failures are both at least 10.

Key Takeaways

  • The proportion calculator returns p̂ = x ÷ n, a value that is always between 0 and 1.
  • The standard error is √(p̂(1 − p̂) / n) and it is largest when p̂ is near 0.50.
  • The Wilson score interval keeps close to its stated 95% coverage where the Wald interval drops to about 85% in small samples.
  • The normal approximation needs x ≥ 10 and n − x ≥ 10; below that the exact Clopper-Pearson interval is used instead.
  • With two groups the tool runs a two sample proportion test, and with three or more it runs a chi-square test of homogeneity.
  • Effect size is Cohen's h: 0.2 small, 0.5 medium, 0.8 large.

📚 1. What Is a Proportion?

A proportion is a part divided by a whole, and a proportion calculator is simply a tool that does that division and then tells you how much to trust the answer. You count how many cases have the feature you care about, call that x, divide by the total number of cases n, and you get a number between 0 and 1. Multiply by 100 and you have a percentage. Nothing else about a proportion is complicated; everything that follows is about how much a proportion from a sample can be trusted.

The eleven quantities this calculator reports for every group:

  • Successes (x), the count of cases that meet your rule.
  • Sample size (n), the count of all valid cases.
  • Sample proportion (p̂), x divided by n, and the same value as a percentage.
  • Standard error, how much p̂ would bounce around from sample to sample.
  • Margin of error, the half width of the Wald interval, the number opinion polls quote.
  • Wald confidence interval, the textbook interval, shown for comparison only.
  • Wilson score confidence interval, the recommended interval and the one to report.
  • Agresti-Coull interval, the add-two-successes-and-two-failures shortcut.
  • Clopper-Pearson exact interval, built from the binomial distribution, safe at any n.
  • One sample z test against a hypothesised proportion you set.
  • Odds and the log odds, for anyone moving on to logistic regression.

With two groups it adds the risk difference, risk ratio, odds ratio, a two sample proportion test and Cohen's h. With three or more it adds a chi-square test of homogeneity.

A worked one-liner: for the five values 52, 48, 55, 61, 47 with the rule "counts as a success at or above 50", three values qualify, so x = 3, n = 5 and p̂ = 0.600. The Wald interval is wildly optimistic at this sample size, which is exactly why the Wilson interval is the default here.

12 successes out of 20 observations p̂ = 12 / 20 = 0.600 = 60.0% 95% Wilson interval: 0.387 to 0.781
A proportion is a count over a total. The point estimate is one number, but with n = 20 the honest answer is a range almost 40 percentage points wide. That gap between the estimate and the interval is the whole reason this calculator exists.

Who uses which: clinical trials report the proportion of patients who respond and the risk difference between arms. Pollsters report a proportion with a margin of error. Quality control reports the proportion defective against a target. Ecology reports the proportion of plots occupied. Education reports the proportion of students at or above a benchmark score, which is exactly the cutoff mode this tool opens with.

MeasureWhat it isRangeUse it when
ProportionPart ÷ whole0 to 1You want the share of a fixed group
PercentageProportion × 1000 to 100You are writing for a general reader
RatioPart ÷ other part0 to infinityYou compare two categories directly
Oddsp ÷ (1 − p)0 to infinityYou are heading into logistic regression
RateCount ÷ exposure time0 to infinityThe denominator is time, not people

A note on wording: "proportionality" in mathematics means two quantities that scale together, as in a direct proportion a/b = c/d. That is a different idea from the statistical proportion on this page. Section 4.8 solves the mathematical kind so both meanings are covered.

🧮 2. Set Up Your Data

Paste, upload or type your numbers, then press Run Analysis. The proportion calculator computes nothing until you do, so you can change the cutoff, the confidence level and the group names as many times as you like first.

One group is loaded by default. Press Add group to compare two or more proportions. Nothing is computed until you press Run Analysis.
Comma-separated input is the default in every mode. Spaces, tabs and new lines also work.
With the default data, values of 50 or more count as a success.
Supports .csv, .txt, .xlsx and .xls. Headers are detected automatically. Files are read in your browser and never uploaded to a server.

Type one value per cell. Each column becomes its own group, and the column heading becomes that group's name, so edit the headings before you load the table. Empty cells are ignored.

Columns (groups)
Rows (observations)
Table

Only matters when your sample is more than about 5% of the population.

📈 3. Results

Press Run Analysis above to calculate the proportion, its confidence interval and the test result. Nothing is computed until you do.

Visualisations

Four charts of the same result. They update every time you press Run Analysis.

Plot 1 · Proportion with confidence intervalPoint estimate and Wilson score interval per group
Plot 2 · Successes and failuresStacked composition of every group
Plot 3 · Interval comparisonWald, Wilson, Agresti-Coull and exact widths for group 1
Plot 4 · Sampling distributionNormal curve under the null with the observed z marked

🧠 4. Interpretation of Results, In Detail

A number from a proportion calculator is easy to compute and easy to misread. This section walks through every quantity the tool returns, says in plain words what it means, and shows the sentence you would actually write. Wherever you see live numbers, they come from the analysis you just ran; before you run it you will see underscores instead.

Each block below fills with your own numbers the moment you press Run Analysis.

4.1 The point estimate

Run the analysis above to fill this in.

The sample proportion p̂ is your single best guess at the population proportion. It is unbiased, which means that if you repeated the study many times the average of all the p̂ values would land on the true value. Being unbiased is not the same as being accurate in one study. A single p̂ from a small sample can sit a long way from the truth, and the confidence interval is the honest statement of how far.

Always report p̂ with the counts behind it. "55%" tells the reader nothing about whether it came from 11 of 20 or 550 of 1000. "0.550 (33/60)" tells them everything.

4.2 The standard error, and why 0.5 is the worst case

Run the analysis above to fill this in.

The standard error is the typical distance between a sample proportion and the population proportion. Its formula, √(p̂(1−p̂)/n), has two moving parts. The n in the denominator means precision improves with the square root of sample size, so to halve your error you need four times the data. The p̂(1−p̂) term peaks at p̂ = 0.5, where it equals 0.25, and shrinks towards zero as the proportion approaches 0 or 1.

That second point has a practical consequence. A rare outcome, say a 2% complication rate, has a small standard error in absolute terms but a huge one relative to the estimate itself. Two percent plus or minus one percentage point is a range that spans a threefold difference in risk. Never judge precision by the width of the interval alone; judge it against the size of the effect you care about.

4.3 Which confidence interval to report

Run the analysis above to fill this in.

This calculator gives you four intervals on purpose, because they disagree exactly where it matters most.

  • Wald is the one in most textbooks: p̂ ± z·SE. It is simple, it is what a margin of error means, and it is the least accurate of the four. Its real coverage can fall to about 85% when it claims 95%, and it can produce limits below 0 or above 1, which are impossible values.
  • Wilson score inverts the score test instead of the Wald test. It never leaves the 0 to 1 range, it stays close to nominal coverage even at n = 10, and it is asymmetric around p̂, pulled slightly towards 0.5. This is the interval to report.
  • Agresti-Coull adds two successes and two failures, then applies the Wald formula to the adjusted counts. It is a hand-computable approximation to Wilson and is almost always close to it.
  • Clopper-Pearson exact is built directly from the binomial distribution, so its coverage is guaranteed to be at least the stated level. The price is that it is conservative, meaning it is wider than it strictly needs to be. Use it when x or n−x is under 10, when a regulator asks for an exact method, or when you must never overstate precision.

A 95% confidence interval does not mean there is a 95% chance the true proportion is inside this particular interval. It means the procedure that built it captures the true value 95% of the time across repeated studies. In practice you report the interval and let the reader see the range of values your data are compatible with.

4.4 The one sample proportion test

Run the analysis above to fill this in.

The one sample test asks whether your observed proportion is far enough from a fixed value p₀ to be surprising. Note that the standard error in the test uses p₀, not p̂, because under the null hypothesis the true proportion is p₀. That is why the test and the Wald interval can occasionally disagree, one saying significant and the other including p₀. When they disagree, trust the score based results, which means the test statistic here and the Wilson interval, because they use the same standard error and are internally consistent.

Choose p₀ before you look at the data. Common choices are 0.5 for a coin or a two option preference, a published benchmark, a regulatory threshold, or last year's figure.

4.5 Comparing two proportions

Run the analysis above to fill this in.

With two groups the tool reports three different ways of expressing the same comparison, and they answer different questions.

  • Risk difference (p̂₁ − p̂₂) is on the natural scale of the outcome. It is what tells you how many extra people are affected, and its reciprocal is the number needed to treat.
  • Risk ratio (p̂₁ ÷ p̂₂) says how many times more likely the outcome is. It is easy to say aloud and easy to exaggerate: a doubling of a very rare risk is still a very small risk.
  • Odds ratio compares odds rather than probabilities. It is the quantity logistic regression estimates and the only one that works in a case-control design, but it overstates the risk ratio whenever the outcome is common.

Report the risk difference with its confidence interval as your headline, because that is the number a decision rests on, and give the ratio alongside it.

4.6 Effect size: Cohen's h

Run the analysis above to fill this in.

A p-value tells you whether an effect is detectable. It does not tell you whether the effect is big. Cohen's h fixes that for proportions. It transforms each proportion with φ = 2·arcsin(√p) and takes the difference, which stabilises the variance so a given h means the same thing whether the proportions are near 0.5 or near 0.05.

Conventional bands are 0.20 small, 0.50 medium and 0.80 large. Treat them as a rough language, not a law. In a clinical setting an h of 0.15 that prevents strokes matters far more than an h of 0.8 in a preference survey about packaging colour.

4.7 Assumption checks and what a failure costs you

Run the analysis above to fill this in.

Four things have to hold. Each observation must be independent of every other, the outcome must be genuinely binary, the sample must be drawn from the population you want to talk about, and the counts must be large enough for the normal approximation. The tool checks the last one directly and flags the others as design questions only you can answer.

Failure has a direction. Clustered data, for example several measurements from the same school or the same patient, makes the standard error too small, the interval too narrow and the p-value too small, so you find effects that are not there. A biased sampling frame shifts p̂ itself and no amount of extra data will fix it. Small counts make the normal approximation unreliable in both directions, which is why the exact interval is reported alongside.

4.8 Direct proportion and proportionality, the other meaning

People searching for a proportionality calculator or a solve proportion calculator often want the algebraic kind: given a/b = c/d with one unknown, find it. The rule is cross multiplication, a·d = b·c, so the missing term is whichever product divided by the known partner. For 3/4 = x/20, cross multiply to get 4x = 60, so x = 15. A direct proportion means y = kx, and doubling x doubles y. An inverse proportion means y = k/x, and doubling x halves y.

The statistical proportion on this page is a special case of the first idea, where the whole is fixed at n and the part is x, so the answer is always between 0 and 1. If your question is about scaling a recipe, a map or a mixture, the cross multiplication rule is all you need. If it is about how confident you are in a share measured on a sample, this is the right page.

4.9 A decision guide

Find your situation in the left column. It tells you what this proportion calculator should report and which test belongs with it.

Your situationWhat to reportWhich test
One group, x ≥ 10 and n − x ≥ 10p̂ with the Wilson intervalOne sample z test
One group, small counts or p̂ near 0 or 1p̂ with the exact intervalExact binomial test
Two independent groupsRisk difference with its intervalTwo sample z test or chi-square
Two groups, any expected count under 5Risk difference with its intervalFisher's exact test
Two measurements on the same peopleThe discordant pair countsMcNemar's test, not this tool
Three or more groupsEvery p̂ with its intervalChi-square test of homogeneity
Ordered groups with a trend expectedp̂ per levelCochran-Armitage trend test

4.10 Common mistakes this proportion calculator prevents

  • Reporting a percentage with no denominator. The tool always prints x and n beside p̂.
  • Using the Wald interval at small n. The Wilson interval is shown first and the exact interval appears whenever the counts are small.
  • An interval that runs below 0 or above 1. Wilson and exact cannot do this, and the tool flags it when Wald does.
  • Comparing two proportions by checking whether their intervals overlap. That test is far too conservative. The tool gives you the proper two sample test instead.
  • Treating paired data as independent. The assumption panel warns you and names McNemar's test.
  • Quoting a risk ratio with no baseline risk. The tool prints the risk difference beside every ratio.
  • Chasing significance with no effect size. Cohen's h is reported automatically for two groups.

5. How to Write Your Results in Research

When reporting proportion calculator results in APA format, give the counts, the proportion, the confidence interval and the test statistic in one sentence, in that order. Every card below fills itself with your own numbers after you run the analysis, and every card has a Copy button. Paste it into your manuscript and edit only the variable names.

Template 1 · APA 7th style results sentence

APA 7TH RESULTS SENTENCE
Run the analysis above to fill this in.
Conventions used

APA asks for proportions to two or three decimals with no leading zero suppressed for values that can exceed 1, p-values to three decimals, and exact p-values rather than "p < .05" unless the value is below .001. Confidence intervals are given as [lower, upper] with a comma.

Template 2 · Thesis or dissertation paragraph

THESIS PARAGRAPH
Run the analysis above to fill this in.
Conventions used

A thesis paragraph names the method before the number, states the software, and justifies the choice of interval. Examiners look for the justification, not the arithmetic.

Template 3 · Plain language summary

PLAIN LANGUAGE SUMMARY
Run the analysis above to fill this in.
Conventions used

Written for a lay reader or a press office. Percentages rather than proportions, no symbols, and the uncertainty expressed as a range in ordinary words.

Template 4 · Structured abstract or conference poster line

ABSTRACT OR POSTER LINE
Run the analysis above to fill this in.
Conventions used

Abstract space is tight, so counts, proportion, interval and p-value are compressed into one line with semicolons. Effect size is kept because reviewers ask for it.

Template 5 · Replication and pre-registration statement

PRE-REGISTRATION STATEMENT
Run the analysis above to fill this in.
Conventions used

Names the interval method, the continuity correction setting, the confidence level, the hypothesised value and the test direction, so another analyst can reproduce the number exactly.

The four things a reviewer always checks: the denominator is stated, the interval method is named, the confidence level is given, and the effect size appears next to the p-value. All four are in every template above.

🔢 6. Formulas Used

Seven formulas do all the work in this proportion calculator. They are shown in the order the calculator applies them, from the point estimate outward to the test and the effect size.

Sample proportion
p̂ = x ÷ n
Sample proportion, unitless, always between 0 and 1
xNumber of successes, a whole count
nNumber of valid observations, a whole count
Range0 to 1. Multiply by 100 for a percentage
RequiresEvery observation classified as exactly one of success or failure
Example33 ÷ 60 = 0.550, or 55.0%
Standard error of a proportion
SE = √( p̂(1 − p̂) ÷ n )
SEStandard error, on the same scale as the proportion
p̂(1−p̂)The variance of a single Bernoulli trial, largest at p̂ = 0.5
nSample size. SE falls with the square root of n
Use forThe Wald interval and the margin of error
NoteThe one sample test uses p₀ in place of p̂ here
Example√(0.55 × 0.45 ÷ 60) = 0.0642
Wald confidence interval, shown for comparison
p̂ ± zα/2 × √( p̂(1 − p̂) ÷ n )
zα/2Critical value: 1.6449 at 90%, 1.9600 at 95%, 2.5758 at 99%
± termThe margin of error, unitless
RangeCan fall below 0 or rise above 1, which is a defect
RuleOnly defensible when x ≥ 10 and n − x ≥ 10
Example0.550 ± 1.96 × 0.0642 = 0.424 to 0.676
Wilson score interval, the one to report
( p̂ + z²/2n ± z√( p̂(1−p̂)/n + z²/4n² ) ) ÷ ( 1 + z²/n )
zThe same critical value as the Wald interval
z²/2nThe shrinkage term that pulls the centre towards 0.5
1 + z²/nThe scaling denominator that keeps the limits inside 0 and 1
RangeAlways strictly inside 0 to 1
Use forAny n, and especially small n or p̂ near 0 or 1
Example33 of 60 gives 0.425 to 0.669 at 95%
One sample z test for a proportion
z = ( p̂ − p₀ ) ÷ √( p₀(1 − p₀) ÷ n )
p₀The hypothesised population proportion, chosen before seeing the data
zTest statistic, unitless, compared with the standard normal curve
p-value2 × (1 − Φ(|z|)) for a two tailed test
Requiresnp₀ ≥ 10 and n(1−p₀) ≥ 10
NoteThe denominator uses p₀, not p̂. That is deliberate
Example(0.550 − 0.5) ÷ 0.06455 = 0.775, p = 0.439
Two sample proportion test, pooled
z = ( p̂₁ − p̂₂ ) ÷ √( p̂pool(1 − p̂pool) × (1/n₁ + 1/n₂) ),   p̂pool = (x₁ + x₂) ÷ (n₁ + n₂)
poolPooled proportion, used because the null says both are equal
p̂₁ − p̂₂Risk difference, on the natural scale of the outcome
CIThe interval for the difference uses unpooled SEs, not the pooled one
RequiresIndependent groups and at least 5 expected in every cell
Notez² equals the Pearson chi-square statistic on 1 df
Cohen's h effect size
h = | 2·arcsin(√p̂₁) − 2·arcsin(√p̂₂) |
hEffect size, unitless, on the arcsine transformed scale
arcsinIn radians. The transform makes the variance constant
Bands0.20 small, 0.50 medium, 0.80 large
Use forPower analysis and comparing effects across studies
NoteUnlike the risk difference, h does not shrink as proportions approach 0

🧭 7. How to Use This Proportion Calculator

Ten steps, start to finish. The worked example runs alongside: five test scores, 52, 48, 55, 61, 47, with a pass mark of 50.

  1. Choose your data type. Raw values with a cutoff is the default. Pick binary if your column is already 1s and 0s, or successes and trials if you only have the two counts. Example: raw values with a cutoff.
  2. Name the group. The group name box is fully editable. Type something a reader would recognise, such as Clinic A or Year 9 Maths, because that name appears in every chart, table and exported report. Example: Class 9A.
  3. Paste the data. Comma-separated is the default format, so 52, 48, 55, 61, 47 works exactly as typed. Spaces, tabs and line breaks are accepted too, and anything that is not a number is ignored.
  4. Set the cutoff rule. Choose the operator and the value that make an observation count as a success. Example: at or above 50, which gives 3 successes from 5 values.
  5. Add more groups if you are comparing. Press Add group for a second box. Two groups trigger the two sample proportion test; three or more trigger the chi-square test of homogeneity.
  6. Or upload a file instead. Open the Upload tab, choose a CSV or Excel file, then click each column that should become its own group. Selected columns turn blue in the preview. Press Load selected columns as clusters and each one arrives as a separate named group.
  7. Set the confidence level and p₀. Ninety-five percent and 0.5 are the defaults. Change p₀ to whatever benchmark your field uses.
  8. Press Run Analysis. Nothing is computed before you do. The results, interpretation, report templates and conclusion all fill in at once.
  9. Read the Wilson interval first, then the test. The interval tells you the range of plausible values; the p-value only tells you whether p₀ is inside it. Example: p̂ = 0.600, 95% Wilson interval 0.231 to 0.882.
  10. Export. Download Doc gives a plain text report you can paste anywhere. Download PDF opens the print dialogue with a clean A4 layout.
One thing to get right before you start: decide the cutoff rule and the value of p₀ before you look at the data. Choosing them afterwards, once you can see which choice gives a smaller p-value, is the most common way an honest analysis turns into a misleading one.

📊 8. How to Calculate a Proportion in Excel

Everything this proportion calculator does can be rebuilt in a plain Excel sheet with no add-ins. The worked example below is the same one used in sections 9, 10 and 12: Clinic A, 33 of 60 patients improved, compared later with Clinic B, 21 of 55. Every number you see in the screenshots is the number Excel actually returns.

8.1 The functions you need

FunctionWhat it doesExample
COUNTIFCounts the cells that meet your success rule=COUNTIF(A2:A61,">=50")
COUNTCounts the numeric cells, giving n=COUNT(A2:A61)
SUMGives x directly when the column is already 1s and 0s=SUM(B2:B61)
NORM.S.INVThe critical z value for your confidence level=NORM.S.INV(1-0.05/2)
NORM.S.DISTThe standard normal probability, used for the p-value=2*(1-NORM.S.DIST(ABS(z),TRUE))
BINOM.DISTExact binomial probabilities for a small sample test=BINOM.DIST(33,60,0.5,TRUE)
BETA.INVBuilds the exact Clopper-Pearson limits=BETA.INV(0.025,33,28)
CHISQ.TESTCompares three or more proportions from a contingency table=CHISQ.TEST(observed,expected)
SQRTUsed in every standard error formula=SQRT(p*(1-p)/n)
Tip: the Analysis ToolPak is not needed for any of this. It has no proportion tool, so even with it enabled you would still build these formulas by hand.

8.2 Step by step

1 Lay the data out in one column

Put every observation in column A with a header in A1. If your outcome is already binary, put 1 for a success and 0 for a failure in column B. If it is a raw measurement, leave column B for the rule you are about to write.

The formula chip for a raw column with a pass mark of 50 is =IF(A2>=50,1,0), filled down.

Xproportion.xlsx - ExcelA2fxAB1ScorePass (1/0)25213480455156116470750185819531

Column A holds the raw scores 52, 48, 55, 61, 47, 50, 58, 53. Column B turns each one into a 1 or a 0 with the pass mark at 50, so 52 becomes 1 and 48 becomes 0.

2 Count the successes and the total

Two formulas give you everything the point estimate needs.

=COUNTIF(A2:A61,">=50") =COUNT(A2:A61) =E2/E3

Xproportion.xlsx - ExcelE2fx=COUNTIF(A2:A61,">=50")DE1StatisticValue2Successes x333Sample size n604Proportion p0.5500005Percentage55.0%

Excel returns x = 33 and n = 60, so the proportion is 0.550000, which formats as 55.0%.

Trap: COUNT ignores text and blanks but COUNTA does not. If your column has a stray "N/A" typed in, COUNTA will inflate n and quietly shrink your proportion.

3 Build the standard error and the Wald interval

Put the critical z in one cell so you can change the confidence level in one place.

=NORM.S.INV(1-0.05/2) =SQRT(E4*(1-E4)/E3) =E4-E2*E7 =E4+E2*E7

Xproportion.xlsx - ExcelE7fx=SQRT(E4*(1-E4)/E3)DE1StatisticValue2z at 95%1.9599643Standard error0.0642264Margin of error0.1258815Wald lower0.4241196Wald upper0.675881

The standard error is 0.064226 and the margin of error is 0.125881, giving a Wald interval of 0.4241 to 0.6759.

4 Build the Wilson score interval, the one you should report

It is one long formula but it only uses arithmetic already on the sheet. Write the lower limit, then copy it and change the minus before the square root to a plus.

=(E4+E2^2/(2*E3)-E2*SQRT(E4*(1-E4)/E3+E2^2/(4*E3^2)))/(1+E2^2/E3)

The exact Clopper-Pearson limits are two calls to BETA.INV: =BETA.INV(0.025,E2_x,E3_n-E2_x+1) for the lower limit and =BETA.INV(0.975,E2_x+1,E3_n-E2_x) for the upper.

Xproportion.xlsx - ExcelE12fx=(E4+E2^2/(2*E3)-E2*SQRT(E4*(1-E4)/E3+E2^2/(4*E3^2)))/(1+E2^2/E3)DE1Interval method95% limits2Wald0.4241 - 0.67593Wilson score0.4249 - 0.66914Agresti-Coull0.4249 - 0.66915Clopper-Pearson0.4161 - 0.6788

All four intervals side by side. Wilson gives 0.4249 to 0.6691, Agresti-Coull agrees to four decimals, and the exact interval is the widest at 0.4161 to 0.6788.

Tip: when x is 0 or n, BETA.INV errors. Wrap it in IFERROR and return 0 or 1 respectively, which is the correct exact limit in those cases.

5 Run the one sample proportion test

The standard error here uses p₀, not p̂. That is the single most common mistake in a hand-built Excel sheet.

=SQRT(0.5*(1-0.5)/E3) =(E4-0.5)/E16 =2*(1-NORM.S.DIST(ABS(E17),TRUE))

Xproportion.xlsx - ExcelE18fx=2*(1-NORM.S.DIST(ABS(E17),TRUE))DE1One sample z testValue2Hypothesised p00.5000003SE under H00.0645504z statistic0.7745975p-value (two tailed)0.4385786Decision at 0.05Not significant

z is 0.774597 and the two tailed p-value is 0.438578, so 33 out of 60 is not detectably different from a 50% rate.

6 Compare two proportions

Pool the two groups first, because the null hypothesis says they share one true proportion.

=(x1+x2)/(n1+n2) =(p1-p2)/SQRT(pp*(1-pp)*(1/n1+1/n2)) =2*(1-NORM.S.DIST(ABS(z),TRUE))

Xproportion.xlsx - ExcelE26fx=2*(1-NORM.S.DIST(ABS(E25),TRUE))DE1Two sample testValue2Clinic A x / n33 / 603Clinic B x / n21 / 554Pooled p0.4695655z statistic1.8051916p-value0.0710457Risk difference0.168182

Clinic A at 33/60 against Clinic B at 21/55 gives a pooled proportion of 0.469565, z of 1.805191, p of 0.071045 and a risk difference of 0.168182.

8.3 The awkward cases

  • Text codes instead of numbers. If your column holds "Yes" and "No", use =COUNTIF(A2:A61,"Yes") and =COUNTA(A2:A61). Watch for trailing spaces, which make "Yes " fail to match.
  • Blanks in the middle of the range. COUNT skips them, which is usually what you want, but state in your write-up how many cases were dropped.
  • Percentages already entered. If a cell shows 55% Excel stores 0.55, so do not divide by 100 again.
  • A proportion of exactly 0 or 1. The Wald interval collapses to zero width. Use the Wilson formula, which still returns a sensible one sided bound.
  • Weighted survey data. Excel has no built-in weighted proportion. Use =SUMPRODUCT(B2:B61,W2:W61)/SUM(W2:W61) and treat the effective sample size as smaller than n.

8.4 Why Excel, R, Python and this page can disagree

They agree to six decimals if you set them up the same way, and they disagree in three specific places if you do not.

SettingExcelRPythonThis calculator
Continuity correctionNever applied unless you write itprop.test applies it by defaultproportions_ztest does notOff by default, switchable
Default intervalWhatever you buildWilson score, from prop.testWald, from proportion_confint unless you pass method="wilson"Wilson shown first
Exact intervalBETA.INVbinom.testscipy.stats.binomtestClopper-Pearson
Test statistic reportedzchi-square (z²)zz, with chi-square shown
The one that catches everyone: R's prop.test(33, 60, p = 0.5) returns p = 0.5185 because the continuity correction is on. Add correct = FALSE and it returns 0.4386, which matches Excel, Python and this page exactly.

8.5 Charting it in Excel

Select the group names and the proportions, then insert a clustered column chart. To add the confidence interval, click the series, choose Add Chart Element, then Error Bars, then More Error Bar Options, and set Custom values pointing at two helper columns holding the distance from p̂ down to the lower limit and up to the upper limit. Because the Wilson interval is asymmetric, the plus and minus values are genuinely different, so do not use the single "Fixed value" option.

Set the vertical axis maximum to 1 rather than letting Excel auto-scale, otherwise a difference of two percentage points can be drawn to look enormous.

8.6 Error messages and what they mean

MessageCauseFix
#DIV/0!n is zero, usually an empty or text-only rangeCheck the range in COUNT and remove text codes
#NUM!BETA.INV received a zero shape parameter, which happens when x = 0 or x = nWrap it in IFERROR and return 0 or 1
#VALUE!Text where a number is expected, often a number stored as textSelect the column, then Data, then Text to Columns, then Finish
#NAME?Older Excel without NORM.S.INVUse NORMSINV and NORMSDIST instead
A proportion above 1You divided by the wrong denominatorConfirm that the COUNTIF range and the COUNT range are identical
An interval limit below 0The Wald formula at a small n or an extreme p̂Switch to the Wilson formula in step 4

📈 9. How to Calculate a Proportion in R

You do not need this proportion calculator to do any of this. Base R has everything you need: prop.test for the score interval and test, and binom.test for the exact interval. The script below is complete, runs top to bottom with no packages installed, prints a plain English verdict and saves one 300 dpi figure. Change only the data block at the top.

9.1 The complete script

R, base only, saves proportion_plot.png
# ============================================================
# Proportion calculator in R
# Sample proportion, Wilson / exact confidence intervals,
# one sample and two sample proportion tests, Cohen's h.
# Base R only. Saves proportion_plot.png at 300 dpi.
# ============================================================

set.seed(42)

# ---- 1. YOUR DATA -------------------------------------------------
# Change only this block.
# Option A: raw values plus a cutoff rule (comma separated)
scores <- c(52, 48, 55, 61, 47, 50, 58, 53)
cutoff <- 50
successes_A <- sum(scores >= cutoff)
n_A         <- length(scores)

# Option B: you already have the counts. This is the worked example.
successes_A <- 33 ; n_A <- 60    # Clinic A
successes_B <- 21 ; n_B <- 55    # Clinic B

# From a CSV instead:
# df <- read.csv("clinic.csv")
# df <- df[!is.na(df$improved), ]          # drop missing values
# successes_A <- sum(df$improved == 1) ; n_A <- nrow(df)

conf  <- 0.95
p0    <- 0.50

# ---- 2. POINT ESTIMATE AND STANDARD ERROR -------------------------
p_A <- successes_A / n_A
p_B <- successes_B / n_B
se_A <- sqrt(p_A * (1 - p_A) / n_A)
z    <- qnorm(1 - (1 - conf) / 2)

# ---- 3. CONFIDENCE INTERVALS --------------------------------------
wald <- c(p_A - z * se_A, p_A + z * se_A)

wilson <- local({
  d  <- 1 + z^2 / n_A
  ct <- (p_A + z^2 / (2 * n_A)) / d
  hw <- z * sqrt(p_A * (1 - p_A) / n_A + z^2 / (4 * n_A^2)) / d
  c(ct - hw, ct + hw)
})

agresti <- local({
  nt <- n_A + z^2
  pt <- (successes_A + z^2 / 2) / nt
  pt + c(-1, 1) * z * sqrt(pt * (1 - pt) / nt)
})

exact <- binom.test(successes_A, n_A, conf.level = conf)$conf.int

# ---- 4. ONE SAMPLE TEST -------------------------------------------
se0  <- sqrt(p0 * (1 - p0) / n_A)
z1   <- (p_A - p0) / se0
pv1  <- 2 * (1 - pnorm(abs(z1)))

# ---- 5. TWO SAMPLE TEST -------------------------------------------
p_pool <- (successes_A + successes_B) / (n_A + n_B)
z2     <- (p_A - p_B) / sqrt(p_pool * (1 - p_pool) * (1 / n_A + 1 / n_B))
pv2    <- 2 * (1 - pnorm(abs(z2)))
rd     <- p_A - p_B
se_rd  <- sqrt(p_A * (1 - p_A) / n_A + p_B * (1 - p_B) / n_B)
rd_ci  <- rd + c(-1, 1) * z * se_rd
h      <- abs(2 * asin(sqrt(p_A)) - 2 * asin(sqrt(p_B)))

# ---- 6. PLAIN ENGLISH VERDICT -------------------------------------
cat("PROPORTION RESULTS\n")
cat("------------------\n")
cat(sprintf("Clinic A: %d of %d, p-hat = %.6f (%.1f%%)\n", successes_A, n_A, p_A, 100 * p_A))
cat(sprintf("Standard error       : %.6f\n", se_A))
cat(sprintf("Wald      95%% CI     : %.4f to %.4f\n", wald[1], wald[2]))
cat(sprintf("Wilson    95%% CI     : %.4f to %.4f   <-- report this one\n", wilson[1], wilson[2]))
cat(sprintf("Agresti-Coull 95%% CI : %.4f to %.4f\n", agresti[1], agresti[2]))
cat(sprintf("Exact     95%% CI     : %.4f to %.4f\n", exact[1], exact[2]))
cat(sprintf("One sample z vs %.2f  : z = %.6f, p = %.6f\n", p0, z1, pv1))
cat(sprintf("Clinic B: %d of %d, p-hat = %.6f\n", successes_B, n_B, p_B))
cat(sprintf("Two sample z         : z = %.6f, p = %.6f\n", z2, pv2))
cat(sprintf("Risk difference      : %.6f, 95%% CI %.4f to %.4f\n", rd, rd_ci[1], rd_ci[2]))
cat(sprintf("Cohen's h            : %.6f\n", h))
cat("\nVERDICT: ")
if (pv2 < 0.05) {
  cat(sprintf("the two proportions differ significantly (p = %.4f).\n", pv2))
} else {
  cat(sprintf("no significant difference between the two proportions (p = %.4f).\n", pv2))
}
cat("The assumption check ")
if (min(successes_A, n_A - successes_A, successes_B, n_B - successes_B) >= 10) {
  cat("passed: every count is at least 10.\n")
} else {
  cat("FAILED: use the exact interval and Fisher's exact test.\n")
}

# Built-in check. correct = FALSE is required to match the numbers above.
print(prop.test(c(successes_A, successes_B), c(n_A, n_B), correct = FALSE))

# ---- 7. FIGURE ----------------------------------------------------
png("proportion_plot.png", width = 2000, height = 1400, res = 300)
par(mar = c(4.5, 4.5, 3, 1))
est <- c(p_A, p_B)
lo  <- c(wilson[1], NA)
hi  <- c(wilson[2], NA)
wB  <- local({
  d  <- 1 + z^2 / n_B
  ct <- (p_B + z^2 / (2 * n_B)) / d
  hw <- z * sqrt(p_B * (1 - p_B) / n_B + z^2 / (4 * n_B^2)) / d
  c(ct - hw, ct + hw)
})
lo[2] <- wB[1] ; hi[2] <- wB[2]
bp <- barplot(est, names.arg = c("Clinic A", "Clinic B"), ylim = c(0, 1),
              col = c("#2563eb", "#f59e0b"), border = NA,
              ylab = "Proportion improved",
              main = "Proportion with 95% Wilson score interval")
arrows(bp, lo, bp, hi, angle = 90, code = 3, length = 0.08, lwd = 2, col = "#1f2937")
abline(h = p0, lty = 2, col = "#b91c1c")
text(bp, est + 0.05, sprintf("%.3f", est), font = 2)
dev.off()
cat("\nFigure saved as proportion_plot.png (300 dpi).\n")

9.2 What each part does

Line or blockWhat it does
set.seed(42)Fixes any randomness so your figure is identical to the one described here
sum(scores >= cutoff)Turns raw comma separated values into a count of successes
qnorm(1 - (1 - conf) / 2)The critical z value, 1.959964 at 95%
wilson <- local({...})Builds the Wilson score interval by hand so you can see every term
binom.test(...)$conf.intThe exact Clopper-Pearson interval, correct at any sample size
se0 <- sqrt(p0 * (1 - p0) / n_A)The null standard error, which uses p₀ and not p̂
p_poolPools both groups, because the null says they share one proportion
2 * asin(sqrt(p))The arcsine transform behind Cohen's h
prop.test(..., correct = FALSE)The built-in check. Without correct = FALSE the answer will not match
arrows(..., angle = 90, code = 3)Draws the confidence interval whiskers on the bar chart

9.3 What the figure shows

Two bars, one per clinic, drawn on a fixed 0 to 1 axis so the eye is not misled by auto-scaling. Each bar carries a whisker running from the lower to the upper Wilson limit, and the printed proportion sits above it. The dashed red line marks the hypothesised value of 0.50. If a whisker crosses that line, the group is not detectably different from 50%.

9.4 Problems and fixes

ProblemFix
p-value is 0.5185 instead of 0.4386Add correct = FALSE to prop.test
Error in barplot: 'height' must be a vectorYou passed a data frame column. Wrap it in as.numeric()
Chi-square approximation warningAn expected count is below 5. Use fisher.test instead
NA in the proportionMissing values in the column. Add na.rm = TRUE to sum
The png file is blankdev.off() was not called, or an error stopped the script before it
The figure looks pixelatedRaise res in the png() call rather than the width

9.5 One-liners worth remembering

TaskCode
Proportion and Wilson intervalprop.test(33, 60, correct = FALSE)
Exact intervalbinom.test(33, 60)
Two sample testprop.test(c(33, 21), c(60, 55), correct = FALSE)
Three or more groupsprop.test(c(33, 21, 40), c(60, 55, 70))
Fisher's exact testfisher.test(matrix(c(33, 27, 21, 34), 2))
Sample size for a margin of errorceiling(1.96^2 * 0.25 / 0.03^2)
R and Python should agree exactly. Both scripts on this page use the same critical z, no continuity correction, the same Wilson formula and the same seed. Run them on 33 of 60 and 21 of 55 and you will get z = 1.805191 and p = 0.071045 from both. If they disagree, the cause is almost always a stray correct = TRUE in R.

🐍 10. How to Calculate a Proportion in Python

SciPy gives you the exact interval and the normal distribution, statsmodels gives you the standard proportion tests, and matplotlib draws the figure. The script below builds the Wilson and Agresti-Coull intervals by hand as well, so you can see exactly what statsmodels is doing when you call it.

numpyscipy.statsstatsmodelsmatplotlib

Install with pip install numpy scipy statsmodels matplotlib. Only numpy, scipy and matplotlib are needed to run the script as written; statsmodels appears in the commented cross-check at the end.

10.1 The complete script

Python 3, saves proportion_plot.png at 300 dpi
# ============================================================
# Proportion calculator in Python
# Sample proportion, Wilson / exact confidence intervals,
# one sample and two sample proportion tests, Cohen's h.
# Saves proportion_plot.png at 300 dpi.
# pip install numpy scipy statsmodels matplotlib
# ============================================================

import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
from scipy import stats

np.random.seed(42)

# ---- 1. YOUR DATA -------------------------------------------------
# Change only this block.
# Option A: raw values plus a cutoff rule (comma separated)
scores = np.array([52, 48, 55, 61, 47, 50, 58, 53])
cutoff = 50
x_A, n_A = int((scores >= cutoff).sum()), scores.size

# Option B: you already have the counts. This is the worked example.
x_A, n_A = 33, 60      # Clinic A
x_B, n_B = 21, 55      # Clinic B

# From a CSV instead:
# import pandas as pd
# df = pd.read_csv("clinic.csv").dropna(subset=["improved"])   # drop missing values
# x_A, n_A = int(df["improved"].sum()), len(df)

conf = 0.95
p0 = 0.50

# ---- 2. POINT ESTIMATE AND STANDARD ERROR -------------------------
p_A, p_B = x_A / n_A, x_B / n_B
se_A = np.sqrt(p_A * (1 - p_A) / n_A)
z = stats.norm.ppf(1 - (1 - conf) / 2)

# ---- 3. CONFIDENCE INTERVALS --------------------------------------
def wilson(x, n, z):
    p = x / n
    d = 1 + z**2 / n
    centre = (p + z**2 / (2 * n)) / d
    half = z * np.sqrt(p * (1 - p) / n + z**2 / (4 * n**2)) / d
    return centre - half, centre + half

def agresti(x, n, z):
    nt = n + z**2
    pt = (x + z**2 / 2) / nt
    se = np.sqrt(pt * (1 - pt) / nt)
    return pt - z * se, pt + z * se

def exact(x, n, conf):
    a = 1 - conf
    lo = 0.0 if x == 0 else stats.beta.ppf(a / 2, x, n - x + 1)
    hi = 1.0 if x == n else stats.beta.ppf(1 - a / 2, x + 1, n - x)
    return lo, hi

wald = (p_A - z * se_A, p_A + z * se_A)
wil_A = wilson(x_A, n_A, z)
wil_B = wilson(x_B, n_B, z)
ac = agresti(x_A, n_A, z)
cp = exact(x_A, n_A, conf)

# ---- 4. ONE SAMPLE TEST -------------------------------------------
se0 = np.sqrt(p0 * (1 - p0) / n_A)
z1 = (p_A - p0) / se0
pv1 = 2 * (1 - stats.norm.cdf(abs(z1)))

# ---- 5. TWO SAMPLE TEST -------------------------------------------
p_pool = (x_A + x_B) / (n_A + n_B)
z2 = (p_A - p_B) / np.sqrt(p_pool * (1 - p_pool) * (1 / n_A + 1 / n_B))
pv2 = 2 * (1 - stats.norm.cdf(abs(z2)))
rd = p_A - p_B
se_rd = np.sqrt(p_A * (1 - p_A) / n_A + p_B * (1 - p_B) / n_B)
rd_ci = (rd - z * se_rd, rd + z * se_rd)
h = abs(2 * np.arcsin(np.sqrt(p_A)) - 2 * np.arcsin(np.sqrt(p_B)))

# ---- 6. PLAIN ENGLISH VERDICT -------------------------------------
print("PROPORTION RESULTS")
print("------------------")
print(f"Clinic A: {x_A} of {n_A}, p-hat = {p_A:.6f} ({100*p_A:.1f}%)")
print(f"Standard error       : {se_A:.6f}")
print(f"Wald      95% CI     : {wald[0]:.4f} to {wald[1]:.4f}")
print(f"Wilson    95% CI     : {wil_A[0]:.4f} to {wil_A[1]:.4f}   <-- report this one")
print(f"Agresti-Coull 95% CI : {ac[0]:.4f} to {ac[1]:.4f}")
print(f"Exact     95% CI     : {cp[0]:.4f} to {cp[1]:.4f}")
print(f"One sample z vs {p0:.2f}  : z = {z1:.6f}, p = {pv1:.6f}")
print(f"Clinic B: {x_B} of {n_B}, p-hat = {p_B:.6f}")
print(f"Two sample z         : z = {z2:.6f}, p = {pv2:.6f}")
print(f"Risk difference      : {rd:.6f}, 95% CI {rd_ci[0]:.4f} to {rd_ci[1]:.4f}")
print(f"Cohen's h            : {h:.6f}")

verdict = "differ significantly" if pv2 < 0.05 else "do not differ significantly"
print(f"\nVERDICT: the two proportions {verdict} (p = {pv2:.4f}).")
ok = min(x_A, n_A - x_A, x_B, n_B - x_B) >= 10
print("Assumption check " + ("passed: every count is at least 10."
      if ok else "FAILED: use the exact interval and Fisher's exact test."))

# Built-in check with statsmodels:
# from statsmodels.stats.proportion import proportions_ztest, proportion_confint
# print(proportions_ztest([x_A, x_B], [n_A, n_B]))
# print(proportion_confint(x_A, n_A, alpha=0.05, method="wilson"))

# ---- 7. FIGURE ----------------------------------------------------
fig, ax = plt.subplots(figsize=(7, 4.6), dpi=300)
labels = ["Clinic A", "Clinic B"]
est = [p_A, p_B]
lows = [est[0] - wil_A[0], est[1] - wil_B[0]]
highs = [wil_A[1] - est[0], wil_B[1] - est[1]]
bars = ax.bar(labels, est, color=["#2563eb", "#f59e0b"], width=0.55, zorder=2)
ax.errorbar(labels, est, yerr=[lows, highs], fmt="none",
            ecolor="#1f2937", elinewidth=2, capsize=7, zorder=3)
ax.axhline(p0, ls="--", color="#b91c1c", lw=1.2, zorder=1)
for b, v in zip(bars, est):
    ax.text(b.get_x() + b.get_width() / 2, v + 0.05, f"{v:.3f}",
            ha="center", fontweight="bold")
ax.set_ylim(0, 1)
ax.set_ylabel("Proportion improved")
ax.set_title("Proportion with 95% Wilson score interval")
ax.grid(axis="y", alpha=0.25, zorder=0)
fig.tight_layout()
fig.savefig("proportion_plot.png", dpi=300)
print("\nFigure saved as proportion_plot.png (300 dpi).")

10.2 What each part does

Line or blockWhat it does
matplotlib.use("Agg")Draws to a file without needing a screen, so the script runs on a server
np.random.seed(42)Makes the run reproducible
(scores >= cutoff).sum()Counts successes from raw comma separated values
stats.norm.ppf(...)The critical z value, the equivalent of Excel's NORM.S.INV
def wilson(...)The score interval, written out so every term is visible
stats.beta.ppf(...)The Clopper-Pearson limits, using the beta and binomial relationship
1 - stats.norm.cdf(abs(z))The upper tail probability, doubled for a two tailed p-value
np.arcsin(np.sqrt(p))The variance stabilising transform behind Cohen's h
ax.errorbar(..., capsize=7)Draws asymmetric Wilson whiskers, which is why yerr takes two lists
fig.savefig(..., dpi=300)Publication resolution, ready for a journal figure

10.3 What the figure shows

The same picture as the R script: two bars on a 0 to 1 axis, asymmetric Wilson whiskers, the value printed above each bar, and a dashed red reference line at the hypothesised proportion. Because the Wilson interval is not symmetric around p̂, the lower and upper whisker lengths differ slightly, which is exactly why yerr is given as two separate lists.

10.4 Problems and fixes

ProblemFix
ModuleNotFoundError: statsmodelsRun pip install statsmodels, or leave that cross-check commented out
Interval is wider than expectedproportion_confint defaults to Wald. Pass method="wilson"
p-value differs from RR applies a continuity correction by default. Set correct = FALSE in R
ZeroDivisionErrorn is 0 because every value was filtered out. Check the cutoff direction
Figure never appearsWith the Agg backend there is no window. Open the saved png file
nan in the risk ratioOne group has zero successes. Add 0.5 to every cell, or report the exact interval only

10.5 One-liners worth remembering

TaskCode
Wilson intervalproportion_confint(33, 60, method="wilson")
Exact intervalstats.binomtest(33, 60).proportion_ci()
One sample testproportions_ztest(33, 60, value=0.5, prop_var=0.5)
Two sample testproportions_ztest([33, 21], [60, 55])
Chi-square across groupsstats.chi2_contingency([[33, 27], [21, 34]])
Sample size for a margin of errormath.ceil(1.96**2 * 0.25 / 0.03**2)

📋 11. Reference Tables

Seven lookup tables you can use without running anything. Every value was computed with the same formulas this proportion calculator uses, so the page and the tables can never disagree.

Table 11.1 Critical z values

Confidence levelAlphaTwo tailed zOne tailed z
80%0.2001.28160.8416
90%0.1001.64491.2816
95%0.0501.96001.6449
98%0.0202.32632.0537
99%0.0102.57582.3263
99.9%0.0013.29053.0902

What to conclude: use the two tailed column unless you decided the direction of the effect before collecting data. At 95% the value is 1.9600, not 2.

Table 11.2 Margin of error at 95% confidence, worst case p = 0.50

nMargin of errorIn percentage pointsWilson width
300.1789±17.90.3369
500.1386±13.90.2671
1000.0980±9.80.1923
2000.0693±6.90.1373
3840.0500±5.00.0995
5000.0438±4.40.0873
10000.0310±3.10.0619
10670.0300±3.00.0599
20000.0219±2.20.0438
50000.0139±1.40.0277

What to conclude: precision improves with the square root of n. Going from 1000 to 2000 respondents only cuts the margin from 3.1 to 2.2 percentage points.

Table 11.3 Sample size needed for a given margin of error at 95% confidence

Margin of errorp = 0.50 (worst case)p = 0.30 or 0.70p = 0.10 or 0.90
±10 points978135
±7 points19616571
±5 points385323139
±4 points601505217
±3 points1068897385
±2 points24012017865
±1 points960480683458

What to conclude: plan with p = 0.50 unless you have solid prior information, because it is the value that needs the largest sample. The familiar figure of about 1067 for a 3 point margin comes from this column.

Table 11.4 How the four intervals differ at small n (95% confidence)

x / nWaldWilsonExactWald valid?
0 / 100.0000.000 to 0.0000.000 to 0.2780.000 to 0.308No
1 / 100.100-0.086 to 0.2860.018 to 0.4040.003 to 0.445No
3 / 50.6000.171 to 1.0290.231 to 0.8820.147 to 0.947No
5 / 100.5000.190 to 0.8100.237 to 0.7630.187 to 0.813No
9 / 100.9000.714 to 1.0860.596 to 0.9820.555 to 0.997No
2 / 300.067-0.023 to 0.1560.018 to 0.2130.008 to 0.221No
15 / 300.5000.321 to 0.6790.332 to 0.6680.313 to 0.687Yes
33 / 600.5500.424 to 0.6760.425 to 0.6690.416 to 0.679Yes
50 / 1000.5000.402 to 0.5980.404 to 0.5960.398 to 0.602Yes
95 / 1000.9500.907 to 0.9930.888 to 0.9780.887 to 0.984No

What to conclude: the red Wald limits are impossible values, below 0 or above 1. At 0 out of 10 the Wald interval has zero width, which claims perfect certainty from ten observations. Wilson and exact never do this.

Table 11.5 Cohen's h and what it means

hLabelExample pair of proportionsn per group for 80% power
0.10Very small0.50 vs 0.551570
0.20Small0.50 vs 0.60393
0.34Small to medium0.382 vs 0.550137
0.50Medium0.50 vs 0.7563
0.80Large0.50 vs 0.8925
1.20Very large0.20 vs 0.7111

What to conclude: the sample size column is per group, two tailed, at alpha = 0.05, and comes from n = (1.96 + 0.84)² ÷ h² rounded up. The 0.34 row is the worked example on this page, which explains why p = 0.071 with only 60 and 55 patients.

Table 11.6 Minimum n for the normal approximation, by expected proportion

Expected pn needed for np ≥ 10n needed for n(1−p) ≥ 10Use at least
0.011000111000
0.0250011500
0.0520011200
0.1010012100
0.20501350
0.30341534
0.50202020
0.70153434
0.9012101101
0.9511200200

What to conclude: rare outcomes need very large samples. A 1% complication rate needs 1000 patients before the normal approximation is safe, which is why exact methods dominate in rare-event research.

Table 11.7 Proportion, percentage, odds and logit

Proportion pPercentageOdds p/(1−p)Log oddsArcsine φ = 2·arcsin√p
0.011%0.0101-4.59510.2003
0.055%0.0526-2.94440.4510
0.1010%0.1111-2.19720.6435
0.2525%0.3333-1.09861.0472
0.3333%0.4925-0.70821.2239
0.5050%1.0000+0.00001.5708
0.6767%2.0303+0.70821.9177
0.7575%3.0000+1.09862.0944
0.9090%9.0000+2.19722.4981
0.9595%19.0000+2.94442.6906
0.9999%99.0000+4.59512.9413

What to conclude: odds and proportions are close for small p and diverge fast above about 0.20. That is why an odds ratio badly overstates a risk ratio when the outcome is common.

📋 12. Example Results

Eight worked examples run through the proportion calculator, each with a figure, the numbers, what they mean and the sentence you would write. They deliberately cover the good cases and the bad ones, because knowing what a broken result looks like is more useful than another clean one.

1

The teaching classic: 33 of 60 patients improved

Textbook

A single-arm clinic study records whether each of 60 patients improved. Thirty-three did. Is the response rate different from a coin flip?

One group against a reference of 0.500.000.250.500.751.000.550Clinic ABars are sample proportions; whiskers are 95% Wilson score intervals, dashed line is the reference value
The bar sits above the dashed reference line, but the whisker crosses it. That crossing is the picture of a non-significant result.
QuantityValue
Successes / n33 / 60
0.550 (55.0%)
Standard error0.0642
95% Wilson CI0.425 to 0.669
z vs p₀ = 0.500.775
p-value0.439

What it means: The interval comfortably contains 0.50, so a 55% response rate is entirely compatible with a true rate of one half. The study is simply too small to tell 0.50 from 0.55 apart.

How to write it: The response rate was 55.0% (33/60, 95% CI [0.425, 0.669]), which did not differ significantly from 50%, z = 0.77, p = .439.

2

A vaccine trial with a large, obvious difference

Clearly significant

Two hundred people receive a new vaccine and two hundred receive placebo. Seroconversion is recorded in 140 and 84 respectively.

Two independent groups0.000.250.500.751.000.700Vaccine0.420PlaceboBars are sample proportions; whiskers are 95% Wilson score intervals
When two whiskers are far apart with clear air between them, the difference is real. The reverse is not true, which is why the formal test still matters.
QuantityValue
Vaccine140 / 200 = 0.700
Placebo84 / 200 = 0.420
Risk difference0.280
Risk ratio1.667
z5.641
p-value< .001
Cohen's h0.572

What it means: The intervals do not come close to overlapping and the risk difference of 28 percentage points has a narrow interval. This is a real and large effect, and the number needed to vaccinate for one extra seroconversion is about 4 (1 ÷ 0.280 = 3.6).

How to write it: Seroconversion occurred in 70.0% of the vaccine group (140/200) and 42.0% of the placebo group (84/200), a risk difference of 28.0 percentage points, z = 5.64, p < .001, h = 0.57.

3

Two clinics that almost differ

Borderline

Clinic A improves 33 of 60 patients and Clinic B improves 21 of 55. The difference looks large but the samples are small.

The worked example used throughout this page0.000.250.500.751.000.550Clinic A0.382Clinic BBars are sample proportions; whiskers are 95% Wilson score intervals
The whiskers overlap slightly and the result falls just outside 0.05. Report the interval, not the word borderline, and never call this a trend towards significance.
QuantityValue
Clinic A33 / 60 = 0.550
Clinic B21 / 55 = 0.382
Risk difference0.168, 95% CI −0.012 to 0.348
Pooled p̂0.4696
z1.805
p-value0.071
Cohen's h0.339

What it means: A 17 percentage point gap that is not statistically significant. The confidence interval runs from a small harm to a large benefit, so the honest conclusion is that the study cannot resolve the question. It needs roughly 137 patients per clinic for 80% power at this effect size.

How to write it: Improvement was 55.0% at Clinic A (33/60) and 38.2% at Clinic B (21/55), a difference of 16.8 percentage points (95% CI [−0.012, 0.348]), z = 1.81, p = .071, h = 0.34.

4

Two packaging designs that perform identically

Null result

An A/B test shows two package designs to 100 shoppers each and records purchases: 51 and 49.

A genuine null result0.000.250.500.751.000.510Design A0.490Design BBars are sample proportions; whiskers are 95% Wilson score intervals
Nearly identical bars with heavily overlapping whiskers. Absence of evidence, not evidence of absence.
QuantityValue
Design A51 / 100 = 0.510
Design B49 / 100 = 0.490
Risk difference0.020, 95% CI −0.119 to 0.159
z0.283
p-value0.777
Cohen's h0.040

What it means: Two percentage points of difference with an interval spanning roughly plus or minus 14 points. This is not evidence that the designs are the same, only that this test could not detect a difference smaller than about 14 points. To rule out a 5 point difference you would need about 1500 shoppers per arm.

How to write it: Purchase rates were 51.0% (51/100) and 49.0% (49/100), a difference of 2.0 percentage points (95% CI [−0.119, 0.159]), z = 0.28, p = .777.

5

Five test scores and a pass mark

Small sample

The five scores in the default placeholder, 52, 48, 55, 61, 47, with a pass mark of 50. Three of the five pass.

n = 5, and the interval says so0.000.250.500.751.000.600Class 9ABars are sample proportions; whiskers are 95% Wilson score intervals, dashed line is the reference value
One bar with an enormous whisker. This is what an honest small sample looks like, and it is why the exact interval is reported here instead of the normal approximation.
QuantityValue
Successes / n3 / 5
0.600 (60.0%)
95% Wald CI0.171 to 1.029 (impossible)
95% Wilson CI0.231 to 0.882
95% exact CI0.147 to 0.947
Normal approximationFails, x and n − x are below 10

What it means: The Wald upper limit exceeds 1, which is impossible, and the Wilson interval spans 65 percentage points. With five observations the only defensible statement is that the pass rate is somewhere between about a quarter and about nine tenths.

How to write it: Three of five students reached the pass mark (60.0%, 95% Clopper-Pearson CI [0.147, 0.947]). No inferential test was run because the sample was too small.

6

A huge sample makes a two point gap significant

Significant but trivial

The same 51% against 49% as example 4, but with 10,000 users in each arm instead of 100.

Large n turns a tiny gap into a small p-value0.000.250.500.751.000.510Arm A0.490Arm BBars are sample proportions; whiskers are 95% Wilson score intervals
Identical bars to example 4, but the whiskers have shrunk until they no longer overlap. Nothing about the effect changed, only the precision.
QuantityValue
Arm A5100 / 10000 = 0.510
Arm B4900 / 10000 = 0.490
Risk difference0.020, 95% CI 0.006 to 0.034
z2.828
p-value0.005
Cohen's h0.040 (negligible)

What it means: The p-value is now 0.005 but the effect is unchanged at two percentage points, and Cohen's h of 0.04 is below even the small band. Statistical significance is a statement about sample size as much as about effect. Always read the effect size beside the p-value.

How to write it: Purchase rates differed by 2.0 percentage points (51.0% vs 49.0%, 95% CI [0.006, 0.034]), z = 2.83, p = .005, h = 0.04, a negligible effect.

7

A rare adverse event with only two cases

Assumption failure

Forty patients are monitored and two experience an adverse event. The normal approximation is not usable here.

A rare event: x = 2, so the normal approximation fails0.000.250.500.751.000.050CohortBars are sample proportions; whiskers are 95% Wilson score intervals
A short bar with a long whisker relative to its height. Rare events are always imprecise, no matter how tidy the percentage looks.
QuantityValue
Successes / n2 / 40
0.050 (5.0%)
95% Wald CI−0.018 to 0.118 (impossible)
95% Wilson CI0.014 to 0.165
95% exact CI0.006 to 0.169
Check np ≥ 10FAILS: x = 2

What it means: The Wald lower limit is negative, which cannot be a proportion. With only two events the plausible rate runs from well under 1% to nearly 17%, a more than tenfold range. Report the exact interval and do not run a z test.

How to write it: Adverse events occurred in 5.0% of patients (2/40, 95% Clopper-Pearson CI [0.006, 0.169]). Exact methods were used because the expected event count was below 10.

8

Comparing three teaching methods with a chi-square test

Applied, three groups

Eighty students are taught by each of three methods and the proportion reaching the benchmark score is recorded.

Three or more groups: chi-square test of homogeneity0.000.250.500.751.000.600Method A0.750Method B0.388Method CBars are sample proportions; whiskers are 95% Wilson score intervals
Three bars with clearly separated whiskers at the extremes and an overlap in the middle. That pattern is exactly what an omnibus significant result with one clear laggard looks like.
QuantityValue
Method A48 / 80 = 0.600
Method B60 / 80 = 0.750
Method C31 / 80 = 0.388
Chi-square21.779
df2
p-value< .001
Largest gapMethod B − Method C = 0.363

What it means: The three proportions are not all equal. The chi-square test is an omnibus test, so it tells you that a difference exists somewhere but not where. Follow it with pairwise two sample tests using a Holm or Bonferroni adjustment, which here would confirm B against C and A against C.

How to write it: Benchmark attainment differed across the three methods, χ²(2) = 21.78, p < .001. Pairwise comparisons with Holm correction showed Method B (75.0%) and Method A (60.0%) both exceeded Method C (38.8%).

📋 13. Data Collection Protocol

Design statement. Before you open a proportion calculator you need data worth putting in it. A proportion study measures one binary outcome on a defined set of units drawn from a defined population, and reports the share of units with the outcome together with an interval that reflects the sampling uncertainty. Everything below exists to make sure the denominator is honest, because a wrong denominator is the only error a proportion cannot recover from.

  1. Define the population. Write down exactly who or what could have been sampled. "Adults in the district aged 18 to 65 registered with a clinic in 2025" is a definition; "patients" is not.
  2. Define the sampling frame. Name the list you actually drew from and note, in writing, who is on the list but not in the population, and who is in the population but missing from the list.
  3. Choose the sample size before collecting. Use Table 11.3. If you expect p near 0.5 and want a 5 point margin, plan for 385.
  4. Define the outcome as a rule, not a judgement. "Score of 50 or more on the standard test" is a rule. "Doing well" is a judgement, and two raters will disagree on it.
  5. Decide the cutoff and p₀ in advance. Record both in a pre-registration or a dated protocol file before you look at any data.
  6. Record one row per unit. Never record a group summary if you can record individuals, because you cannot go back the other way.
  7. Record missing values explicitly. Use a blank cell or NA, never a zero, since a zero silently becomes a failure.
  8. Check independence. If two rows can come from the same person, the same household, the same school or the same litter, the observations are clustered and a plain proportion interval will be too narrow.
  9. Log every exclusion with a reason. Your reported n must equal the number recruited minus the number excluded, and both figures belong in the paper.
  10. Freeze the dataset before analysis. Save a read-only copy, then analyse a working copy.
  11. Run the analysis once. Changing the cutoff after seeing the result invalidates the p-value.
  12. Report the counts, not only the percentage. x and n go in the text or the table, always.

How to lay the data out

idgroupscoresuccessnotes
1Clinic A521score at or above 50
2Clinic A480below the pass mark
3Clinic Bwithdrew, excluded from n

One row per unit, one column for the group, one for the raw measurement and one for the derived binary outcome. Keep the raw column even when you already have the binary one, so a reviewer can check your cutoff.

Minimum sample. Do not run an inferential test on fewer than 10 successes and 10 failures per group. Below that, report the exact interval only and say plainly that the study was descriptive.
Pre-registration line to copy: "The primary outcome is the proportion of participants with a score of 50 or above. The hypothesised proportion is 0.50. Confidence intervals will be Wilson score intervals at 95%, and no continuity correction will be applied."

Common mistakes at the collection stage

  • Counting the same person twice because they appear in two clinics.
  • Using the number of responses as n when the denominator should be the number invited.
  • Dropping non-responders silently, which turns a response rate question into a different study.
  • Letting the cutoff drift between data collectors.
  • Recording percentages instead of counts, which makes the interval impossible to compute later.

14. When to Use This Calculator

This free proportion calculator is designed for anyone who has a count out of a total and needs to say how confident they are in the share it represents.

The short version: use a proportion calculator when your outcome has exactly two states and every observation is independent of every other.

Use it when

  • Your outcome has exactly two categories, such as pass or fail, improved or not, defective or good.
  • Every observation is independent of every other.
  • You want a confidence interval around a percentage, not just the percentage.
  • You want to compare an observed rate with a benchmark, a target or a published figure.
  • You are comparing two or more independent groups on a yes or no outcome.
  • You are checking whether a survey result of, say, 55% is really different from half.

Do not use it when

  • The same people are measured twice, before and after. Use McNemar's test.
  • Your data are clustered inside schools, clinics, households or litters. Use a mixed effects logistic model.
  • Your outcome has three or more unordered categories. Use a chi-square test of independence on the full table.
  • You want to adjust for other variables such as age or sex. Use logistic regression.
  • Your denominator is time or exposure rather than a fixed count. That is a rate, so use Poisson methods.
  • The sample was not drawn from the population you want to describe. No calculator repairs a biased frame.

Four worked situations

Four everyday jobs and the proportion calculator setting each one needs.

  1. Clinical. 33 of 60 patients improve. You want the response rate with an interval and a test against a published 50% benchmark. This tool, one sample mode.
  2. Education. Two classes sit the same test and you want the proportion at or above the pass mark in each. This tool, cutoff mode with two groups.
  3. Manufacturing. 2 of 40 units are defective and you must state the plausible defect rate. This tool, exact interval, no z test.
  4. Marketing. An A/B test with 10,000 users per arm. This tool, two sample mode, and read Cohen's h before celebrating the p-value.

Decision tree

QuestionIf yesIf no
Is the outcome binary?ContinueChi-square on the full table, or logistic regression
Are the observations independent?ContinueMcNemar for pairs, mixed model for clusters
How many groups?1 or 2, continue here3 or more, chi-square of homogeneity, also here
Are x and n − x both at least 10?Normal approximation is fineUse the exact interval and Fisher's exact test
Do you need to adjust for covariates?Logistic regressionStay here

🔧 15. Troubleshooting and Common Errors

Twelve things that go wrong with a proportion calculator, and the fix for each.

The calculator says "no valid numbers found"
Your paste contained no parseable numbers. Check for a stray currency symbol, a thousands separator such as 1,250 which the parser reads as two values, or a column of text labels. Strip formatting and paste plain numbers separated by commas.
My proportion came out as 0 or 1 exactly
Either every observation met the rule or none did. Check the cutoff direction first, because choosing "at or above" when you meant "below" flips the answer. If the result is genuine, report the exact interval, which the tool switches to automatically.
The Wald interval goes below 0 or above 1
That is the known failure of the Wald formula at small n or extreme proportions. The tool flags it in red and shows the Wilson and exact intervals, which cannot do this. Report one of those.
R gives a different p-value from this page
R's prop.test applies a continuity correction by default. Add correct = FALSE, or switch the continuity correction on in the calculator's options, and the two will match to six decimals.
Python gives a different confidence interval
proportion_confint defaults to the Wald method. Pass method="wilson" to match this page.
The chi-square test warns about small expected counts
One or more cells has an expected count below 5. Collapse categories if that is scientifically sensible, or use Fisher's exact test instead. The tool flags this automatically.
The two intervals overlap but the test says significant
This is normal and not a bug. Comparing two individual intervals is a much more conservative procedure than the proper two sample test. Trust the test and the interval for the difference, not the overlap of the two separate intervals.
The uploaded file loads the wrong columns
Only numeric columns are offered as cluster buttons. If your column holds "Yes" and "No", recode it to 1 and 0 in the spreadsheet first, or use the cutoff mode on a numeric column instead.
My group names disappeared after upload
Group names come from the column headers. If the first row of your file is data rather than headers, insert a header row and upload again. You can also edit any group name in place afterwards.
The p-value is exactly 0
It is not zero, it is smaller than the display precision. Report it as p < .001, which is the APA convention.
The risk ratio is infinite or undefined
The second group has zero successes, so you are dividing by zero. Report the risk difference instead, and give both exact intervals.
The charts did not draw
The Chart.js library is loaded from a CDN. If your network blocks it, the numbers and tables still work but the four canvases stay empty. Reload on an unrestricted connection.

16. Assumptions and Limitations

A proportion calculator will return a number for almost any input. These are the conditions under which that number means what you think it means.

Assumptions

  1. Binary outcome. Every unit is exactly one of success or failure, with no third state and no partial credit. Check: read the coding rule. If it fails: the denominator is ambiguous and the proportion is meaningless; use a categorical method instead.
  2. Independence. Knowing one outcome tells you nothing about another. Check: ask whether any two rows share a person, household, clinic or classroom. If it fails: the standard error is too small, so intervals are too narrow and p-values too small. You will find effects that are not there.
  3. Constant probability. Every unit has the same underlying chance of success. Check: look for obvious subgroups with different rates. If it fails: the single proportion hides real heterogeneity; report by subgroup or fit a model.
  4. Random sample from the target population. Check: compare the sampling frame with the population definition. If it fails: p̂ itself is biased and no interval width fixes it. This is the only failure that gets worse with more data.
  5. Large enough counts for the normal approximation. x ≥ 10 and n − x ≥ 10. Check: the tool does this automatically. If it fails: the z test and the Wald interval are unreliable in both directions; use the exact interval and an exact test.
  6. Fixed n. The sample size was decided before the data were seen. Check: your protocol. If it fails: stopping when the result looks good inflates the false positive rate badly.

Limitations

  • No covariate adjustment. This tool compares raw proportions only. If groups differ in age, severity or exposure, use logistic regression.
  • No paired analysis. Before and after data on the same people need McNemar's test or a paired interval, neither of which this tool provides.
  • No clustering correction. For data nested in schools or clinics, use a generalised linear mixed model, or at minimum inflate the variance by the design effect.
  • No survey weights. Complex survey designs need a design based variance estimator, available in R's survey package.
  • Omnibus chi-square only. With three or more groups the tool tells you a difference exists but not where; run pairwise tests with a Holm adjustment.
  • Finite population correction is optional and simple. It assumes simple random sampling without replacement, which is not the same as a stratified or cluster design.
  • Frequentist only. If you need a probability that the proportion lies in a range, that is a Bayesian credible interval, not a confidence interval.

🏁 17. Conclusion

Run the analysis above and a conclusion written around your own numbers will appear here.

A proportion calculator answers a question that looks trivial and is not. Dividing x by n takes a second. Deciding what belongs in x, what belongs in n, and how much a single sample can tell you about the population behind it is the part that takes judgement, and it is the part that decides whether your conclusion survives review.

Three habits carry most of the value. Always publish the counts beside the percentage, so a reader can rebuild your interval. Always report the Wilson score interval rather than the textbook Wald interval, because the Wald interval quietly overstates precision exactly where you are least able to afford it. And always read the effect size beside the p-value, because with a large enough sample a difference of two percentage points becomes statistically significant without becoming important.

Where the counts are small, or the outcome is rare, switch to the exact Clopper-Pearson interval and stop running z tests. It is wider, and that width is the honest answer rather than a defect. Where the design is paired, clustered or in need of adjustment, this page will point you at the right method rather than give you a comfortable wrong one.

Used carefully, the humble proportion calculator is one of the most reliable tools in applied statistics: transparent arithmetic, a well understood interval, and a test whose assumptions you can check on the same screen.

18. Frequently Asked Questions

Twenty questions people actually search before and after using a proportion calculator, answered in one or two sentences each.

What is a proportion calculator?
A proportion calculator divides the number of successes by the number of observations to give the sample proportion, then adds a confidence interval and a significance test so you can generalise from the sample to the population. This one also gives the standard error, four different intervals, an effect size and four charts.
How do you calculate a proportion?
Divide the count of cases with the feature by the total number of cases. If 33 of 60 patients improved, the proportion is 33 ÷ 60 = 0.550, or 55.0%. Always report the two counts as well as the result.
What is the formula for a confidence interval for a proportion?
The Wald interval is p̂ ± z√(p̂(1−p̂)/n). The Wilson score interval is (p̂ + z²/2n ± z√(p̂(1−p̂)/n + z²/4n²)) ÷ (1 + z²/n) and is more accurate, which is why this confidence interval for proportion calculator reports it first.
Why is the Wilson interval better than the Wald interval?
The Wald interval has real coverage well below its stated level for small samples and for proportions near 0 or 1, and it can produce limits outside 0 to 1. The Wilson score interval stays close to nominal coverage and always stays inside the valid range.
What is the difference between a one sample and a two sample proportion test?
A one sample proportion test compares one observed proportion with a fixed hypothesised value such as 0.5. A two sample proportion test compares two independent observed proportions with each other, using a pooled standard error because the null hypothesis says they share one true value.
How large does the sample need to be?
The normal approximation is safe when the number of successes and the number of failures are both at least 10. Below that, use the exact Clopper-Pearson interval and Fisher's exact test. Table 11.6 gives the minimum n for any expected proportion.
What is Cohen's h?
Cohen's h is the effect size for the difference between two proportions. It is the difference of the arcsine square root transforms, h = |2·arcsin√p₁ − 2·arcsin√p₂|. About 0.2 is small, 0.5 is medium and 0.8 is large.
Can a proportion be greater than 1?
No. A proportion is bounded by 0 and 1. A value above 1 means you divided by the wrong denominator or counted a success twice. A percentage above 100 has the same cause.
How do I calculate a proportion in Excel?
Use =COUNTIF(range,">=50")/COUNT(range) for the proportion, NORM.S.INV for the critical z, and ordinary arithmetic for the Wilson limits. Section 8 has every formula with screenshots.
How do I run a proportion test in R?
Use prop.test(33, 60, correct = FALSE) for the score interval and test, and binom.test(33, 60) for the exact interval. Section 9 has a complete runnable script.
How do I calculate a proportion in Python?
Use proportion_confint(33, 60, method="wilson") and proportions_ztest from statsmodels, or stats.binomtest from SciPy for the exact interval. Section 10 has a complete runnable script.
What is the continuity correction?
It widens the interval and shrinks the test statistic slightly to allow for using a continuous normal curve to approximate counted data. R applies it by default in prop.test, so R and this page differ unless you set correct = FALSE or switch the correction on here.
What does the p-value actually mean?
It is the probability of seeing a difference at least this large if the null hypothesis were true. It is not the probability that the null hypothesis is true, and it is not the probability that your result is a fluke.
Should I report the percentage or the proportion?
Report both. Give the proportion to three decimals for the statistics and the percentage for the reader, and always show the counts behind them so anyone can rebuild the interval.
What if my proportion is 0 or 1?
The Wald interval collapses to zero width, which claims perfect certainty and is obviously wrong. The Wilson and exact intervals still give a sensible one sided bound. For 0 out of 10 the exact 95% interval runs from 0 to 0.308.
How many people do I need for a survey proportion?
For a margin of error of 3 percentage points at 95% confidence and the worst case proportion of 0.5, you need 1068 respondents. Table 11.3 gives the full grid for other margins and expected proportions.
What is the difference between a proportion, a ratio and a rate?
A proportion is a part divided by the whole and lies between 0 and 1. A ratio compares two parts and has no upper limit. A rate is a count per unit of time or exposure, so its denominator is not a count of people.
Can I use this as a proportionality calculator or a solve proportion calculator?
This page handles statistical proportions. For the algebraic kind, a/b = c/d, cross multiply so that a·d = b·c and solve for the unknown. Section 4.8 works through a direct proportion and an inverse proportion example.
What test compares three or more proportions?
The chi-square test of homogeneity. This calculator runs it automatically when you enter three or more groups. Follow a significant result with pairwise two sample tests and a Holm adjustment.
Do I need a finite population correction?
Only when your sample is more than about 5% of the population. Multiply the standard error by √((N − n) / (N − 1)). Enter your population size in the options box and the tool applies it for you.

🔖 19. Cite This Tool

APA 7th edition

APA 7TH EDITION
Stats Unlock. (2026). Proportion calculator [Online statistical tool]. https://statsunlock.com/proportion-calculator

BibTeX

BIBTEX
@misc{statsunlock_proportion_2026, title = {Proportion Calculator}, author = {{Stats Unlock}}, year = {2026}, note = {Online statistical tool}, url = {https://statsunlock.com/proportion-calculator} }

Methods paragraph

METHODS PARAGRAPH
Run the analysis above and a Methods paragraph containing your own numbers will appear here.

🔗 20. Related Tools

📖 21. Glossary of Terms

Every term this proportion calculator puts on screen, in plain English, alphabetically. No definition here uses a word that is not itself defined.

TermPlain meaning
Agresti-Coull intervalAn interval built by adding two successes and two failures to your counts, then using the simple formula. A hand-computable stand-in for the Wilson interval.
AlphaThe error rate you are willing to accept when deciding a result is real. Usually 0.05.
Binary outcomeAn outcome with exactly two possible values, such as yes and no.
Binomial distributionThe distribution of the number of successes in a fixed number of independent trials with the same chance of success.
Clopper-Pearson intervalAn interval built directly from the binomial distribution. Guaranteed to cover at least the stated level, at the cost of being wider than necessary.
Cohen's hAn effect size for the gap between two proportions, calculated on an arcsine transformed scale so it behaves the same at any base rate.
Confidence intervalA range built by a procedure that captures the true value a stated percentage of the time across repeated studies.
Continuity correctionA small adjustment made when a smooth curve is used to approximate counted data. It widens intervals slightly.
DenominatorThe total you divide by, written n. The single most common source of error in a proportion.
Effect sizeA number that says how big a difference is, separately from how certain you are that it exists.
Finite population correctionA shrinkage of the standard error used when the sample is a large share of the whole population.
HomogeneityThe idea that several groups share the same underlying proportion. The chi-square test of homogeneity checks it.
Margin of errorHalf the width of a symmetric confidence interval. The plus or minus figure quoted with poll results.
Null hypothesisThe starting assumption that there is no effect, or that the proportion equals a stated value.
OddsThe chance of the outcome divided by the chance of no outcome. Unlike a proportion, it has no upper limit.
Odds ratioOne group's odds divided by another's. The quantity logistic regression estimates.
p-valueThe probability of a result at least this extreme if the null hypothesis were true.
Pooled proportionBoth groups' successes divided by both groups' totals, used in the two sample test because the null says they share one value.
ProportionA part divided by the whole, always between 0 and 1.
Risk differenceOne proportion minus another, on the natural scale of the outcome.
Risk ratioOne proportion divided by another. Also called relative risk.
Standard errorThe typical distance between a sample estimate and the true population value.
Wald intervalThe textbook interval, p̂ plus or minus z times the standard error. Simple and the least accurate of the four.
Wilson score intervalThe recommended interval, built by inverting the score test. Always inside 0 to 1 and accurate at small n.
z statisticHow many standard errors your estimate sits away from the hypothesised value.

📚 22. References

Twenty peer-reviewed journal articles behind the methods in this proportion calculator, in APA 7th edition, each with a resolvable DOI link. Every interval and test on the page traces back to one of them.

  1. Agresti, A., & Coull, B. A. (1998). Approximate is better than "exact" for interval estimation of binomial proportions. The American Statistician, 52(2), 119–126. https://doi.org/10.1080/00031305.1998.10480550
  2. Wilson, E. B. (1927). Probable inference, the law of succession, and statistical inference. Journal of the American Statistical Association, 22(158), 209–212. https://doi.org/10.1080/01621459.1927.10502953
  3. Clopper, C. J., & Pearson, E. S. (1934). The use of confidence or fiducial limits illustrated in the case of the binomial. Biometrika, 26(4), 404–413. https://doi.org/10.1093/biomet/26.4.404
  4. Brown, L. D., Cai, T. T., & DasGupta, A. (2001). Interval estimation for a binomial proportion. Statistical Science, 16(2), 101–133. https://doi.org/10.1214/ss/1009213286
  5. Newcombe, R. G. (1998). Two-sided confidence intervals for the single proportion: Comparison of seven methods. Statistics in Medicine, 17(8), 857–872. https://doi.org/10.1002/(SICI)1097-0258(19980430)17:8<857::AID-SIM777>3.0.CO;2-E
  6. Newcombe, R. G. (1998). Interval estimation for the difference between independent proportions: Comparison of eleven methods. Statistics in Medicine, 17(8), 873–890. https://doi.org/10.1002/(SICI)1097-0258(19980430)17:8<873::AID-SIM779>3.0.CO;2-I
  7. Agresti, A., & Caffo, B. (2000). Simple and effective confidence intervals for proportions and differences of proportions result from adding two successes and two failures. The American Statistician, 54(4), 280–288. https://doi.org/10.1080/00031305.2000.10474560
  8. Vollset, S. E. (1993). Confidence intervals for a binomial proportion. Statistics in Medicine, 12(9), 809–824. https://doi.org/10.1002/sim.4780120902
  9. Fleiss, J. L. (1971). Measuring nominal scale agreement among many raters. Psychological Bulletin, 76(5), 378–382. https://doi.org/10.1037/h0031619
  10. Yates, F. (1934). Contingency tables involving small numbers and the χ² test. Supplement to the Journal of the Royal Statistical Society, 1(2), 217–235. https://doi.org/10.2307/2983604
  11. Cochran, W. G. (1954). Some methods for strengthening the common χ² tests. Biometrics, 10(4), 417–451. https://doi.org/10.2307/3001616
  12. Armitage, P. (1955). Tests for linear trends in proportions and frequencies. Biometrics, 11(3), 375–386. https://doi.org/10.2307/3001775
  13. McNemar, Q. (1947). Note on the sampling error of the difference between correlated proportions or percentages. Psychometrika, 12(2), 153–157. https://doi.org/10.1007/BF02295996
  14. Cohen, J. (1992). A power primer. Psychological Bulletin, 112(1), 155–159. https://doi.org/10.1037/0033-2909.112.1.155
  15. Sterne, T. E. (1954). Some remarks on confidence or fiducial limits. Biometrika, 41(1–2), 275–278. https://doi.org/10.1093/biomet/41.1-2.275
  16. Blyth, C. R., & Still, H. A. (1983). Binomial confidence intervals. Journal of the American Statistical Association, 78(381), 108–116. https://doi.org/10.1080/01621459.1983.10477938
  17. Wallis, S. (2013). Binomial confidence intervals and contingency tests: Mathematical fundamentals and the evaluation of alternative methods. Journal of Quantitative Linguistics, 20(3), 178–208. https://doi.org/10.1080/09296174.2013.799918
  18. Fagerland, M. W., Lydersen, S., & Laake, P. (2015). Recommended confidence intervals for two independent binomial proportions. Statistical Methods in Medical Research, 24(2), 224–254. https://doi.org/10.1177/0962280211415469
  19. Greenland, S., Senn, S. J., Rothman, K. J., Carlin, J. B., Poole, C., Goodman, S. N., & Altman, D. G. (2016). Statistical tests, P values, confidence intervals, and power: A guide to misinterpretations. European Journal of Epidemiology, 31(4), 337–350. https://doi.org/10.1007/s10654-016-0149-3
  20. Altman, D. G., & Bland, J. M. (2011). How to obtain the confidence interval from a P value. BMJ, 343, d2090. https://doi.org/10.1136/bmj.d2090
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Important Plots & Charts

Most Popular