Overview
You start with 10 employees across three tiers: junior, mid-level, and senior. Each employee has:- Visible: tier, salary, active task assignments
- Hidden: per-domain skill rates (must be inferred from task progress observations)
- Infer hidden information (skill rates) from observations (progress checkpoints)
- Optimize throughput allocation (avoid over-splitting employees)
- Manage cash flow (salaries compound over time)
Employee Tiers (Junior / Mid / Senior)
Employees are distributed across three tiers (fromdefault.toml:169):
Default Headcount (10 employees)
- 5 juniors (50% share)
- 3.5 mid-level → rounds to 3 or 4 depending on RNG
- 1.5 seniors → rounds to 1 or 2 depending on RNG
Tier Characteristics
| Tier | Salary Range | Skill Rate Range | Cost-Effectiveness |
|---|---|---|---|
| Junior | 4K/mo | 1.0–4.0 u/h | High variance (some juniors outperform mids!) |
| Mid | 8K/mo | 4.0–7.0 u/h | Reliable mid-tier throughput |
| Senior | 15K/mo | 7.0–10.0 u/h | Expensive but high throughput |
Skill rate ranges overlap across tiers. A lucky junior with 4.0 u/h is as productive as a mid-level employee but costs half the salary.
Hidden Skill Rates (Per Domain)
Each employee has four skill rates — one per domain (research, inference, data/environment, training).Skill Rate Storage (from src/yc_bench/db/models/employee.py:48)
Example Employee
Alice (junior, $3,200/month):- Research:
3.2units/hour - Inference:
1.8units/hour - Data/Environment:
2.5units/hour - Training:
3.9units/hour
- Research:
8.1units/hour - Inference:
7.3units/hour - Data/Environment:
9.2units/hour - Training:
7.8units/hour
Rate Generation (Deterministic)
At world initialization, skill rates are sampled from uniform distributions seeded byrun_seed + employee_index + domain_index. Given the same seed, you get the same employees.
Inferring Productivity from Observations
Agents can infer employee skill rates by measuring task progress between checkpoints.Progress Observation
At 25%, 50%, 75%, and 100% milestones, the agent can inspect:Rate Inference Formula
If Alice and Bob are assigned to only this task:By observing progress across multiple tasks and checkpoints, agents can build a probabilistic model of each employee’s skill rates per domain.
Throughput Splitting (N Active Tasks = Base Rate / N)
This is the key mechanic that makes employee allocation strategic.Formula (from src/yc_bench/core/progress.py:68)
base_rate / N to each task.
Example: Single Task
Alice (research rate: 8.0 u/h) assigned to 1 active task:Example: Multiple Tasks
Alice assigned to 3 active tasks (Task A, Task B, Task C):Why Splitting is Bad
If Task A needs 100 units:- Single-task: Completes in
100 / 8.0 = 12.5 hours - Three-task split: Completes in
100 / 2.67 = 37.5 hours(3× slower)
- Single-task: ✅ Finishes in 12.5 hours (on time)
- Three-task split: ❌ Finishes in 37.5 hours (late, prestige penalty)
Strategic Implication
Agents must:- Sequence tasks rather than parallelizing across employees
- Batch similar tasks to avoid context-switching penalties
- Avoid over-committing employees to too many simultaneous tasks
Salary Structure
Salaries are deducted monthly at the start of each month (1st day, 9:00 AM).Starting Salaries
Each employee’s salary is sampled from their tier’s salary range at world initialization:Example Payroll (10 employees)
| Tier | Count | Avg Salary | Total |
|---|---|---|---|
| Junior | 5 | $3,000 | $15,000 |
| Mid | 3 | $7,000 | $21,000 |
| Senior | 2 | $12,500 | $25,000 |
| Total | 10 | $6,100 | $61,000/month |
Initial Runway
With starting funds of 61,000/month:Salary Bumps on Task Completion (1% Compounding)
Every successful task completion gives all assigned employees a 1% salary raise (fromdefault.toml:65).
Salary Bump Formula (from src/yc_bench/core/handlers/task_complete.py:103)
Example: Compounding Effect
Alice starts at $3,000/month. After 10 successful tasks:Total Payroll Growth
If all 10 employees participate in all tasks equally:| Tasks Completed | Starting Payroll | New Payroll | Increase |
|---|---|---|---|
| 0 | $61,000 | $61,000 | — |
| 20 | $61,000 | $74,400 | +22% |
| 50 | $61,000 | $100,000 | +64% |
| 100 | $61,000 | $165,000 | +171% |
Salary Bumps and Cash Flow Strategy
Early Game (Months 1–6)
- Payroll is manageable (~80K/month)
- Focus on completing any profitable tasks to build cash reserves
- Prestige climb is more important than payroll optimization
Mid Game (Months 7–18)
- Payroll has grown to ~150K/month
- Must complete high-prestige tasks (4–6×) to offset payroll
- Selective about which tasks to accept (avoid low-margin tasks)
Late Game (Months 19–36)
- Payroll may exceed $200K/month
- Requires prestige-7+ tasks to stay cash-flow positive
- One failed task can trigger bankruptcy
The salary bump mechanic creates compounding payroll pressure, forcing agents to continuously climb prestige to access higher-paying tasks.
Employee Observability
Agents can query employee status:The
active_task_count field shows how many active tasks the employee is assigned to. Use this to avoid over-splitting employees.Best Practices
1. Infer Skill Rates Early
In the first 10–20 tasks, intentionally assign employees to single tasks to measure their base rates without throughput splitting:2. Avoid Throughput Splitting
Prefer assigning employees to one active task at a time:3. Match Employees to Domains
Once you’ve inferred skill rates, assign employees to tasks in their strong domains:4. Monitor Payroll Growth
Track payroll growth rate:5. Rotate Employees to Manage Salary Growth
To slow payroll growth, rotate which employees are assigned to tasks:Salary bumps apply only to assigned employees. If you always use the same 5 employees, their salaries will grow much faster than the other 5.
Edge Cases and Gotchas
Hidden Specialist
A junior employee might be a hidden specialist in one domain:- Research:
3.8u/h (excellent for junior) - Inference:
1.2u/h (poor) - Data/Environment:
1.5u/h (poor) - Training:
1.8u/h (poor)
[inference, training]), they’ll underperform despite being strong in research.
Always match employees to tasks based on task-specific domain requirements, not tier or salary.
Over-Assignment
Assigning too many employees to a task doesn’t always help:- Task needs 1000 research units
- Deadline: 10 business days (90 hours)
- Required rate:
1000 / 90 = 11.1 u/h
1000 / 8.0 = 125 hours ❌ (misses deadline)
Option B: Assign Alice + Bob (8.0 + 7.0 = 15.0 u/h) → completes in 1000 / 15.0 = 66.7 hours ✅ (on time)
But if Bob is already assigned to another task, his contribution drops to 7.0 / 2 = 3.5 u/h, and the combined rate is only 8.0 + 3.5 = 11.5 u/h (barely on time).
Next Steps
Task Management
Learn how to assign employees to tasks and manage the task lifecycle.
Simulation Mechanics
Deep dive into how progress flushing and throughput splitting work.
Scoring
Understand how employee utilization factors into final scores.
Prestige System
Learn how skill boosts from task completion improve employee rates.