A browser-based tool that allocates localization tasks to a 50+ person team, factoring in language pair skills, shift timing, OOO calendars, workload balance, and multi-day project splitting. Built to replace a manual Excel-based process that consumed several hours per planning cycle.
Every shift, 20-50 tasks come in across three language pairs (ES-XL, PT-BR, FR-CA) and multiple task types (translation, LLQA, STA, TC implementation, DTP review, proofreading). Each task needs to go to someone who:
- Has the right language pair
- Has the right skill (not every linguist can do every task type)
- Is actually on shift (we run night shift, 5 PM - 2 AM IST, but linguists are spread across time zones)
- Isn't on OOO
- Isn't already overloaded
- Can finish the task before their shift ends, or the task needs to be split across days
The old process: an Excel sheet with linguist names, their skills, their schedules, and a lot of manual juggling. Every planning cycle involved scrolling through the sheet, mentally tracking who had capacity, and making allocation decisions one at a time. It took 2-3 hours on heavy days, and mistakes (assigning to someone on OOO, overloading one person while another sat idle) happened regularly.
Drop in the task list (from Excel or pasted), and the tool:
- Loads the team roster with each person's language pairs, task type certifications, shift hours, and OOO calendar
- Scores each person-task pair based on skill match, current workload, time remaining in shift, and task priority
- Allocates tasks using a greedy best-fit algorithm, highest-priority tasks first
- Splits multi-day tasks automatically when a task's estimated hours exceed the assignee's remaining shift time, creating continuation tasks for the next day
- Outputs an allocation sheet (Excel-compatible) with assignee, task, estimated hours, and any split notes
Task List (Excel/paste) Team Roster + OOO Calendar
| |
v v
+--------------+ +--------------+
| Task Parsing | | Roster Load |
| & Priority | | & Availability|
+--------------+ +--------------+
| |
+----------+ +--------------+
| |
v v
+--------------+
| Scoring & |
| Matching |
| Engine |
+--------------+
|
v
+--------------+
| Multi-day |
| Splitting |
+--------------+
|
v
+--------------+
| Allocation |
| Output |
| (Excel) |
+--------------+
- Greedy best-fit, not optimal. An optimal assignment (Hungarian algorithm or similar) would be overkill and hard to explain to the team. Greedy best-fit is transparent: "this task went to this person because they had the best skill match and the most capacity." People trust allocations they can understand.
- OOO calendar integration. The roster pulls OOO data so the allocator never assigns to someone who's off. This alone eliminated the most common planning mistake.
- Shift-aware splitting. If a task is estimated at 6 hours and the linguist has 3 hours left in their shift, TaskAlloc creates two sub-tasks: 3 hours today, 3 hours tomorrow, and pre-assigns the continuation. No more "I ran out of time" surprises at 2 AM.
- Browser-based. No installation, no server. Open the HTML, load your roster file, paste your task list. Works on any machine with a browser.
- HTML/CSS/JavaScript (single-file browser app)
- File parsing (Excel via SheetJS, CSV, paste)
- Local storage for roster persistence between sessions
A manual Excel-based allocation process that took 2-3 hours per planning cycle and produced regular mistakes (OOO conflicts, overloads, forgotten splits). TaskAlloc v2 runs the same allocation in under a minute.
| v1 | v2 | |
|---|---|---|
| Allocation | Manual skill matching only | Full scoring engine (skill + workload + shift + priority) |
| OOO | Not integrated | Calendar integration |
| Multi-day | Manual splitting | Automatic splitting with pre-assignment |
| Interface | Basic table | Full dashboard with drag-and-drop overrides |
Built for internal use at Lionbridge. Source code is not published due to team-specific roster data and client workflow logic. This README documents the architecture and approach.