A working catalog of the problems investment managers hire me to solve. Drawn from three decades of buy-side and sell-side work and six production platforms. Each entry is specific, production-grade, and something I have built before or would build again tomorrow. Organized by the eleven disciplines that comprise a modern investment-management technology stack.
Scope. Hedge funds, RIAs, family offices, multi-strategy shops, boutique asset managers, emerging managers. Equity, options, futures, FX, cash fixed income, securitized credit, credit derivatives, interest-rate derivatives, inflation, TRS, repo, and crypto. Specialist in credit and structured derivatives.
Format. Each entry states the problem as a PM, COO, or CCO would phrase it, names the failure mode that makes it hard, and describes the solution at the level of detail that determines whether it actually works in production. Contact: sms@gyreresearch.com.
Problem. Vendor A's ISIN-to-CUSIP mapping disagrees with Vendor B's. Sector classifications drift. Corporate-action sequences arrive out of order, get replayed, and leave the book in a state the custodian does not recognize. Every quarter ends with a Friday-night fire drill reconciling the security master against the PB before the fund admin closes.
Solution. A bi-temporal security master with every attribute (identifier, classification, terms, issuer hierarchy) versioned on both transaction-time and valid-time axes. Upstream feeds (Bloomberg, Refinitiv, S&P/IHS, MarkIt, FactSet) reconcile via a deterministic priority matrix per attribute class, with a continuous anomaly detector that flags attribute flips (e.g., sector changed twice in a week) for human review. Every downstream consumer reads a stable as-of view; back-populating a correction becomes a one-row write, not a weekend.
Payoff. Position and P&L reports stop disagreeing across systems. Corporate-action breaks drop to near zero.
Problem. Run a backtest today; run the same backtest next month; get different results — because the vendor silently overwrote a price three years ago when the issuer restated earnings. Compliance can't reproduce the trade decision that led to a client complaint because the underlying data has moved.
Solution. A price store that is append-only on the transaction-time axis. Every mark is stored with its observation timestamp, source, and revision chain. Backtests and attribution reports declare an as-of timestamp; two runs with the same as-of produce bitwise-identical results. Revisions are preserved but never overwrite the historical record a decision was made against.
Payoff. Auditor reproducibility. Regulators' favorite question becomes trivial.
Problem. The prospectus benchmark is "S&P 500." The client's statement shows tracking error the PM can't explain. The discrepancy turns out to be the benchmark provider's special-dividend methodology, their return-to-baseline convention, and a corporate-action timing offset. The PM has been measured against a benchmark they're not actually computing.
Solution. Benchmark constituency and returns loaded daily, not month-end, with the provider's own methodology encoded (special dividends, divisor adjustments, return-to-baseline on index events). Validated nightly against the provider's published composite return; any drift >1bp triggers an alert.
Payoff. Tracking error becomes a measure of portfolio decisions, not benchmark mismodelling.
Problem. Splits, spins with cash-and-stock consideration, Dutch tenders, rights offerings, CVRs with contingent payouts, reverse mergers with multi-step treatment. Each has its own accounting and tax logic. Most OMS and accounting systems get three right and four wrong; the wrong ones show up six months later as a restated NAV.
Solution. An event-driven corporate-action engine that expresses each action as a structured term sheet (declaration date, ex-date, record date, pay date, consideration mix, proration logic, elective window) and applies it deterministically to every affected position. Cash-and-stock spins generate two lot rows with cost-basis allocation per IRS §358. Rights offerings split basis under §307. CVRs remain as a tracked contingent receivable until the trigger event.
Payoff. Cost basis reconciles to the PB the morning after the event.
Problem. The CIO asks "do we have enough cash to cover Friday's capital call and still meet margin if vol spikes 30%?" No system can answer it because cash is held at three PBs, margin is computed under three different methodologies, and pending settlements, coupons, dividends, option expiries, and FX forwards all hit different dates.
Solution. A forward-looking cash ladder that projects 30/60/90 days of expected cash flows by currency, prime broker, and strategy — with branching scenarios for vol-shock margin. Coupons and dividends come from the reference-data layer; settlements from the trade blotter; option expiries and auto-exercise from the derivatives book.
Payoff. Liquidity decisions move from Friday-afternoon panic to Monday-morning planning.
Problem. The same net exposure costs materially different initial margin at different prime brokers. The fund is paying PB fees and giving up capital efficiency because nobody has a clean view of where each position costs the least.
Solution. A margin attribution engine that computes marginal and incremental margin contribution per position at each counterparty under their actual methodology (Reg-T, TIMS, STANS, SPAN, house model). The engine proposes transfer sequences that respect CSA thresholds, minimum-transfer amounts, and margin-period-of-risk constraints.
Payoff. Measurable reduction in firm-level initial margin. Treasurer gets a weekly optimization report instead of a gut feel.
Problem. The PM enters a parent-level order for 100,000 shares allocated pro-rata across three funds. Partial fills arrive, prices move, a corporate action hits mid-settlement, and by the end of the day the three fund-level positions don't match the parent any more. The operations team spends Friday unwinding the drift by hand.
Solution. An allocation engine that tracks parent-order state and reallocates every fill in real time under a declarative policy (pro-rata by AUM, priority-first, round-lot preserving). Corporate actions replay through the parent order first, then propagate. All allocations carry an immutable link to the parent order for audit.
Payoff. Book-level positions reconcile to the parent order at any point in the trading day.
Problem. The client mandate caps turnover at 60% annualized. The portfolio has drifted from model. A naive rebalance would blow through the budget in one month. The PM needs to rebalance in the direction of the target while staying under budget, and the trade list is produced today.
Solution. A quadratic-program rebalancer that minimizes tracking error to the target subject to turnover, transaction-cost, position-size, concentration, and sector-neutrality constraints. Constraints are expressed declaratively and can be swapped without rewriting the optimizer. Output is an executable trade list, not a target weight vector.
Payoff. Drift closes monotonically under the budget instead of in one blown-through quarter.
Problem. Rebalancing generates realized losses and gains. Which lots to sell? HIFO harvests the most losses but risks wash sales. FIFO is safe but inefficient. Specific ID is optimal but requires cross-account visibility and wash-sale detection the OMS doesn't have.
Solution. A tax lot engine that runs inside the rebalance optimizer. For every proposed sale, it evaluates all nine lot-relief methods (FIFO, LIFO, HIFO, MinTax, LTFO, STFO, HCLT, HCST, specific ID) under the live wash-sale graph across linked accounts (taxable, IRA, spouse) and scores each option by after-tax P&L. Selection logic is mandate- and carryforward-aware.
Payoff. Measurable basis-point improvement in after-tax return. Documented per-lot reasoning, not a black box.
Problem. The mandate is "60% S&P 500 + 30% Bloomberg Agg + 10% MSCI EM, rebalanced quarterly, with a 2% tilt toward low-volatility." Vendor platforms express the 60/30/10 but lose the rebalance cadence and the tilt. Tracking error measurement becomes incoherent.
Solution. A composite benchmark builder that expresses blend weights, rebalance cadence, drift tolerance, overlay tilts, and currency-hedging overlay as first-class inputs. The blend is evaluated daily with its own return, volatility, and constituent decomposition — not approximated from the component indices after the fact.
Payoff. Tracking error and attribution are computed against the benchmark the client actually contracted for.
Problem. The book holds 100 shares of SPY, 5 SPX calls, 2 SPX puts, a VIX futures position, and a short TRS on the sector. What is the real net equity exposure? Most systems report notional; the PM needs delta-equivalent and dollar-delta.
Solution. A single exposure engine that consumes every position, resolves its underlying, computes position-level delta (and gamma, vega, theta at the same time) from the options pricer, and aggregates to book level in both share-equivalent and dollar-delta terms. Currency- translated to base. Decomposable by underlying, by sector, by factor.
Payoff. The PM asks "what's my real exposure?" and gets a number that matches the P&L move when the market moves.
Problem. The optimizer outputs 847 orders. The broker rejects 123 of them for under-minimum-ticket, 56 for non-round-lot, and 41 for broker-specific allocation rules. The operations team spends three hours patching the list by hand.
Solution. A trade-list post-processor that is declarative about constraints (minimum ticket, round-lot rounding per venue, broker allocation rules per sleeve, cash sweep rules) and solves the rounding problem globally — minimizing incremental tracking error introduced by rounding, not rounding each trade independently.
Payoff. Broker rejections drop to near zero. Rounding cost is measured and minimized, not absorbed as friction.
Problem. The backtest universe is today's S&P 500. The strategy looked great. When run on the actual membership of the index over the backtest period — including every name that was added, removed, or delisted — it loses 200 bps. The backtest was measuring what worked on survivors.
Solution. Universe construction that uses historical membership on each rebalance date, retains delisted names with their delisting reason and final price, and correctly handles mergers (survivor rolls, acquirer positions), spin-offs (position split), and bankruptcy (mark-to-recovery). Universe tables are bi-temporal with the security master.
Payoff. Backtest results stop being optimistic about the past.
Problem. The backtest assumes 5 bps round-trip. Live trading shows 18 bps. The strategy is not actually profitable. The backtest cost model missed market impact at the participation rates the strategy requires.
Solution. A cost model that decomposes transaction cost into commission + half-spread + temporary impact + permanent impact, each calibrated from live execution data against participation rate, ADV, volatility, and spread. Almgren-Chriss permanent-impact calibration, square-root temporary-impact, venue-specific spread distributions. Same cost model runs in backtest and pre-trade.
Payoff. Backtest P&L tracks live P&L within model error, not within a factor of three.
Problem. The live strategy is underperforming the backtest by 150 bps/year. Is that alpha decay? Market regime change? A bug in live execution? Nobody knows, and nobody can defend shutting it down or doubling up without knowing.
Solution. A drift decomposition engine that runs the backtest forward on live data and compares position-by-position and day-by-day against the live book. Drift is decomposed into data (reference data revisions), cost (model vs. actual slippage), execution (fill-vs- benchmark), and residual (unexplained alpha decay). Each component has a signed contribution.
Payoff. The PM can answer the alpha-decay question with a number and a breakdown, not a hunch.
Problem. The firm is claiming GIPS compliance. The verifier arrives, asks for the composite definition, the inception date, and every §1.A disclosure traced back to source. Half the documentation is in spreadsheets and PDFs; the composite construction logic lives in a senior analyst's head.
Solution. A GIPS engine where composite definition is a structured object (eligibility criteria, inclusion cadence, significant-cash-flow threshold, carve-out policy), every §1.A disclosure is a required field with provenance, and composite returns are computed from the underlying portfolios — not imported from a separate spreadsheet. Firm definition, composite list, and hierarchy maintained in the same store.
Payoff. Verification goes from three-week fire drill to a directed query.
Problem. Equity attribution works — Brinson-Fachler with sector buckets resolves allocation vs. selection cleanly. Fixed income doesn't, because return is driven by the curve, spread, carry, and roll-down in addition to selection. Standard attribution assigns everything to "selection" and loses the story.
Solution. A fixed-income attribution engine that decomposes return into duration, curve twist, curve butterfly, spread, carry, roll-down, and selection within sector/rating/duration buckets. Keeps the arithmetic additive and the unexplained residual near zero. Multi-period Cariño-linked.
Payoff. The FI PM gets the same attribution story structure as the equity PM, with buckets that actually map to the decisions being made.
Problem. Daily arithmetic allocation and selection effects sum to a number that doesn't equal the monthly geometric total. The client notices. The PM can't explain it without apologizing for arithmetic.
Solution. Cariño smoothing (or Menchero, or GRAP, depending on preference) applied consistently at every linking level. Residual is reported as a named quantity, not absorbed. The client sees one reconciled attribution table across daily/monthly/YTD/ITD horizons.
Payoff. "Why doesn't this add up?" becomes a defensible answer instead of a stumble.
Problem. The underlying book is long/short equity. A short-volatility overlay (short strangles) is layered on top. The client's attribution report shows one blob of return. The PM needs to show the underlying selection alpha separately from the overlay P&L.
Solution. Attribution that treats the overlay as a distinct sleeve with its own sector/strategy mapping, runs attribution on each sleeve, and links them geometrically at the portfolio level. Greek-attribution (delta, gamma, vega, theta decomposition of the overlay's P&L) is computed natively from the options pricer.
Payoff. The client understands what the overlay earned, separate from what the underlying earned.
Problem. The fund is base-USD, invested 30% in EUR assets, with a rolling FX forward hedge at 80% ratio. The client's statement shows "local return" and "base return" that differ by amounts that don't tie to the hedge P&L. The treasurer has a reasonable question and no way to answer it.
Solution. Karnosky-Singer multi-currency attribution, which decomposes total return into market return, currency return, and hedge effect. Hedge ratio drift is tracked position-by-position and the hedge P&L is separately attributable.
Payoff. Local return + currency effect + hedge effect = base return, and every term is explained.
Problem. The CRO wants historical VaR. The CIO wants parametric. The regulator wants Monte Carlo. The fund admin reports one number and nobody agrees it's right. Every time someone asks "what's our VaR?" the follow-up is "under what methodology?"
Solution. A VaR engine where methodology (historical / parametric / Monte Carlo), lookback window, confidence level, holding period, and factor-covariance method (sample / Ledoit-Wolf / factor-model) are orthogonal parameters on the same book. Every VaR run is reproducible from its parameter set; methodology comparison is built-in.
Payoff. The VaR conversation becomes about risk, not about whose methodology is "right."
Problem. The portfolio has 0.9 beta in up months and 1.3 beta in down months. Vendor platforms report a single beta of 1.05 and miss the tail. The PM has been marketing a defensive profile the portfolio doesn't actually have.
Solution. Separate beta estimation on up and down samples, with confidence intervals, at multiple horizons (daily, weekly, monthly), against primary and secondary benchmarks. Rolling window tracks regime shifts. Tail-beta (conditional on benchmark >2σ drawdown) reported alongside unconditional.
Payoff. The PM finds out the tail story before the client does.
Problem. Barra's factor set doesn't match the mandate. The fund is long-short micro-cap quality; Barra's quality factor is built against S&P 500 and doesn't explain anything in the book. Vendor factor returns are computed on a universe that doesn't overlap.
Solution. A factor-model framework where factors are declarative (factor name, mimicking portfolio definition, universe filter, rebalance cadence) and estimated on the user's universe, at the user's cadence, with the user's constraints. Factor returns, exposures, and specific risk are produced on the same framework that vendor models use, so the downstream attribution/risk pipeline is unchanged.
Payoff. Factor risk decomposition actually explains the book.
Problem. "If I had to liquidate the book in five days, what would it cost me?" Nobody on the team has a number. The CRO has been estimating by dividing position notionals by ADV and multiplying by spread.
Solution. A liquidation cost engine that takes a target horizon, participation-rate cap, and venue-universe, and solves for the optimal liquidation schedule per Almgren-Chriss. Output is dollar cost, day-by- day schedule, and sensitivity to participation rate. Stressable under volatility-shock scenarios. Runs intraday on demand.
Payoff. Liquidity risk becomes a reported number, not a guess.
Problem. The firm is approaching a margin limit at one PB. Moving the position to another PB moves the constraint under a different methodology. The binding constraint at the firm level is unknown.
Solution. A capitalization stress engine that computes initial and variation margin for the full book under every applicable methodology (Reg-T, TIMS, STANS, OCC portfolio margin, SPAN, CFTC risk-based) and finds the binding constraint at firm, fund, strategy, and account level. Stresses include vol-up-30%, correlation-break, and historical-replay scenarios. Three of my past implementations have been FINRA-approved at separate broker-dealers.
Payoff. The capital decision stops being a hunch; the binding constraint is a named scenario with a named counterparty.
Problem. The fund has CDS, IRS, and TRS exposure to six dealer counterparties under six CSAs. Each CSA has its own threshold, MTA, rounding, and margin-period-of-risk. The true counterparty credit exposure (EPE, ENE, PFE) is what the board asks about; the collateral team reports gross notional.
Solution. A counterparty-exposure engine that consumes every derivative trade, the CSA terms per counterparty, and the collateral held, and computes EPE, ENE, PFE, and CVA on a Monte Carlo forward-simulation basis. Wrong-way risk flagged when correlation between counterparty spread and exposure is positive.
Payoff. Counterparty risk reporting matches what banks compute, which is what the board expects to see.
Problem. The 75% test, the 5%/10% tests, and the issuer-aggregation rules (parent/subsidiary, guarantor) are checked monthly by spreadsheet. Between checks, a corporate action could have pushed the fund out of compliance for two weeks without anyone knowing.
Solution. A compliance engine that runs a full-portfolio sweep of every §5(b)(1) rule daily, with issuer aggregation walked through the security master's issuer-hierarchy graph (parent, subsidiary, guarantor, related-party). Violations are dated to the first observation and alerted in real time with a remediation-trade suggestion.
Payoff. Compliance goes from monthly snapshot to continuous enforcement.
Problem. Post-trade compliance catches violations after the order is filled. By then the fund has already taken the position and has to unwind at a loss. The trading desk needs a pre-trade check that evaluates the full rule set without blocking the trade flow.
Solution. A pre-trade compliance layer inside the order flow that evaluates every applicable rule (mandate, regulatory, restricted list, concentration, leverage) against the post-trade state of the book, in a hot path. Rule evaluations are cached and invalidated granularly; p99 response time stays under a handful of milliseconds. Human-readable reason string returned for every block.
Payoff. Violations are prevented, not unwound.
Problem. The SEC asks why a specific trade was allowed. The compliance officer goes to the log and finds "PASS 2024-03-12 14:52 UTC" with no inputs captured. Nobody can reconstruct the rule state at that moment.
Solution. An append-only evaluation log where every compliance check writes the rule version, the full input vector (position state, proposed trade, reference data as-of), the decision, and the timestamp. Log is signed and stored alongside backups. Queryable by trade ID, rule, account, date range.
Payoff. Regulatory reconstruction is a directed query; the log itself becomes the audit artifact.
Problem. PB shows 10,000 shares. Accounting shows 10,000 on a different lot structure. Attribution thinks it's 10,000 on a third cost basis. Everything matches at the security level and nothing matches at the lot level; the weekend reconciler is doing it by hand.
Solution. Lot-level reconciliation against the PB's lot-structure feed, with matching rules per security type (specific ID, FIFO, average cost) and a discrepancy log keyed to the event chain that produced the divergence (trade, corporate action, settlement, adjust- ment). Each discrepancy links back to the specific lifecycle event.
Payoff. Reconciliation reports name the cause, not just the symptom.
Problem. The custodian sends a 40-page PDF with scanned tables, inconsistent column order, identifiers that vary across sections, and a narrative corporate-action supplement. The operations team keys the data in by hand and drops 2% of it.
Solution. LLM-based structured extraction with grounding against the security master: every extracted row resolves to an internal security ID before it is accepted, unresolvable rows are queued for human review, and extracted values are validated against the prior day's state. Confidence scores drive auto-accept vs. review.
Payoff. Keying hours collapse. Human reviewers look at exceptions, not at the whole statement.
Problem. PB, custodian, fund admin, and PMS all report slightly different truths. The COO sees four position reports and can't say which one is the book. The fund admin closes on their version; by the time the PM sees it, it's too late.
Solution. A continuous reconciliation engine that ingests all four position feeds on their native cadences, resolves to a single canonical state of the book per day, and flags discrepancies with counterparty attribution. End-of-day close is a published canonical state, not a choice among conflicting reports.
Payoff. The book has one state at any point in time, and the disagreements are a queue, not a panic.
Problem. The fund's accounting system posts "buy" and "sell" as single-line entries. When the auditor asks for the debit-credit pair on a specific corporate action, nobody can produce it; it was implicit. The audit turns into a reconstruction exercise.
Solution. A double-entry general ledger where every lifecycle event (buy, sell, dividend, coupon, corporate action, currency retranslation, fee, mark-to-market) maps to an explicit journal template with debit and credit accounts. 20+ event templates cover the full universe of buy-side events. Trial balance closes daily; any non-zero trial balance is a named break with a responsible event.
Payoff. Every GL balance is traceable to a specific economic event, not a batch-job side effect.
Problem. The fund holds callable bonds, OID notes, and distressed credit. Accruals (OID, market discount, bond premium) are computed monthly and booked in a lump. IFRS 9 three-stage impairment is done year-end by the auditor. Interim NAVs are wrong by enough to matter.
Solution. Daily accrual of OID (constant yield), market discount (straight-line or constant yield, client election), bond premium amortization, and IFRS 9 ECL with stage transitions (12-month vs. lifetime) driven by a credit-trigger framework. Each accrual posts to the GL with full journal visibility.
Payoff. Interim NAVs match year-end NAVs; no year-end surprise.
Problem. Multi-class fund with rolling subscriptions, HWM per investor, hurdle rate on one share class, and performance fees crystallized at year-end. The accounting team computes fees in a spreadsheet. Every investor asks a slightly different question and the answer takes a day to assemble.
Solution. A performance-fee engine that tracks HWM per investor (not per share class), applies hurdles and caps per mandate, supports equalization for subscriptions between crystallization dates, and accrues unpaid fees as a liability on the GL. Investor-level fee statements are a query, not a recompute.
Payoff. Fee disputes are resolved by pointing at the ledger.
Problem. MSCI says 8.2. Sustainalytics says 24.5 (inverse scale). ISS says "Prime." The client asks for a single portfolio ESG number. The analyst averages the three and produces something that means nothing.
Solution. A weighted reconciliation of vendor scores normalized to a common scale, with vendor weights per issuer driven by coverage quality. Issuer-level scores aggregate to portfolio level with the weighting the client's mandate specifies (market value, carbon intensity, revenue). Each portfolio number decomposes back to issuer and vendor contributions.
Payoff. A single ESG number that is defensible, not an average of apples and oranges.
Problem. The fund holds private credit, off-benchmark munis, and emerging-market sovereigns. No third-party ESG vendor covers them. The ESG overlay is simply silent on half the book.
Solution. LLM-based ESG scoring from primary documents (prospectus, issuer disclosures, regulatory filings) with traceable evidence: every score is backed by citations to specific passages, scores are calibrated against rated comparables, and the model's confidence is reported alongside the score.
Payoff. The mandate's ESG policy applies to the whole book, not just the covered half.
Problem. The PM realizes a loss in the taxable account. The spouse's IRA buys the same security within 30 days. The loss is disallowed. The accounting system, which sees only the taxable account, reports the loss as harvested. Tax time brings a surprise.
Solution. A wash-sale engine that operates on the linked-account graph (taxable, IRA, spouse, trust), applies §1091 across all linked accounts, and identifies substantially identical securities (SI) per the issuer and terms, not just CUSIP. Disallowances cascade to adjusted basis and holding-period carry.
Payoff. The realized-loss report matches what the CPA produces.
Problem. Futures and non-equity index options are §1256 contracts, marked to market at year-end with 60% long-term / 40% short-term treatment. The accounting system books the positions at cost through year-end and the tax team handles §1256 in a spreadsheet. Intra-year tax-efficiency decisions are blind.
Solution. Native §1256 handling in the accounting engine, with daily MTM for tax purposes separate from economic MTM, 60/40 character attribution at each position, and year-end carry-forward tracking. Tax-aware P&L is available any day, not just year-end.
Payoff. Tax-efficiency decisions use a real number, not an estimate.
Problem. The book has 200 positions at unrealized losses. Naive harvesting (sell all losers) violates the mandate, triggers wash sales, and exhausts short-term capacity that would have been useful later. The PM defaults to "harvest the biggest loss" and leaves basis points on the table.
Solution. A harvesting optimizer that scores every candidate sale by after-tax impact (short vs. long-term character, wash-sale probability given the reinvestment universe, mandate tilt after the sale, carry-forward utilization). Proposes a ranked list with explicit opportunity cost vs. alternatives. Runs as a pre-trade what-if and as an end-of-quarter report.
Payoff. Measurable after-tax return improvement, documented per position.
These are problems I have solved before and will solve for your firm. Scope ranges from a focused 4–8 week build to a multi-quarter platform engagement. I work with firms directly and, where it fits, through Gyre Research.
Last reviewed: 2026-05-01