Multi-Trade Service Classification Tier Calculator

ANALife Services AuthorityNational 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:

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

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References