FAQ

Short answers to the questions we get most.

Who can take part?

Anyone with an account. You take part as a team of one or more people: create a team on your dashboard or accept an invitation from a teammate.

What is the testing stage?

Until Stage 1 opens, a testing stage runs with a few practice problems so you can register, try the submission format and get used to the flow. Its scores don't count towards the competition.

What is the difference between the Main and Self-hosted track?

The Main track is restricted to open-source optimisation dependencies: we run your solver code in a standardised sandbox, and the overall champion is selected from this track. The Self-hosted track permits commercial solvers and proprietary software; you run it on your own infrastructure and submit results within a time window. The two tracks are scored separately and are not compared with each other.

How often can we submit?

One submission per team per UTC day, 4 during the testing stage. Your best completed submission in each round is the one that counts on the leaderboard.

How do the Stage 1 rounds work?

Stage 1 releases 15 problems a week in 4 rounds. Each round is open for 7 days, then closes as the next one opens, and a submission covers only the open round's problems. Your stage score is your best submission in each round, averaged over every problem released so far; a round you skip counts zero, and the open round counts from the day it opens.

How long does a solver get per instance?

Each problem is in one of three time classes, by its difficulty and domain: 10 s, 60 s or 5 min per instance. The problem's page and its public instances give its limit. On the Main track the sandbox stops a solver at the limit; on the Self-hosted track the limit runs from download to upload, plus 1 min of grace. Testing-stage problems all have 60 s.

What environment runs Main track code?

A standardised Python image, Python 3.12 or 3.14, with a published dependency list. There is no network access, each submission gets 2 vCPU and 4 GB RAM, and each instance has its own time limit. A submission is a zip or tar.gz with one folder per problem of the open round, named by the problem's slug, each with its own solve.py, which runs with python; a problem without a folder scores zero. The docs describe the images, the contract your solver follows and every limit.

Can we use another language?

Not on the Main track: solvers are Python, a solve.py per problem, in one of our images with any PyPI packages you add. On the Self-hosted track you run any language or solver on your own machines and upload the solutions.

Can we use packages that are not in the image?

Yes. With one of our images, you can add open-source packages from PyPI, one per line as in a requirements.txt, within the compatibility, installation and resource limits in the docs; a package you list replaces the image's version of it. They are installed once, before the first run and outside its time limit, and reused by later submissions with the same image and list. If they cannot be installed, the submission fails with the build log.

How does a Self-hosted submission work?

Starting a submission opens a window long enough to solve every private instance of the open round one after another, plus 15 min; it ends at the round's close at the latest. You start each instance, which downloads it and starts its clock, and upload one solution file in the problem's solution schema within the instance's time limit plus 1 min. Uploads are final. Instances without a solution score zero, and starting a submission uses one of the day's submissions. The checker verifies each solution and recomputes its objective.

How are submissions scored?

Each feasible solution scores the ratio of its objective to the instance's reference objective, a frozen best-known value: 1 for matching it, less for a worse solution and more for a better one, up to 2. Infeasible or checker-rejected solutions score zero. Scores are averaged within each problem, then across problems, over the private instances only. Equal scores are ranked by time used, lowest first: each instance's run time as a share of its time limit, or 1 without a feasible solution, averaged the same way.

Where can we find the problems?

On the problems page, with their statements and schemas. A round's problems are published there when it opens and stay listed after it closes.

Which instances are used for scoring?

Public instances are for development: download them from each problem's page once signed in, or through the API. Scoring uses private instances, one set per track, which are never published.

Can we change our track later?

Until the first stage opens. After that the track is locked for the rest of the competition.

What happens in Stage 2?

New problems outside the published benchmark, with unseen instances, are introduced, and teams adapt their solvers within a fixed development window. Finalists submit the code for their agentic framework, and final rankings are decided against a private final dataset. The details are published before Stage 1 ends.

Something missing? The docs cover every detail.