Skip to content

Corporate Actions

Real markets are messy. Companies split their stock, pay dividends, merge with other companies, change their ticker symbols, and sometimes delist entirely. If a backtesting engine does not account for these events, the results can be wildly inaccurate.

Stratifyre automatically handles 70+ types of corporate actions so your backtests reflect what actually happened — not a sanitized version of history.

Consider this scenario: you are backtesting a strategy on Apple (AAPL) going back to 2010. Apple executed a 7-for-1 stock split in June 2014 and a 4-for-1 split in August 2020. Without adjustment:

  • Pre-2014 prices would appear to be around $90-100 (but the split-adjusted price was actually $600-700).
  • Position sizes, stop levels, and indicators would all be calculated on the wrong price scale.
  • Your total return calculation would be completely wrong.

Stratifyre handles all of this automatically. You see clean, adjusted data and the engine applies the correct adjustments behind the scenes.

Stratifyre recognizes and processes over 70 distinct corporate action types. Here are the most common categories:

What they are: A forward split (like 2-for-1) doubles the number of shares while halving the price. A reverse split (like 1-for-10) reduces shares and multiplies the price. The total value of your position does not change.

How Stratifyre handles it:

  • Historical price data is retroactively adjusted so charts and indicators are smooth and continuous.
  • If you have an open position when a split occurs, the share count and cost basis are adjusted proportionally.
  • Pending orders (stop losses, limit orders) are adjusted to reflect the new price scale.
  • Indicator calculations use the adjusted prices, so a moving average remains meaningful across the split date.

What they are: A company pays cash to shareholders, typically per share. On the ex-dividend date, the stock price typically drops by roughly the dividend amount.

How Stratifyre handles it:

  • If your strategy holds the stock on the ex-dividend date, the dividend is credited to your simulated cash balance.
  • Historical prices are adjusted so the ex-dividend price drop does not appear as a loss in your indicators or equity curve.
  • Dividend income is tracked separately in your performance reporting.
  • The Tax Analysis module classifies dividend income appropriately.

What they are: Instead of cash, the company issues additional shares. A 5% stock dividend gives you 5 additional shares for every 100 you own.

How Stratifyre handles it: Similar to splits — share counts are adjusted and historical prices are retroactively corrected.

What they are: One company acquires another. The acquired company’s stock may be converted to the acquirer’s stock, paid out in cash, or some combination.

How Stratifyre handles it:

  • Cash-only mergers: your position is closed at the acquisition price and proceeds are credited.
  • Stock-for-stock mergers: your position is converted to the new symbol at the specified ratio.
  • Mixed consideration (cash + stock): both components are processed appropriately.
  • The trade log records the merger as a distinct event so you can see its impact on your results.

What they are: A company changes its ticker symbol (for example, Facebook changed from FB to META in 2022).

How Stratifyre handles it: The engine treats the old and new symbols as the same continuous security. Historical data flows seamlessly across the name change, and open positions are updated to the new symbol.

What they are: A stock is removed from an exchange. This can happen due to bankruptcy, going private, regulatory action, or failure to meet listing requirements.

How Stratifyre handles it:

  • If your strategy holds a position in a delisted security, the position is closed at the last available price.
  • This is critical for realistic results — without delisting handling, strategies that buy cheap, declining stocks would never realize their losses because the stock simply disappears from the data.

What they are: A company separates a business unit into a new, independent company. Existing shareholders receive shares of the new entity.

How Stratifyre handles it: The engine allocates the spun-off shares to your account based on the distribution ratio and adjusts the parent company’s price to reflect the value transfer.

What they are: A company offers existing shareholders the right to buy additional shares at a discounted price.

How Stratifyre handles it: The engine adjusts historical prices to account for the value of the rights and logs the event in the trade record.

Beyond the common categories above, Stratifyre also handles:

  • Special dividends (one-time large payouts)
  • Return of capital distributions
  • Tender offers
  • Bankruptcy and reorganization events
  • Exchange transitions (moving from one exchange to another)
  • Warrant exercises
  • Conversion events (convertible bonds/preferred stock converting to common)
  • And many more — 70+ types in total

When corporate actions occur, Stratifyre retroactively adjusts all historical price data so your charts and calculations are consistent. This is called “adjustment” and it works as follows:

  • Split adjustment: If a 2-for-1 split happens, all pre-split prices are divided by 2. This way, a moving average calculation that spans the split date produces a smooth, meaningful result.
  • Dividend adjustment: Prices are adjusted by the dividend amount on the ex-date. This removes the artificial price drop that would otherwise distort indicators.

These adjustments happen automatically. You see clean, continuous price series on your charts, and all indicator calculations use the adjusted data.

When a corporate action occurs and you have pending orders (stop losses, limit orders, etc.), the engine automatically adjusts those orders to reflect the new price scale.

For example, if you have a stop-loss order at $50 and a 2-for-1 split occurs, the stop is adjusted to $25 so it triggers at the same relative level. Without this adjustment, your stop would either never trigger (if the price was cut in half) or trigger immediately (if only the order was left at the old level).

Survivorship bias is one of the most insidious problems in backtesting. It occurs when you only test on instruments that exist today — ignoring the ones that went bankrupt, were delisted, or were acquired along the way.

Suppose you want to test a strategy that buys the cheapest stocks in the S&P 500. If you use today’s S&P 500 list, you are only looking at companies that survived and prospered. All the companies that were in the S&P 500 in 2005 but later went bankrupt or were removed are excluded from your test. This makes the strategy look better than it actually would have performed.

Stratifyre maintains historical basket composition data — the actual list of components for major indices at each point in time. When you backtest a strategy on “S&P 500 stocks starting in 2005,” the engine uses the S&P 500 as it existed in 2005, including:

  • Companies that were later removed from the index.
  • Companies that were later acquired, merged, or delisted.
  • Companies that went bankrupt.

As you move forward through time, the composition updates to match what actually happened: new companies are added, departed companies are removed, and any corporate actions for individual components are handled as described above.

This means your backtest reflects reality — including the losers — not just the survivors.

How Corporate Actions Affect Your Backtest

Section titled “How Corporate Actions Affect Your Backtest”

Most of the time, corporate actions are handled invisibly — you do not need to think about them. But they can affect your results in a few notable ways:

  • Dividend income adds to your total return and may change the tax analysis. See Tax Analysis for details.
  • Splits should have zero impact on your P&L (they are cosmetic), but they test that your strategy’s absolute price levels are specified correctly.
  • Delistings can cause forced position closures, which may be losses. This is realistic and important — it prevents your backtest from ignoring bad outcomes.
  • Mergers can cause unexpected position changes. If your strategy is long a stock that gets acquired, the position may be closed or converted, and your strategy needs to adapt.
  • Trust the adjustments. Stratifyre’s corporate action data comes from institutional-grade sources. Do not manually adjust prices or positions — let the engine handle it.
  • Review the trade log. When a corporate action affects an open position, the event is logged in the trade log. Review these entries to understand how they impacted your results.
  • Use survivorship-bias-free universes. When testing strategies that select stocks from a group (top 10 by momentum, cheapest 20 stocks, etc.), always use historical composition data to avoid survivorship bias.
  • Check around major events. If you notice unusual behavior in your equity curve around a specific date, check the corporate actions log for that period. A large special dividend or a merger might explain an unexpected jump or drop.