A one-tailed t-test checks whether a mean is significantly greater than or less than a specific value, but not both. Unlike a two-tailed test that looks for any difference in either direction, you’re committing in advance to testing only one direction. This makes the test more powerful for detecting an effect in that direction, but completely blind to an effect in the opposite one. Here’s how to do it from start to finish.
When to Use a One-Tailed Test
Choose a one-tailed t-test only when you have a strong reason, before collecting data, to expect a difference in one specific direction. For example, you might predict that a new tutoring method increases test scores (not just changes them), or that a drug lowers blood pressure (not just affects it). If there’s any chance a result in the opposite direction would be meaningful to you, use a two-tailed test instead.
The tradeoff is straightforward. A one-tailed test puts all of your significance threshold on one side of the distribution, which makes it easier to reach statistical significance in that direction. With 10 degrees of freedom and an alpha of 0.05, the critical value for a one-tailed test is 1.812, compared to 2.228 for a two-tailed test. That lower bar means more statistical power. But if the true effect runs opposite to your prediction, you will never detect it, no matter how large it is.
Step 1: State Your Hypotheses
Every t-test starts with two hypotheses. The null hypothesis states there is no effect: the population mean equals some reference value (or two group means are equal). The alternative hypothesis is where the one-tailed test differs from a two-tailed one.
For a one-sample test comparing a sample mean to a known value:
- Null hypothesis: The population mean equals the reference value.
- Alternative hypothesis (upper-tailed): The population mean is greater than the reference value.
- Alternative hypothesis (lower-tailed): The population mean is less than the reference value.
You pick one direction, not both. For a two-sample test, the logic is the same: the null says the two group means are equal, and the alternative says one group’s mean is specifically greater than or less than the other’s.
Step 2: Check Your Assumptions
The t-test requires a few conditions to produce valid results. Your data should be measured on a continuous scale (things like scores, weights, or times, not categories). The observations need to be independent, meaning one measurement doesn’t influence another. The data should be roughly normally distributed, which matters more with small samples. For two-sample tests, the spread of data in each group should be similar, a property called homogeneity of variance. Pay special attention to this when your group sizes are unequal.
Step 3: Calculate the t-Statistic
For a one-sample t-test, the formula is:
t = (sample mean − hypothesized mean) / (sample standard deviation / √n)
This follows a simple logic: take the difference between what you observed and what you expected, then divide by how much variability you’d expect from random sampling alone. A larger t value means your observed difference is harder to explain by chance.
For a two-sample t-test, the structure is the same: the difference between the two group means divided by a pooled measure of variability. The formula is more involved because it accounts for both groups’ standard deviations and sample sizes, but the interpretation is identical.
Degrees of freedom for a one-sample test equal n − 1, where n is your sample size. For a two-sample test with equal variances, degrees of freedom equal the total number of observations minus 2.
Step 4: Find Your p-Value
Here’s where the “one-tailed” part actually matters. Once you have your t-statistic, you need to find the probability of getting that value (or something more extreme) in the direction you predicted, assuming the null hypothesis is true. That probability is your p-value.
If your software gives you a two-tailed p-value by default, you can convert it. Divide the two-tailed p-value by 2 to get the one-tailed p-value, but only if the t-statistic points in the direction you predicted. If the t-statistic goes in the opposite direction, the one-tailed p-value is actually 1 minus half the two-tailed value, which will never be significant.
Consider a real example: a two-sample test comparing male and female scores produced a t-statistic of −3.7341 with 198 degrees of freedom. The two-tailed p-value was 0.0002. The one-tailed p-value testing whether males scored lower than females (the direction matching the negative t) was 0.0001. But the one-tailed p-value testing the opposite direction, whether males scored higher, was 0.9999. Same data, same t-statistic, vastly different conclusions depending on which tail you test.
Step 5: Make Your Decision
Compare your one-tailed p-value to your significance level (typically 0.05). If the p-value is smaller, reject the null hypothesis in favor of your directional alternative. If it’s larger, you fail to reject the null.
Using a critical value approach instead: for an upper-tailed test, reject the null if your t-statistic exceeds the critical value from a t-table at your chosen alpha. For a lower-tailed test, reject if your t-statistic is more negative than the negative of the critical value. At alpha = 0.05 with 10 degrees of freedom, that critical value is 1.812. At alpha = 0.01, it’s 2.764.
Running It in Excel
Excel’s TDIST function calculates one-tailed p-values directly. The syntax is TDIST(t_value, degrees_of_freedom, tails), where you set the tails argument to 1 for a one-tailed result. For example, =TDIST(1.89, 10, 1) returns the one-tailed p-value for a t-statistic of 1.89 with 10 degrees of freedom.
Note that TDIST returns the probability in the upper tail. If you’re running a lower-tailed test (testing whether the mean is less than the reference), use the absolute value of your t-statistic in the function, and interpret accordingly. Newer versions of Excel also offer T.DIST (which returns the left-tail probability) and T.DIST.RT (which returns the right-tail probability), giving you more direct control.
Running It in Python
In Python’s SciPy library, the ttest_ind function for two-sample tests accepts an “alternative” parameter with three options: “two-sided” (the default), “less,” and “greater.” Setting alternative=”greater” tests whether the first sample’s mean is greater than the second’s. Setting alternative=”less” tests the opposite direction.
For a one-sample test, SciPy’s ttest_1samp function works the same way. Pass your data array, the hypothesized mean, and the alternative parameter. The function returns the t-statistic and the correctly calculated one-tailed p-value, so there’s no need to manually halve anything.
In R, the t.test function has a similar “alternative” argument that accepts “greater” or “less.” The syntax is t.test(x, mu = reference_value, alternative = “greater”) for a one-sample upper-tailed test.
Common Mistakes to Avoid
The most frequent error is choosing the tail direction after seeing the data. If you collect your results, notice they lean in one direction, and then decide to run a one-tailed test that way, you’ve inflated your false positive rate. The direction must be set before data collection, based on theory or prior evidence.
Another common mistake is dividing a two-tailed p-value by 2 without checking whether the t-statistic actually points in your predicted direction. If you hypothesized that Group A would score higher, but your t-statistic shows Group A scored lower, simply halving the two-tailed p-value gives you the wrong answer. In that case, your one-tailed p-value is large, and the result is not significant for your hypothesis.
Finally, some journals and reviewers are skeptical of one-tailed tests because they lower the bar for significance. If you use one, be prepared to justify your directional prediction with reasoning that existed before you ran the analysis.

