TRADING COMPETITION GUIDE

IMC Prosperity Trading Competition Guide

Understand IMC Prosperity eligibility, teams, algorithmic and manual rounds, Python submissions, scoring, prizes and practical trading strategies.

UNLOCK PREMIUM PREPARATION

Ready to take your quant preparation further?

  • Personalised quant roadmap
  • 300+ interview questions
  • Quant courses & online assessments
Unlock Premium
The short answer

IMC Prosperity is a global virtual trading competition where students build Python trading algorithms and solve separate manual trading challenges. The most recent edition, Prosperity 4, finished on 30 April 2026 after five rounds, with individuals or teams of up to five competing for simulated profits and a USD 50,000 prize pool.

Two rounds determined qualification for the final phase, where the leaderboard started afresh. Start with Python, order books, risk limits and expected value, then practise both the automated and manual sides of the competition.

What is the IMC Prosperity Trading Competition?

Prosperity is IMC Trading's online market simulation, built around the decisions that quantitative traders make: valuing assets, quoting prices, managing inventory and finding profitable opportunities. Instead of trading real money, participants earn the game's virtual currency by competing against simulated markets and solving strategic games.

Each main round has two distinct parts. In algorithmic trading, your Python program places orders on a simulated exchange; in manual trading, your team analyses a separate numerical or strategic problem and submits a decision through the platform.

Who plays?

University students worldwide, individually or in teams of up to five.

What do you do?

Upload Python trading strategies and solve manual market challenges.

How do you rank?

Earn simulated trading profits across both tracks and advance through qualifying rounds.

Current status

Prosperity 4 has finished. Check the official event page for the next edition.

Prosperity also provides a practical introduction to market making, probability, financial modelling and programming. You do not need previous trading employment or advanced financial knowledge to learn from the simulation.

Who can enter IMC Prosperity?

The platform is designed for university students, particularly those studying science, technology, engineering and mathematics. Anyone can use the experience for learning, but competitive leaderboard recognition and prize eligibility have stricter rules.

Eligibility for rankings and prizes

For Prosperity 4, members of teams reaching the final top 25 had to be at least 18 at registration and able to prove that they were enrolled at a university when they registered. Students who graduated after registering could remain eligible.

  • University status: all members of a qualifying team needed to meet the student requirement for competitive recognition.
  • Previous winners: anyone who had been part of a top 10 team in an earlier Prosperity edition could still play, but their new team could not qualify for rankings or prizes.
  • Employment conflicts: current IMC employees, people who had accepted IMC employment or internships, and employees of competing trading or investment organisations were excluded from rankings and prizes.
  • Prize regions: cash prizes were restricted to eligible residents of EMEA, North America, South America, India, Australia and Hong Kong at registration.
  • Verification: top five overall teams and the best manual trading team had to be available for a participation check.

Eligibility applied to the entire team. One ineligible member could cause every member to lose recognition or a prize, so agree on eligibility before combining accounts.

Edition status

Prosperity 4 ran from 14 to 30 April 2026 and is complete. Its registration, dates and eligibility are useful preparation references, not confirmation of the terms for a later edition.

Use the Prosperity website to check whether a new competition is accepting entrants, and review the applicable rules before joining.

How to register and form a Prosperity team

When registration opens, create a participant account on the official Prosperity platform and either start a team or join one through an invitation. You can compete alone, but a coordinated team has more capacity to research data, code strategies, solve the manual problem and test submissions.

  1. Register on the official platform

    Enter your accurate details and read the event terms. Keep your student enrolment information available if you expect to compete for ranked recognition or prizes.

  2. Choose solo play or a team of up to five

    Recruit people with complementary skills in Python, statistics, optimisation and trading. Establish one shared place for code, assumptions and submission decisions.

  3. Work through the tutorial and wiki

    Learn how the sample exchange represents order books, fills, positions and trading state. Run a minimal strategy successfully before adding a forecasting model.

  4. Assign clear responsibilities each round

    Have someone own the algorithm submission, someone check risk and simulation results, and someone coordinate the manual entry. Everyone should understand the final decisions before the round closes.

  5. Submit and verify

    Upload the Python program, inspect its simulation output and submit the manual answer separately. Confirm that the correct versions were successfully received before the deadline.

During Prosperity 4, participants could change teams through the first two rounds, after which membership was locked. That made early checks of team membership and prize eligibility especially important.

What makes an effective team?

A useful division of work is one researcher identifying pricing relationships, one or two programmers implementing and testing strategies, one person analysing manual decisions, and one reviewer monitoring risk and submissions. On a smaller team, combine roles without losing the independent review.

Agree on a final submission owner, a change cutoff and a rule for rejecting untested last minute revisions. A profitable backtest is less valuable than a valid program that actually runs in the competition environment.

How the Prosperity trading rounds work

Prosperity 4 had a tutorial followed by five competition rounds. Rounds 1 and 2 were qualifiers, and teams needed at least 200,000 XIRECs of net profit across that phase to advance; the leaderboard then reset for the final three rounds.

StageTrading taskWhat matters
TutorialLearn the Python interface and submit sample trading decisions.Correct orders, data handling and position control.
Round 1Trade Ash Coated Osmium and Intarian Pepper Root; solve a manual auction.Fair value estimation, spreads and auction reasoning.
Round 2Refine those strategies, bid for additional market access and allocate resources in the manual challenge.Risk control, the value of extra liquidity and reaching the qualifying threshold.
Round 3Trade new underlying products and options; solve a separate strategic market problem.Mean reversion, option valuation and decision making under uncertainty.
Round 4Improve derivative pricing and adapt to changing market participation; tackle another manual optimisation.Volatility, hedging and robustness to new information.
Round 5Analyse a larger collection of related assets and a manual challenge involving market information.Relative value, correlations, portfolio risk and fast synthesis.

These tasks describe Prosperity 4 rather than a fixed syllabus for all future editions. The recurring skill is to understand a new market quickly, build a defensible model and use it in a constrained trading decision.

The schedule and qualification split

The most recent main competition ran from 14 to 30 April 2026. The first two rounds lasted three days each, followed by an intermission and three shorter final rounds from 24 to 30 April.

The 200,000 XIREC qualification target was specific to Prosperity 4. Profit from the qualifying phase did not carry into the final leaderboard, so teams had to optimise for reaching the threshold first and for final phase performance afterward.

Understand the two tracks

Each round produces an algorithmic result and a manual result. These decisions are evaluated independently, and their simulated profits contribute to the team's overall performance.

How the algorithmic trading challenge works

The algorithmic challenge asks you to write a Python class called Trader with a run() method. The competition engine calls that method repeatedly, provides the latest market state and executes the orders your program returns.

What information does your algorithm receive?

  • Order books: available bid and ask prices and their quoted volumes for each tradable product.
  • Current positions: how many units of each product your strategy already owns or owes.
  • Recent transactions: your own trades and other transactions exposed through the trading state.
  • Product observations: additional data released for a round, such as underlying signals or conversion information.
  • Persistent state: a traderData string for saving small pieces of information between calls.

Your output maps each product to orders with a price and signed quantity. Positive quantity means buy, negative quantity means sell; the exchange matches orders against available opposing quotes and applies position limits.

Crossing the spread versus placing a quote

If the best ask is 99 and you submit a buy order at 99, you can trade immediately against the seller at that price. If the best ask is 99 and you instead bid 97, your order rests for the iteration and will fill only if another participant trades against it.

Crossing the spread gives more certain execution but pays for immediacy. Resting quotes offer the chance to earn the spread, at the cost of fewer fills and the risk that your quote is taken when your valuation is wrong.

Position limits and hidden simulation risk

Before submitting, calculate the largest possible final position if every order fills. The engine can reject orders that collectively breach the permitted long or short limit, even when individual orders look safe.

In Prosperity 4, the public test environment simulated 1,000 iterations while final evaluation ran 10,000 iterations. That makes a robust model more valuable than one tuned to a single favourable public run.

During Round 2 of that edition, an additional bid() method set a Market Access Fee. The highest half of bids earned access to 25% more order book quotes, and accepted bidders paid their bid from their round profit.

How the manual trading challenges work

The manual component is a separate economic decision made through the Prosperity interface rather than a Python trading script. Typical problems combine probability, auctions, game theory, pricing or resource allocation, with profits determined after the round ends.

Prosperity 4 included a clearing price auction, a resource allocation challenge, options decisions and a market information game. The right approach changes with the payoff rule, so start by expressing the scoring formula before deciding what to submit.

A practical method for solving manual rounds

  1. Translate the rules into a payoff function

    Identify what you choose, what the other teams influence, and exactly when a reward or fee is applied.

  2. Separate guaranteed returns from uncertain returns

    List the outcomes you control directly, then assign probabilities or plausible scenarios to the remaining factors.

  3. Search the decision space

    For a few discrete choices, calculate each one by hand. For many possible allocations, use a short Python enumeration or simulation outside the manual submission interface.

  4. Stress test your assumptions

    Repeat the calculation with conservative and aggressive estimates of competing bids, prices or future events.

  5. Submit a single justified decision

    Document the input values, the payoff model and the reason for the chosen action so the team can review it quickly.

The manual result does not alter the simulated order book used by the algorithmic challenge. Treat it as its own opportunity to earn profit rather than an afterthought once the code is complete.

Scoring, leaderboards and competition rules

Teams compete on simulated trading profit, shown in XIRECs. Algorithmic and manual performance contribute to the overall score, while the final ranking for Prosperity 4 followed the simulated account balance after the final phase.

RuleWhat it means for your strategy
Separate challenge resultsSubmit the Python algorithm and manual decision independently; each can earn or lose simulated profits.
Qualifier thresholdFor Prosperity 4, reach at least 200,000 XIRECs across the first two rounds to access the final phase.
Final phase resetAfter qualification, optimise for the remaining three rounds rather than treating the early phase total as part of the final score.
Position limitsKeep the combined exposure of all possible fills within each product's allowed quantity.
Final score tieProsperity 4 used the earlier timestamp of the final algorithm submission to break an equal final balance.
Integrity requirementsUse your team's own work, avoid platform exploits and ensure all team members meet the competition rules.

What is PnL?

PnL is profit and loss. In a market making strategy, it depends on money earned from executed trades together with the value of your remaining inventory; a large cash balance alone does not mean you made a profit if you are carrying a costly position.

Watch your inventory, transaction prices and mark value during tests. A strategy that wins many small spreads but suffers one severe inventory loss can finish behind a simpler, more disciplined algorithm.

Why rankings can change after the round closes

Final evaluation takes place on the trading engine after teams submit their strategies and manual answers. A local backtest or public test is feedback on a strategy, not a guaranteed final leaderboard result.

IMC Prosperity prizes and career opportunities

The total cash prize pool for Prosperity 4 was USD 50,000, including USD 45,000 for the top five overall teams and USD 5,000 for the top manual trading score. The figures below describe that completed edition.

PlacementCash prize
1st overallUSD 25,000
2nd overallUSD 10,000
3rd overallUSD 5,000
4th overallUSD 3,500
5th overallUSD 1,500
Top manual trading scoreUSD 5,000

Team prizes were divided equally among eligible members. Winners also had to complete IMC's verification and payment process, including the response deadline specified in the prize notification.

Can Prosperity help you get a job at IMC?

Prosperity is an opportunity to demonstrate Python, mathematical judgement, teamwork and an interest in quantitative trading. IMC has featured former contestants who subsequently joined the firm, but placing well is not an internship or job offer.

Keep your submission code, research notes and a short summary of the strategies you tested. They can become a concrete project to discuss in a future trading or engineering application, including what failed and how you improved it.

Related career preparation

For recruitment preparation beyond the competition, read the EverythingQuant IMC quantitative trader guide. It covers the career path separately from this trading challenge.

Worked examples: a trading algorithm and a manual decision

These two EverythingQuant practice exercises use fictional prices, limits and payoffs. They demonstrate how to turn an estimated edge into a valid order and how to choose a manual bid using expected profit.

Example 1: buy an undervalued offer without exceeding your limit

Assume a fictional asset has a best ask of 98, an estimated fair value of 101, and six units available at the ask. You already own seven units and your position limit is ten, so you can buy only three additional units.

InputValueImplication
Estimated fair value101A purchase below 101 has theoretical upside.
Best ask and available units98 and 6The order book offers six units at 98.
Current inventory and limit7 and 10Only three more units fit within the limit.
Permissible buy order3 units at 98Possible new inventory is exactly ten units.
Theoretical edge9 XIRECsThree units multiplied by three XIRECs of estimated value.

The 9 XIREC edge is an estimate, not guaranteed cash profit. If the asset's value falls to 95, those three newly purchased units instead lose 9 XIRECs when marked at that lower value.

Original Python practice strategy

This short example follows the Prosperity Trader.run() interface and makes at most one side of a trade per call. Replace the fictional product, fixed valuation and limit with the values and model for a real practice round.

from datamodel import Order

class Trader:
    def run(self, state):
        symbol = "EXAMPLE_ASSET"  # Fictional practice symbol
        fair_value = 100
        position_limit = 10
        position = state.position.get(symbol, 0)
        book = state.order_depths.get(symbol)
        orders = []

        if book and book.sell_orders:
            best_ask = min(book.sell_orders)
            available = -book.sell_orders[best_ask]
            capacity = max(0, position_limit - position)
            quantity = min(available, capacity)

            if best_ask <= fair_value - 2 and quantity > 0:
                orders.append(Order(symbol, best_ask, quantity))

        if not orders and book and book.buy_orders:
            best_bid = max(book.buy_orders)
            available = book.buy_orders[best_bid]
            capacity = max(0, position_limit + position)
            quantity = min(available, capacity)

            if best_bid >= fair_value + 2 and quantity > 0:
                orders.append(Order(symbol, best_bid, -quantity))

        return {symbol: orders}, 0, state.traderData or ""

This is a basic execution example, not a winning trading model. A stronger submission estimates fair value from market observations, tests the quality of fills, handles every permitted product and considers how risk changes as inventory grows.

Example 2: choose a manual auction bid using expected profit

Suppose you value an item at 130 XIRECs and must submit one bid in a fictional first price auction. A competing bid is equally likely to be 60, 80 or 100, and you pay your own bid only when you win.

Your bidChance of winningProfit if you winExpected profit
701 in 36020 XIRECs
902 in 34026.67 XIRECs
1103 in 32020 XIRECs

Of these three bids, 90 has the highest expected profit because it balances a higher win probability against a smaller gain when successful. In a real manual round, derive the calculation from that round's actual payoff rule rather than assuming every auction uses first price bidding.

Practice challenge

Change the item's value from 130 to 105 and recalculate all three bids. Then repeat with a competitor who bids 100 twice as often as either lower bid, and check whether your best choice changes.

How to prepare for IMC Prosperity

Prepare the algorithmic and manual tracks together. A strong trading strategy needs reliable code, a reason to believe its estimated prices, and controls that keep it within the rules; strong manual decisions need the same discipline with probability and payoffs.

A practical preparation sequence

  1. Build the Python foundation

    Review dictionaries, classes, loops, basic statistics and reading structured market data. Write and test a function that identifies the best bid, best ask, available size and current inventory.

  2. Learn market making and trading risk

    Practise the bid and ask spread, fair value, passive versus aggressive orders, inventory skew and position limits. Work through examples where a seemingly profitable quote becomes a loss when the estimated value changes.

  3. Backtest one simple strategy

    Use sample prices to compare a fixed valuation strategy with a moving average. Track total PnL, inventory, number of fills, worst loss and sensitivity to the valuation threshold.

  4. Practise auctions, expected value and options

    Solve small bidding games, resource allocation problems and binary payoff examples. For options, learn intrinsic value, payoff at expiry and how changing volatility affects a price estimate.

  5. Run a complete simulated round

    Give your team a limited research window, submit one algorithm and one manual answer, and then review the result. Record one fix to test and one assumption that remains uncertain.

EverythingQuant practice benchmarks

  • Market reading: interpret 10 fictional order books, identify the best bid and ask, and calculate permissible order size without a position error.
  • Programming: implement a strategy that handles missing products, empty books and both long and short limits before moving to statistical models.
  • Backtesting: compare at least three parameter choices on separate datasets rather than selecting a winner solely from training data.
  • Manual decisions: solve five expected value or allocation problems, showing the objective and the constraints before choosing the answer.
  • Submission review: rehearse the final upload and manual entry with another teammate checking input values, output format and file version.

These are preparation targets created by EverythingQuant, not thresholds imposed by IMC. The aim is to make basic mechanics automatic so you can spend the competition analysing the new products and incentives.

Common mistakes that cost teams points

  • Overfitting the sample market: choosing parameters that win on one price path but fail when the final simulation behaves differently.
  • Ignoring inventory: accumulating a large position for small apparent spread profits and taking an outsized loss when the price moves.
  • Skipping manual optimisation: spending the entire round on the Python model while leaving a separate profitable decision unexplored.
  • Misreading a fee: treating additional market access as free liquidity rather than comparing its estimated benefit with the price of obtaining it.
  • Submitting too late: replacing a working version with an untested algorithm just before the final processing deadline.

IMC Prosperity frequently asked questions

Is IMC Prosperity happening now?

Prosperity 4 ended on 30 April 2026. The official competition page is the place to check the next registration window.

Can beginners join Prosperity?

Yes. Basic Python and trading knowledge are useful, but the tutorial and wiki teach the program interface, trading terminology and exchange mechanics.

Can I compete alone?

Yes. Prosperity 4 accepted solo participants as well as teams containing up to five people.

Does Prosperity require real money?

No. Trading occurs in a simulated market using virtual currency, rather than through a real brokerage account.

Is IMC Prosperity an online assessment for jobs?

No. Prosperity is a trading competition and learning experience, separate from the interviews and assessments used to hire employees.

How is Prosperity scored?

Algorithms and manual choices generate simulated trading profits. In Prosperity 4, the first two rounds were qualifiers, and the final phase was ranked using simulated account balances after its three rounds.

Can a winning team receive the whole prize?

The first overall prize in Prosperity 4 was USD 25,000 per winning team, with the amount split equally among eligible members. The manual trading prize was a separate USD 5,000 award.

What language should I learn for Prosperity?

Python is the essential language for the algorithmic submission. Start with the Trader class, trading state, order book data and risk limits before building more complicated models.

Official resources and further reading

Use the competition's own materials for eligibility, technical interfaces and the rules of a particular edition. These sources also provide the best foundation for recreating historical challenges as practice exercises.

For a useful next project, reproduce one historical market in a local simulator and measure how your results change when the price path, spread, fill rate and position limit change. Keep the focus on a strategy you can explain and test rather than copying a leaderboard submission unchanged.

Join our Newsletter and Receive the Latest Updates!

Main Links

Trade Courses Assessments Interview Prep Contact Us

Social Media

Facebook Instagram YouTube

Legal

Terms and Conditions Privacy Policy Privacy settings

Talent Acquisition

Looking to hire exceptional quant talent?
See how we can help.

© 2026 EverythingQuant. All Rights Reserved.