diff --git a/apps/web-roo-code/src/app/evals/workers/[roleId]/candidates-content.tsx b/apps/web-roo-code/src/app/evals/workers/[roleId]/candidates-content.tsx
index c4a42a71f8..842a7ebb6f 100644
--- a/apps/web-roo-code/src/app/evals/workers/[roleId]/candidates-content.tsx
+++ b/apps/web-roo-code/src/app/evals/workers/[roleId]/candidates-content.tsx
@@ -436,7 +436,7 @@ function CandidateCard({
Daily Cost
- ~${Math.round(candidate.estimatedDailyCost)}/day
+ ${Math.round(candidate.estimatedDailyCost)}/day
(${candidate.avgCostPerTask.toFixed(3)}/task)
@@ -569,7 +569,7 @@ function CompactCard({
{highlight === "cost"
- ? `~$${Math.round(candidate.estimatedDailyCost)}/day`
+ ? `$${Math.round(candidate.estimatedDailyCost)}/day`
: `${candidate.avgTimePerTask.toFixed(1)}s`}
{highlight === "cost" && (
@@ -591,7 +591,7 @@ function CompactCard({
Daily Cost
- ~${Math.round(candidate.estimatedDailyCost)}
+ ${Math.round(candidate.estimatedDailyCost)}
(${candidate.avgCostPerTask.toFixed(3)}/task)
@@ -944,7 +944,7 @@ export function CandidatesContent({
{candidate.successRate}%
- ~${Math.round(candidate.estimatedDailyCost)}
+ ${Math.round(candidate.estimatedDailyCost)}
(${candidate.avgCostPerTask.toFixed(3)})
diff --git a/apps/web-roo-code/src/app/evals/workers/[roleId]/compare/comparison-chart.tsx b/apps/web-roo-code/src/app/evals/workers/[roleId]/compare/comparison-chart.tsx
index 8e5aa85b7f..998e1af261 100644
--- a/apps/web-roo-code/src/app/evals/workers/[roleId]/compare/comparison-chart.tsx
+++ b/apps/web-roo-code/src/app/evals/workers/[roleId]/compare/comparison-chart.tsx
@@ -360,7 +360,7 @@ function CustomTooltip({
{entry.name}:
{entry.dataKey === "costEfficiency" && dailyCost !== undefined
- ? `${entry.value} (~$${dailyCost}/day · $${costPerTask?.toFixed(3)}/task)`
+ ? `${entry.value} ($${dailyCost}/day · $${costPerTask?.toFixed(3)}/task)`
: entry.value}
diff --git a/apps/web-roo-code/src/lib/mock-recommendations.ts b/apps/web-roo-code/src/lib/mock-recommendations.ts
index 8c57d6c147..99cc7f9b80 100644
--- a/apps/web-roo-code/src/lib/mock-recommendations.ts
+++ b/apps/web-roo-code/src/lib/mock-recommendations.ts
@@ -20,7 +20,7 @@ export const TASKS_PER_DAY = 80
export type EngineerRole = {
id: string
name: string
- /** Daily salary range string, e.g. "~$3–38/day" */
+ /** Daily salary range string, e.g. "$3–38/day" */
salaryRange: string
description: string
bestFor: string[]
@@ -81,7 +81,7 @@ const ENGINEER_ROLES: EngineerRole[] = [
{
id: "junior",
name: "Junior Engineer",
- salaryRange: "~$2–10/day",
+ salaryRange: "$2–10/day",
description:
"Handles well-scoped, single-file tasks: boilerplate, simple bug fixes, and test generation at the lowest cost per task.",
bestFor: ["Single-file fixes", "Boilerplate generation", "Test generation", "Simple implementations"],
@@ -92,7 +92,7 @@ const ENGINEER_ROLES: EngineerRole[] = [
{
id: "senior",
name: "Senior Engineer",
- salaryRange: "~$10–26/day",
+ salaryRange: "$10–26/day",
description:
"The sweet spot for most engineering work. Senior-tier models balance cost and quality across multi-file refactors, feature development, and debugging.",
bestFor: ["Multi-file refactors", "Feature development", "Debugging", "Code review"],
@@ -107,7 +107,7 @@ const ENGINEER_ROLES: EngineerRole[] = [
{
id: "staff",
name: "Staff Engineer",
- salaryRange: "~$8–34/day",
+ salaryRange: "$8–34/day",
description:
"For architecture decisions, system design, and complex refactors. Staff-tier models handle ambiguous requirements and cross-cutting changes where other tiers fail.",
bestFor: ["Architecture decisions", "Complex features", "System design", "Ambiguous requirements"],
@@ -122,7 +122,7 @@ const ENGINEER_ROLES: EngineerRole[] = [
{
id: "reviewer",
name: "Architecture Reviewer",
- salaryRange: "~$15–40/day",
+ salaryRange: "$15–40/day",
description:
"For code review, PR feedback, security analysis, and design critique. Reviewer-tier models catch issues other models miss and provide actionable, context-aware suggestions.",
bestFor: ["Code review", "PR feedback", "Security analysis", "Design critique", "Refactor guidance"],
@@ -141,7 +141,7 @@ const ENGINEER_ROLES: EngineerRole[] = [
{
id: "autonomous",
name: "Autonomous Agent",
- salaryRange: "~$5–30/day",
+ salaryRange: "$5–30/day",
description:
"For issue-to-PR workflows, long-running tasks, and multi-step debugging with minimal supervision. Autonomous-tier models complete tasks end-to-end and recover from errors without human intervention.",
bestFor: [
@@ -414,7 +414,7 @@ const seniorCandidates: ModelCandidate[] = [
avgTimePerTask: 188.5,
languageScores: { go: 97, java: 91, javascript: 96, python: 100, rust: 97 },
settings: { temperature: 0 },
- caveats: ["Most expensive in this tier: ~$39/day ($0.48/task)"],
+ caveats: ["Most expensive in this tier: $39/day ($0.48/task)"],
},
]
@@ -434,7 +434,7 @@ const staffCandidates: ModelCandidate[] = [
avgTimePerTask: 105.5,
languageScores: { go: 100, java: 100, javascript: 100, python: 100, rust: 100 },
settings: { temperature: 0, reasoningEffort: "medium" },
- caveats: ["100% pass rate at ~$8/day ($0.10/task): best cost-to-quality ratio in this role"],
+ caveats: ["100% pass rate at $8/day ($0.10/task): best cost-to-quality ratio in this role"],
},
{
provider: "anthropic",
@@ -505,7 +505,7 @@ const staffCandidates: ModelCandidate[] = [
avgTimePerTask: 211.5,
languageScores: { go: 97, java: 96, javascript: 98, python: 100, rust: 100 },
settings: { temperature: 0 },
- caveats: ["~$93/day ($1.17/task), 11× the cost of the top pick"],
+ caveats: ["$93/day ($1.17/task), 11× the cost of the top pick"],
},
{
provider: "openai",
@@ -536,7 +536,7 @@ const staffCandidates: ModelCandidate[] = [
languageScores: { go: 92, java: 91, javascript: 94, python: 94, rust: 100 },
settings: { temperature: 0 },
caveats: [
- "Most expensive model tested: ~$115/day ($1.44/task)",
+ "Most expensive model tested: $115/day ($1.44/task)",
"Lower success rate (94%) despite highest cost",
],
},
@@ -560,7 +560,7 @@ const reviewerCandidates: ModelCandidate[] = [
avgTimePerTask: 105.5,
languageScores: { go: 100, java: 100, javascript: 100, python: 100, rust: 100 },
settings: { temperature: 0, reasoningEffort: "medium" },
- caveats: ["100% consistency across all languages: ideal reviewer at ~$8/day"],
+ caveats: ["100% consistency across all languages: ideal reviewer at $8/day"],
},
{
provider: "anthropic",
@@ -646,7 +646,7 @@ const reviewerCandidates: ModelCandidate[] = [
avgTimePerTask: 188.5,
languageScores: { go: 97, java: 91, javascript: 96, python: 100, rust: 97 },
settings: { temperature: 0 },
- caveats: ["Most expensive reviewer: ~$39/day ($0.48/task)", "More variable across languages than top picks"],
+ caveats: ["Most expensive reviewer: $39/day ($0.48/task)", "More variable across languages than top picks"],
},
{
provider: "openai",
@@ -683,7 +683,7 @@ const autonomousCandidates: ModelCandidate[] = [
avgTimePerTask: 105.5,
languageScores: { go: 100, java: 100, javascript: 100, python: 100, rust: 100 },
settings: { temperature: 0, reasoningEffort: "medium" },
- caveats: ["Perfect success rate + fast completion: ideal autonomous agent at ~$8/day"],
+ caveats: ["Perfect success rate + fast completion: ideal autonomous agent at $8/day"],
},
{
provider: "openai",
@@ -698,7 +698,7 @@ const autonomousCandidates: ModelCandidate[] = [
avgTimePerTask: 173.0,
languageScores: { go: 100, java: 98, javascript: 100, python: 100, rust: 97 },
settings: { temperature: 0 },
- caveats: ["Cheapest autonomous option at ~$2/day with near-perfect success"],
+ caveats: ["Cheapest autonomous option at $2/day with near-perfect success"],
},
{
provider: "xai",
|