Skip to content

Commit f709b08

Browse files
Thomas StrombergThomas Stromberg
authored andcommitted
improve grades
1 parent b9c303e commit f709b08

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

internal/server/static/index.html

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,23 +1396,17 @@ <h3>Why calculate PR costs?</h3>
13961396

13971397
function mergeVelocityGrade(avgOpenHours) {
13981398
if (avgOpenHours <= 4) {
1399-
return { grade: 'A+', message: 'Impeccable' };
1400-
} else if (avgOpenHours <= 8) {
1401-
return { grade: 'A', message: 'Excellent' };
1402-
} else if (avgOpenHours <= 12) {
1403-
return { grade: 'A-', message: 'Nearly excellent' };
1404-
} else if (avgOpenHours <= 18) {
1405-
return { grade: 'B+', message: 'Acceptable+' };
1406-
} else if (avgOpenHours <= 24) {
1407-
return { grade: 'B', message: 'Acceptable' };
1408-
} else if (avgOpenHours <= 36) {
1409-
return { grade: 'B-', message: 'Nearly acceptable' };
1410-
} else if (avgOpenHours <= 100) {
1411-
return { grade: 'C', message: 'Average' };
1412-
} else if (avgOpenHours <= 120) {
1413-
return { grade: 'D', message: 'Not good my friend.' };
1399+
return { grade: 'A+', message: 'World-class velocity' };
1400+
} else if (avgOpenHours <= 24) { // 1 day
1401+
return { grade: 'A', message: 'High-performing team' };
1402+
} else if (avgOpenHours <= 84) { // 3.5 days
1403+
return { grade: 'B', message: 'Room for improvement' };
1404+
} else if (avgOpenHours <= 132) { // 5.5 days
1405+
return { grade: 'C', message: 'Significant delays present' };
1406+
} else if (avgOpenHours <= 192) { // 8 days
1407+
return { grade: 'D', message: 'Needs attention' };
14141408
} else {
1415-
return { grade: 'F', message: 'Failing' };
1409+
return { grade: 'F', message: 'Critical bottleneck' };
14161410
}
14171411
}
14181412

@@ -1427,6 +1421,7 @@ <h3>Why calculate PR costs?</h3>
14271421
html += `<span style="font-size: 28px; font-weight: 700; color: #1d1d1f;">${efficiencyPct.toFixed(1)}%</span>`;
14281422
html += '</div>';
14291423
html += `<div class="efficiency-message">${message}</div>`;
1424+
html += '<div style="font-size: 11px; color: #86868b; margin-top: 4px;">Expected costs minus delay costs</div>';
14301425
html += '</div>'; // Close efficiency-box
14311426

14321427
// Merge Velocity box
@@ -1449,7 +1444,7 @@ <h3>Why calculate PR costs?</h3>
14491444
html += `<div style="font-size: 28px; font-weight: 700; color: #1d1d1f; margin-bottom: 4px;">${annualWasteFormatted}</div>`;
14501445
const annualCostPerHead = salary * benefitsMultiplier;
14511446
const headcount = annualWasteCost / annualCostPerHead;
1452-
html += `<div class="efficiency-message">${headcount.toFixed(1)} headcount</div>`;
1447+
html += `<div class="efficiency-message">Equal to ${headcount.toFixed(1)} engineers</div>`;
14531448
html += '</div>'; // Close efficiency-box
14541449
}
14551450

0 commit comments

Comments
 (0)