Bending Stress Calculator uses σ = M×c/I to calculate actual flexural stress from bending moment, extreme fiber distance, and moment of inertia, then checks it against allowable bending stress limits.
Bending Stress Calculator — Flexural Stress (σ = Mc/I)
A beam that looks perfectly sized on paper can still fail in the field — not because the loads were underestimated, but because someone confused the section modulus with the moment of inertia, or forgot to check whether the actual stress actually stays below the material’s allowable limit. This calculator keeps all four variables in one place: the bending moment, the distance to the extreme fiber, the second moment of area, and the allowable stress — giving you the actual bending stress, the section modulus, the allowable moment capacity, the safety factor, and the utilization ratio in a single pass.
The Flexure Formula — What It Actually Computes
The core relationship is the elastic flexure formula: σ = Mc / I. Read plainly, it says the stress at any point in a cross-section equals the bending moment at that section times the distance from the neutral axis to that point, divided by the cross-section’s second moment of area about the neutral axis.
The extreme fiber distance c is where that stress peaks — the farthest point from the neutral axis, whether that’s the top or bottom of a symmetric section or the critical face of an asymmetric one. Plugging in the maximum moment and the worst-case c gives you the highest stress anywhere in the beam, which is the value that governs design.
Beyond the raw stress, the calculator derives three additional outputs that matter more in practice:
- Section Modulus (S = I/c): A geometric shorthand that collapses the I/c ratio into a single property. Beam tables publish S directly because it lets you jump straight from moment to stress without carrying I and c separately.
- Allowable Moment (Mallow = Fb × S): The maximum moment your section can sustain before hitting the material’s allowable bending stress. If your applied moment exceeds this number, the section is undersized.
- Safety Factor and Utilization: The safety factor is simply Fb / σ — how many times stronger the allowable limit is compared to the actual stress. Utilization is the inverse expressed as a percentage. A utilization of 83% means you’re using 83% of the section’s capacity; 100% or above means overload.
All unit conversion happens internally in N and mm. Whatever combination of input units you choose, every quantity is reduced to that base before the formula runs, then converted back for display. That means you can enter moment in kN·m and inertia in cm⁴ and the result will still be correct — but see the unit gotcha in the FAQ below about mixed imperial inputs.
Worked Example — W310×97 Steel Beam, Office Floor Loading
A simply supported W310×97 (a common Canadian wide-flange) spans 8 m with a uniformly distributed load producing a maximum midspan moment of M = 120 kN·m. The section properties from the handbook are Ix = 222,000 cm⁴ and depth = 308 mm, so c = 154 mm = 15.4 cm. Grade 350W steel has an allowable bending stress of roughly Fb = 230 MPa under working stress design.
Entering those four values — M = 120 kN·m, c = 15.4 cm, I = 222,000 cm⁴, Fb = 230 MPa — the calculator returns:
- Actual stress σ: 8.3 MPa
- Section Modulus S: 14,416 cm³
- Allowable Moment: 3,316 kN·m
- Safety Factor: 27.7
- Utilization: 3.6%
That utilization number is a red flag — not a structural one, but an economic one. A W310×97 is massively over-specified for a 120 kN·m demand. In a real project this would prompt the engineer to drop to a W250×58 or similar and recheck. The calculator makes that iteration fast: swap I and c values from the lighter section, rerun, confirm the utilization lands somewhere between 60–85%, done.
Where This Estimate Breaks Down
The flexure formula assumes four things that aren’t always true in the field: linear elastic material behavior, a homogeneous cross-section, a straight beam with a symmetric loading plane, and a cross-section that remains plane after bending (Bernoulli–Euler beam theory). The moment you step outside those assumptions, the formula gives you an approximation at best.
Composite sections — a concrete slab on a steel beam, a flitch beam, timber with steel plates — require transformed-section analysis before you can use I and c meaningfully. Plastic design in steel deliberately allows stress redistribution beyond the elastic limit, so the elastic section modulus S underestimates true capacity. Laterally unbraced beams fail in lateral-torsional buckling at moments well below what σ = Mc/I predicts. Curved beams develop a nonlinear stress distribution across the depth, and the neutral axis shifts from the centroid. In any of those situations, use this calculator to get a quick first-pass estimate, then apply the appropriate corrections.
Frequently Asked Questions
What happens if I enter zero or a negative value for I, c, or moment?
The calculator treats zero and negative values as invalid and will not run the calculation. All four inputs must be strictly positive numbers. This is intentional — a zero moment of inertia or zero fiber distance is physically meaningless, and allowing those inputs would produce a divide-by-zero or a nonsensical result. If you’re seeing the “Data Required” warning, check that none of your inputs are blank, zero, or negative.
The section modulus is showing in cm³ even though I entered c in inches — is that a bug?
Not quite, but it is a gotcha. The section modulus output unit is determined by both the c unit and the I unit. If either is in imperial units (inches or in⁴), the section modulus displays in in³. If both are metric, it displays in cm³. Mixing a metric I (cm⁴) with an imperial c (in), or vice versa, will still produce a numerically correct stress result — the internal conversion handles it — but the section modulus unit will follow the imperial flag. For clean output, keep both I and c in the same unit system.
When does the safety factor display as “> 99” instead of a number?
When the ratio of allowable stress to actual stress exceeds 99, the display caps at “> 99” rather than showing a large meaningless number. This typically happens when the applied moment is very small relative to the section size — a massively over-specified beam, a test input, or a moment entered in the wrong unit (e.g., N·m when you meant kN·m). It’s a display choice to prevent three-digit safety factors from implying more precision than the inputs warrant.
My moment is in lbf·ft but my section properties are in cm⁴ and cm — will the stress output be in MPa or psi?
The stress output unit always follows whatever you select in the Allowable Stress (Fb) dropdown — MPa, psi, or ksi. The input units for M, c, and I are converted internally and don’t affect the stress output unit. So if Fb is set to psi, your result will be in psi regardless of how you entered the moment or section properties. That also means you can freely mix SI and imperial input units as long as you’re deliberate about which stress unit you want at the end.
Does the “Allowable Moment” output account for load factors or capacity reduction factors (φ)?
No. The calculator works in working stress (allowable stress) design terms. The allowable moment is simply Fb × S, where Fb is whatever value you enter. If you’re working in LRFD or limit-states design, you’re responsible for supplying the appropriate factored resistance as Fb — the calculator has no built-in load factors, φ-factors, or code-specific adjustments. What you enter as the allowable stress is exactly what the calculation uses.
Why is the remaining capacity showing 0% even though the beam isn’t completely failed?
The remaining capacity is calculated as 100% minus the utilization ratio. If utilization exceeds 100% — meaning actual stress exceeds allowable — the remaining capacity floors at 0% rather than going negative. This is a display boundary, not a physical one; the stress and safety factor results will still show the full extent of the overload (safety factor below 1.0, utilization above 100%, danger alert triggered). The 0% floor just prevents the capacity readout from showing a negative percentage, which would be confusing in context.