Video Game Backlog Completion Time Calculator
A game backlog can look manageable until every estimated completion time is added together.
Run — free
This calculator turns a play order, the average hours for each game, and your realistic weekly gaming budget into a practical timeline. It reports the exact number of weeks for the full list, the rounded calendar-week estimate, and the point at which each title should be finished. Because the calculation preserves your chosen order, you can also rearrange the list to compare different plans without losing sight of the total commitment.
Build an estimate from a realistic play order
Start by listing the games in the sequence you genuinely expect to play them. For each title, provide an average completion time in hours from a source or personal estimate that matches your intended style of play. A main-story estimate will produce a very different plan from a completionist estimate, so use one consistent definition across the list. Then enter the number of hours you can reliably reserve for gaming in an ordinary week. The calculator accumulates each game's hours in the supplied order and divides those running totals by the weekly budget. This produces a completion point for every title as well as a total for the backlog. The method assumes that available time transfers directly from one game to the next. If one title ends halfway through a weekly budget, the remaining hours in that week are immediately available for the following title. Add only games you currently intend to finish; abandoned titles, competitive games without an endpoint, and open-ended sandboxes need a self-imposed hour target before they can fit a finite backlog plan.
Read exact weeks and calendar weeks correctly
The result separates an exact duration from a rounded calendar estimate. The exact weeks value is total completion hours divided by weekly hours. It can contain a fraction: for example, a completion point of 2.5 weeks means the relevant hours are reached halfway through the third week if play time is spread evenly. The calendar week is rounded upward because any portion of a week still occupies that numbered week on a planning calendar. Each schedule row also shows the hours accumulated through that game, the weeks elapsed before starting it, its exact completion point, and its rounded completion week. A zero-hour entry remains in the requested order but adds no time; this can represent an already finished title or a placeholder whose remaining effort is zero. These figures are estimates, not deadlines. Average completion times summarize other playthroughs, while your pace may change with difficulty, exploration, retries, accessibility settings, downloadable content, or familiarity with the genre. Treat small differences as planning guidance rather than precision promises.
Use the schedule to make the backlog sustainable
A useful backlog plan should survive normal life rather than describe an ideal week that rarely happens. Choose a weekly budget you can maintain during busy periods, then rerun the calculation with an optimistic and conservative budget to see a reasonable range. The ordered schedule makes tradeoffs visible: moving a short game earlier creates an earlier completion without changing the final total, while removing a very long game changes every later completion point. You can use those effects to alternate long and short experiences, place a release before a planned event, or decide which games no longer deserve space in the queue. Review the estimate whenever your available hours or chosen completion scope changes. If you often skip entire weeks, convert your expected monthly play time into a weekly average rather than pretending every week is identical. For automation, the same deterministic calculation is available for $0.002 per request. It performs no network lookup, so the hours in your input remain the explicit basis of every result and can be audited later.
What you can do with it
Plan a backlog before a major release
Check which games can realistically be completed before a new title arrives and see where every current game lands on the timeline.
Compare different play orders
Move shorter or higher-priority games earlier to compare completion milestones while keeping the same total workload.
Set a sustainable weekly routine
Test conservative and optimistic weekly hour budgets to understand how changes in available play time affect the finish date.
FAQ
What happens if my weekly hours are zero or negative?
The request is rejected because a non-positive weekly budget cannot produce a finite completion estimate.
Does the calculator look up completion times?
No. You supply the average completion hours for every game, which keeps the calculation transparent and deterministic.
Why are exact weeks and calendar weeks different?
Exact weeks preserve fractional time, while calendar weeks round upward to identify the numbered week in which completion occurs.
Can I include a game I have partly completed?
Yes. Enter an estimate of the remaining hours rather than the full average completion time.
Does changing the game order change the total?
No. It changes each game's completion point, but the total remains the sum of the same hours divided by the same weekly budget.
How much does an API request cost?
Each API request costs $0.002. The calculation can also run in the browser using the same deterministic logic.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/game/game-backlog-completion-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"games":[{"title":"Harbor Quest","completion_hours":18},{"title":"Signal Tower","completion_hours":27.5},{"title":"Orchard Tactics","completion_hours":12}],"weekly_hours":10}'const res = await fetch("https://api.kit.forhosting.com/game/game-backlog-completion-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"games": [
{
"title": "Harbor Quest",
"completion_hours": 18
},
{
"title": "Signal Tower",
"completion_hours": 27.5
},
{
"title": "Orchard Tactics",
"completion_hours": 12
}
],
"weekly_hours": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/game-backlog-completion-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"games": [
{
"title": "Harbor Quest",
"completion_hours": 18
},
{
"title": "Signal Tower",
"completion_hours": 27.5
},
{
"title": "Orchard Tactics",
"completion_hours": 12
}
],
"weekly_hours": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/game-backlog-completion-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"games":[{"title":"Harbor Quest","completion_hours":18},{"title":"Signal Tower","completion_hours":27.5},{"title":"Orchard Tactics","completion_hours":12}],"weekly_hours":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"games":[{"title":"Harbor Quest","completion_hours":18},{"title":"Signal Tower","completion_hours":27.5},{"title":"Orchard Tactics","completion_hours":12}],"weekly_hours":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/game-backlog-completion-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"games": [
{
"title": "Harbor Quest",
"completion_hours": 18
},
{
"title": "Signal Tower",
"completion_hours": 27.5
},
{
"title": "Orchard Tactics",
"completion_hours": 12
}
],
"weekly_hours": 10
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.game_backlog_completion_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_items | 500 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |