Multi-Trade Service Classification Tier Calculator
ANA›Life Services Authority›National Calculator Authority›Multi-Trade Service Classification Tier Calculator
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Multi-Trade Service Classification Tier Calculator
Classifies a service job into a pricing/complexity tier (Tier 1–5) based on the number of trades involved, job complexity score, site access difficulty, and estimated labour hours. Use this to standardise quoting, resource allocation, and scheduling priority.
Number of Trades Involved (1–10)
Count distinct trade disciplines required (e.g. electrical, plumbing, HVAC = 3).
Job Complexity Score (1–10)
1 = routine maintenance, 10 = highly specialised or custom engineering work.
Site Access Difficulty (1–5)
1 = easy ground-level access, 5 = confined space / height / restricted entry.
Estimated Total Labour Hours
Sum of all trade hours across the full job scope.
Calculate Tier
function mulCalc() { // --- Read inputs --- var trades = parseFloat(document.getElementById('mul_trades').value); var complexity = parseFloat(document.getElementById('mul_complexity').value); var access = parseFloat(document.getElementById('mul_access').value); var hours = parseFloat(document.getElementById('mul_hours').value);
var resultDiv = document.getElementById('mul_result'); resultDiv.style.display = 'block';
// --- Validation --- var errors = []; if (isNaN(trades) || trades 10) errors.push('Number of trades must be between 1 and 10.'); if (isNaN(complexity) || complexity 10) errors.push('Job complexity score must be between 1 and 10.'); if (isNaN(access) || access 5) errors.push('Site access difficulty must be between 1 and 5.'); if (isNaN(hours) || hours 0) { resultDiv.className = 'calc-result calc-error'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }
// --- Composite Score Formula --- // Weights derived from industry service-classification frameworks: // Trades weight = 0.30 (each additional trade adds coordination overhead) // Complexity wt = 0.35 (skill demand is the dominant cost driver) // Access weight = 0.20 (site difficulty affects productivity) // Hours weight = 0.15 (duration proxy for resource commitment) // // Normalise hours to a 1–10 scale using a log10 curve capped at 10: // hoursNorm = min(10, log10(hours + 1) / log10(101) * 10) // // Composite Score (CS) = 0.30(trades/1010) + 0.35complexity + 0.20(access/510) + 0.15hoursNorm // = 0.30trades + 0.35complexity + 0.40access + 0.15hoursNorm // // Tier thresholds (CS out of 10): // Tier 1: CS = 8.5 — Major / Mission-Critical
var hoursNorm = Math.min(10, (Math.log10(hours + 1) / Math.log10(101)) * 10);
// Normalise trades to 0–10 scale (already 1–10, use as-is) // Normalise access: 1–5 → 2–10 (multiply by 2) var accessNorm = access * 2;
var CS = 0.30 * trades + 0.35 * complexity + 0.20 * accessNorm + 0.15 * hoursNorm;
// Clamp to 0–10 CS = Math.min(10, Math.max(0, CS));
// --- Tier Classification --- var tier, tierLabel, tierColor, tierDesc, priority, markup; if (CS ' + '' + 'Input Factor' + 'Raw Value' + 'Normalised' + 'Weight' + 'Weighted Score' + '' + '' + 'Trades Involved' + '' + trades + '' + '' + trades.toFixed(2) + ' / 10' + '30%' + '' + tradeScore + '' + 'Job Complexity' + '' + complexity + '' + '' + complexity.toFixed(2) + ' / 10' + '35%' + '' + compScore + '' + 'Site Access Difficulty' + '' + access + ' / 5' + '' + accessNorm.toFixed(2) + ' / 10' + '20%' + '' + accessScore + '' + 'Labour Hours (log-normalised)' + '' + hours + ' hrs' + '' + hoursNorm.toFixed(2) + ' / 10' + '15%' + '' + hoursScore + '' + '' + 'Composite Score (CS)' + '' + CS.toFixed(3) + ' / 10' + '' + '' +
'' + 'Scheduling Priority: ' + priority + '' + 'Recommended Markup: ' + markup + ''; }
#### Formula
Step 1 — Normalise Inputs to a 0–10 scale:
- Trades: already on 1–10 scale → used directly.
- Complexity: already on 1–10 scale → used directly.
- Access: 1–5 scale → accessNorm = access × 2 (maps to 2–10).
- Hours: logarithmic normalisation → hoursNorm = min(10, log₁₀(hours+1) / log₁₀(101) × 10)
Step 2 — Composite Score:
CS = 0.30 × trades + 0.35 × complexity + 0.20 × accessNorm + 0.15 × hoursNorm
Step 3 — Tier Classification:
#### Assumptions & References
More Calculators
- Siding Repair Cost Estimator
- Canopy Clearance Calculator
- Branch Weight & Load Estimator
- Tree Height Estimator (Shadow/Angle Method)
- Window Draft & Air Leakage Savings Calculator
- Roof Damage Repair Cost Calculator
- Tree Pruning Season Timing Calculator
- Energy Savings Calculator
- Heat Loss Calculator — Wall and Insulation R-Value Estimator
- Furnace Sizing Calculator for Montana Winters
- Montana Climate Zone Heating Load Calculator
- HVAC Load Calculator (Manual J Estimate)
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...