← Back to blog Two Sigma OA Real Questions 2026|Quant Engineer + Modeler Dual-Track OA Assist Playbook
Two Sigma

Two Sigma OA Real Questions 2026|Quant Engineer + Modeler Dual-Track OA Assist Playbook

2026-05-24

Two Sigma's 2026 spring / summer OA stays true to form: plenty of time, plenty of traps. Quant Engineer / Quant Researcher / Modeler all ship on CodeSignal but the surfaces diverge. Based on 1point3acres + Discord reports, this guide breaks down IPO allocation, drainage simulation, and time-series regression, with full solutions and an OA assist playbook.

Two Sigma OA Snapshot (2026)

Dimension Detail
Platform CodeSignal (in-house variant)
Duration 90–120 minutes
Questions 2 (independently scored)
Focus Algorithms + literal business rules
Grading Auto + hidden corner cases + complexity caps
Pass rate ~28% per 1point3acres
Cooldown 12 months (cross-role separate)

Track 1: IPO Allocation

Problem

n clients submit IPO demand demand[i]; total available S < sum(demand). Allocate by proportion + lot rounding + leftover by timestamp round-robin.

Python Solution

def ipo_allocate(demands, ts, S, lot=100):
    n = len(demands)
    total = sum(demands)
    base = [(d * S) // total // lot * lot for d in demands]
    leftover = S - sum(base)
    order = sorted(range(n), key=lambda i: ts[i])
    i = 0
    while leftover >= lot and i < n:
        idx = order[i]
        if base[idx] < demands[idx]:
            base[idx] += lot
            leftover -= lot
        i += 1
    return base

Complexity: O(n log n). Most common bug: leftover not fully redistributed when lot doesn't divide S.

Track 2: Drainage Simulation

Problem

Given a terrain grid heights[][] with water water[][], simulate connected regions draining simultaneously until empty. Return per-step total water.

Python Solution (Union-Find + topological descent)

from collections import defaultdict

def drain_simulate(heights, water):
    R, C = len(heights), len(heights[0])
    cells = [(heights[r][c], r, c) for r in range(R) for c in range(C)]
    cells.sort()
    parent = {}

    def find(x):
        while parent.get(x, x) != x:
            parent[x] = parent.get(parent[x], parent[x])
            x = parent[x]
        return x

    def union(a, b):
        ra, rb = find(a), find(b)
        if ra != rb:
            parent[ra] = rb

    pool = defaultdict(int)
    series = []
    for h, r, c in cells:
        parent[(r, c)] = (r, c)
        pool[(r, c)] = water[r][c]
        for dr, dc in [(-1, 0), (1, 0), (0, -1), (0, 1)]:
            nr, nc = r + dr, c + dc
            if 0 <= nr < R and 0 <= nc < C and (nr, nc) in parent:
                union((r, c), (nr, nc))
        series.append(sum(pool.values()))
    return series

Complexity: O(R·C·α(R·C)). Hidden cases: uniform-height grid, single row / column, zero-water cells in connectivity logic.

Track 3: Time-Series Regression (Modeler)

Problem

Given a time series prices[] and a factor matrix factors[][] (k factors per time step), compute OLS beta and in pure numpy.

Python Solution

import numpy as np

def ols_with_intercept(X, y):
    X = np.column_stack([np.ones(len(X)), X])
    beta = np.linalg.solve(X.T @ X, X.T @ y)
    y_hat = X @ beta
    ss_res = ((y - y_hat) ** 2).sum()
    ss_tot = ((y - y.mean()) ** 2).sum()
    return beta, 1 - ss_res / ss_tot

Trap: np.linalg.inv blows up when X.T @ X is near-singular — use solve. Skipping the intercept column drops R² noticeably.

Two Sigma OA Frequency

Track Frequency Primary Roles Common Trap
IPO allocation ★★★★★ Quant Engineer Lost leftover
Drainage simulation ★★★★ Quant Engineer Connectivity boundary
Time-series OLS ★★★★ Modeler Missing intercept
Factor correlation ★★★ Modeler Numerical stability
Quote parsing ★★ Quant Engineer Missing field

OA Assist Playbook

What oavoservice OA assist gives you

A Two Sigma business-glossary list

Two Sigma prompts are dense with domain terms: IPO allocation, basis point, lot size, water level, permeability. We maintain a business-glossary checklist so candidates can parse the prompt fast instead of re-reading. OA assist members get it directly.

Add WeChat Coding0201 for pricing and scope.


FAQ

What languages does Two Sigma OA accept?

All CodeSignal-supported. ~70% of community reports use Python (Modeler-heavy with numpy).

Is 120 minutes enough for 2 questions?

Yes, but prompts are long and rule-heavy — budget ~8–10 minutes just to read each. Plan for 50 minutes per problem (including reading) and 20 minutes for corner-case verification.

Are Quant Engineer / Modeler / QR OAs the same bank?

No: Quant Engineer = algorithms + business rules; Modeler = numpy + time series; QR = probability + factors.

Cooldown after a fail?

12 months. Cross-role (Engineer ↔ Modeler) typically uses a different pool.


Preparing for Two Sigma / Citadel / Millennium / Jane Street / HRT?

oavoservice tracks Two Sigma / Citadel / Millennium / Jane Street / HRT / DE Shaw end-to-end. Mentors come from live Quant Engineer / Researcher teams and provide question bucketing, 120-minute timed simulation, business-glossary list, and pod fitting scripts.

👉 Add WeChat: Coding0201 for the Two Sigma question bank and OA assist plan.


Contact

Email: [email protected]
Telegram: @OAVOProxy