Triaxial Test Data Analysis — Fit σci and mi from Lab Results, Free
Paste the strength table off your triaxial test report and get the Hoek-Brown intact constants σci and mi by Hoek’s published linear regression — with r², a Mohr-Coulomb c′ and φ′ over the range you actually tested, the tension cutoff, and every specimen’s residual drawn on the figure. Free, in the browser, nothing uploaded.
The regression, in full
For intact rock the Hoek-Brown criterion has s = 1 and a = ½ exactly, so it reads σ1 = σ3 + σci·√(mi·σ3/σci + 1). Square it and something convenient happens: (σ1 − σ3)² = mi·σci·σ3 + σci². That is a straight line. Plot y = (σ1 − σ3)² against x = σ3, fit it by ordinary least squares, and the intercept is σci² while the slope is mi·σci.
Hoek prints the three resulting formulae as spreadsheet cells in the "Rock mass properties" chapter of *Practical Rock Engineering*: σci = √(Σy/n − [(Σxy − ΣxΣy/n)/(Σx² − (Σx)²/n)]·Σx/n), mi = (1/σci)·[(Σxy − ΣxΣy/n)/(Σx² − (Σx)²/n)], and r² = (Σxy − ΣxΣy/n)² / [(Σx² − (Σx)²/n)(Σy² − (Σy)²/n)]. Those are the equations this page runs, unmodified, and the chapter's own worked example — five specimens giving σci = 37.4 MPa, mi = 15.50 and r² = 0.997 — is pinned in the test suite so the arithmetic cannot drift.
One caution comes from the authors themselves. The 2018 edition of the criterion restates this linearisation, credits it to Hoek (1983), and then says plainly that it "was inadequate for the analysis of data other than closely spaced points with very little scatter about a general trend line", pointing instead at nonlinear and Bayesian fits for messier datasets. That sentence is printed on the figure. If your r² comes out at 0.75, the answer is not that this page is broken — it is that a straight line through your squared residuals is the wrong tool for your data.
Data
Paste straight from Excel or Google Sheets — include the header row and the columns are matched by name, in any order.
| # | Specimen(opt) | Test(opt) | σ3MPa(opt) | σ1MPa | σtMPa(opt) | |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 | ||||||
| 4 |
0 rows of data
Loading the plotting engine…
Enter data on the left to plot it
SVG is vector — resize it in Illustrator or Inkscape without losing quality. PNG 4× is roughly 600 dpi at figure width.
Free downloads carry a small “made with strataplot.com” credit along the bottom edge. The plot on screen is never watermarked. Remove it
Options
This plot has no adjustable options yet.
Your data is processed entirely in this browser tab. Nothing is uploaded to a server, so confidential client data stays confidential.
How to determine mi from your triaxial data
mi describes how fast strength rises with confinement — the curvature of the envelope. It is an intact-rock property, it does not change with GSI or with the disturbance factor, and fitting it to your own tests is always better than reading it off a table of typical values by rock type.
Four things decide whether the mi you get is worth having. The number of tests: Hoek asks for at least five well spaced data points, and the page says so when you have fewer. The confining range: the original σci and mi were derived over 0 < σ3 < 0.5σci and it is "essential that the same range be used", so testing a 100 MPa rock only to σ3 = 2 MPa gives you a number that is not comparable with the published tables. The upper limit: past roughly σ1 = 3.4σ3 the rock stops failing in shear and starts deforming ductilely, which Mogi (1966) established across a wide range of rock types; specimens beyond it are flagged. And the spread: if every test sits at the same cell pressure, mi is not constrained by anything and the tool refuses to print one.
A practical note on stage testing, where one specimen is loaded to failure, the cell pressure raised, and the same specimen loaded again. The 2018 edition recommends against using it for σci and mi at all: every stage after the first is testing damaged rock, so the plot is not a peak-strength plot. If your report says "multi-stage", the constants you get from it are not the constants the criterion is calibrated on.
Unconfined tests, and why they get averaged
A ground investigation usually returns several UCS results and a handful of triaxial ones. Dropping all of the UCS values into the regression individually looks like the obvious thing to do, and it quietly weights the fit towards σ3 = 0 in proportion to how many unconfined specimens the laboratory happened to break.
The criterion's authors ran into this in 1980 and dealt with it by rule: including a collection of UCS results in a triaxial series "would result in a significant bias in the curve fitting process", so only their average was used to represent σ1 at zero confining stress. This page does the same by default — several UCS rows become one regression point carrying their mean, and a note on the figure says how many were combined and what the mean was. You can switch it off, and when you do the figure says that too, because the answer moves.
The Brazilian test is not a tensile test
Brazilian (indirect tensile, splitting tensile) results are common, cheap, and routinely handed over as "the tensile strength". They are drawn on this figure as open diamonds at (σ3 = −σt, σ1 = 0), and they are excluded from the fit unless you explicitly ask otherwise.
That is not an opinion. The 2018 edition states that the Brazilian test "is not an acceptable direct tensile test for inclusion in the analysis": the stress distribution in a diametrically loaded disc is complex, the stress concentrations at the loading points matter, and the calculation of the tensile strength "requires significant correction". At best it is an index test that has to be calibrated against direct tensile tests for each rock type.
What the criterion offers instead is a tension cutoff derived from the fitted mi: σci/|σt| = 0.81·mi + 7. The figure draws it as a vertical line — the same construction as Fig. 6 of that paper — so you can see at a glance how far your Brazilian numbers sit from the tensile strength the criterion actually implies. On the shipped granite sample they are about twice it, which is roughly the size of error this distinction is worth.
c′ and φ′, and the range they belong to
The Mohr-Coulomb line here is a straight least-squares fit through the same σ1–σ3 points. Its slope is (1 + sin φ′)/(1 − sin φ′) and its intercept is 2c′cos φ′/(1 − sin φ′), so φ′ and c′ fall straight out, and the fit gets its own r² so you can see how much worse a straight line does than the curve.
The number that is missing from most reported c′ and φ′ pairs is the confining range. A dataset taken to σ3 = 40 MPa and one taken to 5 MPa on the same rock give materially different values — the wide-range fit is flatter and sits higher, the narrow one is steeper with less cohesion — and both are correct descriptions of the range they were fitted over. Neither transfers. This page prints the range under the figure for exactly that reason, and draws the line only across it rather than extending it to the axis.
If what you need is an equivalent c′ and φ′ for a rock MASS rather than for intact specimens, this is not the fit you want: that is a different construction over a different stress range, and it lives on the Hoek-Brown envelope page below.
What to do with σci and mi once you have them
They are inputs to the next step, not an answer on their own. Intact constants describe laboratory specimens; a tunnel or a slope is cut in a jointed rock mass that is weaker by one to two orders of magnitude. Take the σci and mi off this figure to the Hoek-Brown Envelopes page, add a Geological Strength Index and a disturbance factor, and you get mb, s and a, the rock-mass strengths, the rock-mass tensile cutoff, the equivalent Mohr-Coulomb parameters for your application and the deformation modulus. The two pages use the same vocabulary deliberately, so the numbers carry across without retyping anything but two figures — and both are linked from "Rock & Tunnel" in the navigation and from the related plots below.
From there the Ground Reaction Curve takes that rock-mass strength and asks what it costs to hold a tunnel open. Fit, reduce, support: three pages, one chain, and the arithmetic in each one visible and cited.
Who uses this
Geotechnical engineers turning a laboratory schedule into design parameters. Engineering geologists checking the constants somebody else fitted, which is a job the residual column and the r² exist for. Tunnel and mining engineers who have a rock strength testing programme and need to know whether it covered a wide enough confining range to be worth anything. Students and lecturers, who need the regression written out rather than hidden inside a licensed binary. And anybody who has been handed a spreadsheet that produced an mi with no statement of how many specimens went into it.
It is a parameter-fitting tool and nothing more. There is no rock-mass reduction here, no factor of safety, no stability calculation — those are the pages downstream. Everything runs in this browser tab, so a test schedule under a confidentiality agreement does not leave the machine it was opened on.
Common questions
- How do I determine mi from triaxial test data?
- Square the criterion so it becomes linear — (σ1 − σ3)² against σ3 — fit a straight line by least squares, and mi is the slope divided by σci, where σci is the square root of the intercept. That is Hoek's own procedure, printed as three spreadsheet formulae in the "Rock mass properties" chapter of Practical Rock Engineering, and it is what this page runs. Paste your σ3 and σ1 pairs into the grid and the constants, the r² and the fitted envelope come out together.
- How do I know the arithmetic is right?
- The chapter prints a complete worked spreadsheet: five triaxial results at σ3 = 0, 5, 7.5, 15 and 20 MPa, giving σci = 37.4 MPa, mi = 15.50 and r² = 0.997. That exact dataset and those exact answers are pinned in the test suite, along with the five column sums the table lists. The suite also checks the inverse — synthetic data generated from a known σci and mi is recovered exactly with no scatter, and to within a few per cent with ±3 % scatter.
- How many tests do I need?
- At least five well spaced data points, which is what Hoek asks for outright, and the page raises a note when you have fewer. Spacing matters as much as count: five tests clustered between σ3 = 8 and 12 MPa constrain the slope far less than five spread from 0 to 40, and if every test is at the same confining stress the tool refuses to print an mi at all rather than fitting one to nothing.
- What confining stress range should my tests cover?
- 0 < σ3 < 0.5σci. That is the range Hoek and Brown used in deriving the original constants, and the chapter says it is essential the same range is used for consistency — a mi fitted over a different range is not comparable with the published tables for your rock type. The page tells you when your highest σ3 has gone past half of the fitted σci. There is an upper limit for a physical reason too: past about σ1 = 3.4σ3 rock stops failing in shear.
- Should I include my Brazilian tensile results in the fit?
- No, and the tool leaves them out by default. Hoek and Brown's 2018 edition is explicit that the Brazilian test is not an acceptable direct tensile test for inclusion in this analysis — the stress distribution in the disc is complex and the tensile strength calculation needs significant correction, so it is at best an index test needing calibration against direct tensile tests for each rock type. The results are still plotted, as open symbols, next to the tension cutoff the criterion implies from your fitted mi, so you can see the difference rather than take it on trust.
- Why does my figure show a tension cutoff instead of the criterion carrying on into tension?
- Because the criterion does not deal with tensile failure. The 2018 edition says so directly and adopts a cutoff at σt from the relationship σci/|σt| = 0.81·mi + 7, drawn as a vertical line. Extending the compressive envelope into the tensile quadrant would be reporting a number the criterion does not claim to produce.
- Can I fix σci at my measured UCS and fit only mi?
- Yes, with the "σci fixed at the measured UCS" option, and the figure says when it is on. Be clear about what that is: a constrained form of the same linearisation, minimising the same residuals with the intercept held at your measured value, not a separate published method. It is useful when you have a well-characterised UCS from many specimens and only two or three triaxial tests, and it is the wrong choice when your unconfined and confined data disagree — because then it hides the disagreement instead of showing it in the residuals.
- My r² came out low. What now?
- High quality triaxial data usually gives r² above 0.9, and the page raises a note below that. A low value normally means one of three things: real scatter in the rock, a specimen that failed on a pre-existing defect rather than through intact material, or a dataset mixing lithologies that should have been fitted separately. Look at the residual stems on the figure and the residual column in the table before touching the numbers — and note that the 2018 edition points scattered datasets at nonlinear or Bayesian fitting rather than at this regression.
- Do you flag outliers?
- No, deliberately. The 2018 edition treats outliers seriously enough to reach for Student's t distributions and Bayesian posteriors, and gives no simple threshold rule that could honestly be implemented here. So instead of inventing one and attaching a citation to it, the figure draws a stem from every specimen to the fitted envelope and the table prints the residual, and you decide which point is doing the damage.
- Is this free? What is the catch?
- It is free, with no account, no trial timer and no gated options. Enter your own test schedule, change every setting, export the figure as SVG or PNG. Free exports carry a small watermark, as they do everywhere on this site. This page and the Hoek-Brown envelope page are both free on purpose: they are the first two steps of a workflow, and gating the on-ramp would gate the whole thing.
- Does anything leave my browser?
- No. The whole regression runs in this tab, there is no account and there is no upload. For a laboratory schedule on somebody else's licence area, that is usually the entire question.