A concrete mix design calculator takes your target compressive strength, exposure conditions, and available materials, then computes the proportions of cement, water, fine aggregate, and coarse aggregate per cubic meter of concrete. Following ACI 211.1 methodology ensures your mix meets both strength and durability requirements.
Your calculator needs the following inputs from the user:
Estimate the mixing water requirement from ACI Table A1.5.3.3 based on slump and aggregate size. For air-entrained concrete, use the air-entrained column.
Select the lower of the w/c ratio from the strength table (ACI Table A1.5.3.4) and the durability table. This governs the cement content: cement = water / (w/c ratio).
Use ACI Table A1.5.3.6 to find the bulk volume of coarse aggregate per unit volume of concrete. Multiply by the dry-rodded unit weight to get the mass of coarse aggregate.
Calculate the absolute volume of each component (water, cement, air, coarse aggregate), sum them, and subtract from 1.0 m³. The remainder is the fine aggregate volume. Convert to mass using specific gravity.
Store the ACI tables as JavaScript arrays or objects. Use linear interpolation for values between table entries. Display each intermediate step — not just the final mix — so the engineer can verify the calculation path. This transparency is critical for peer review and code compliance documentation.
Include a batch calculator that scales quantities to the user's mixer size — a 0.5 m³ mixer on site needs different quantities than a 1.0 m³ batch at the plant.
// Concrete mix design proportioning (ACI 211 simplified)
function mixDesign(fcTarget, slump, maxAgg) {
// fcTarget in MPa, slump in mm, maxAgg in mm
const wcRatio = fcTarget <= 25 ? 0.55 :
fcTarget <= 30 ? 0.48 : 0.40;
// Estimate water content based on slump and aggregate
let water = 180; // kg/m3 baseline
if (slump > 100) water += 15;
if (maxAgg <= 10) water += 25;
const cement = (water / wcRatio).toFixed(0);
const fineAgg = 700; // kg/m3 typical
const coarseAgg = 1050; // kg/m3 typical
return {
wc_ratio: wcRatio,
water_kg: water,
cement_kg: +cement,
fine_agg_kg: fineAgg,
coarse_agg_kg: coarseAgg
};
}
// Example: 30 MPa target, 75mm slump, 20mm agg
console.log(mixDesign(30, 75, 20));
Explore RHCES engineering tools for more ready-to-use calculators and design utilities built for construction professionals.
Explore RHCES Store →