Back-testing helps investors test their ideas before they invest. When combined with a portfolio tracker, it offers investors the ability to control risk as well as determine how ‘active’ or ‘passive’ they want to be, as such it is an invaluable tool.

However, care needs to be taken when handling financial data, as the way in which it is treated can have a large impact on results. This document describes how our engine handles the data we source from S&P Global Capital IQ, particular attention is given to the following corporate events:

  1. Stock splits/consolidations
  2. Cash dividends
  3. Stock dividends
  4. Spin-offs
  5. Reverse takeovers


The database we use is a point-in-time fundamental database from S&P Global Capital IQ. A point-in-time database is financial market data that was known to investors at that point in time.

It contains companies which have failed, merged or have been acquired. Afterall, the companies on the market today are the ones which have survived. Using a point-in-time database mitigates the risk of survivorship bias.

In addition, the majority of financial data investors use has been retrospectively adjusted. This is to make it easier to analyse. However, when it comes to back-testing, care must be taken if it is to use restated and/or adjusted financial data as it can introduce lookahead bias.

To mitigate the risk of lookahead bias we use ‘as reported’ financial data. However, adjustments have been made to price, dividends and share count to ensure consistency for certain corporate events. This document explains how those corporate events are handled by our engine, the assumptions we’ve made, and what would have happened in reality.


Stock splits

Our engine uses ‘split-adjusted’ price and share count data. You can see below what would have happened in reality versus the calculations our engine makes; while the price differs, the value and return to the investor remains the same.

On June 4, 2014, Apple conducted a seven for one stock split. An investor who held 3 shares the day before the split, holds 21 shares the day after the split and as a result the price is also divided by seven. However, you’ll see that our engine continuously holds 21 shares at the split-adjusted price.

What would have occurred:

Date Action Shares Price Value
4/06/2014 BUY 3 $644.84 $1,934.52
8/06/2014 Apple conducts a seven for one stock split
10/06/2014 SELL 21 $94.25 $1,979.25


What our engine does:

Date Action Shares Price Value
4/06/2014 BUY 21 $92.12 $1,934.52
8/06/2014 Apple conducts a seven for one stock split
10/06/2014 SELL 21 $94.25 $1,979.25

Cash dividends

We handle cash dividends separately from price. Dividends are paid when the dividend payment actually happened on a split-adjusted cents per share basis according to the number of shares that portfolio holds.

The table below highlights the difference between what would have actually happened and what our engine does. You can see below that while the share count and dividend payment differs, the dividend payment remains the same.

Scenario Date Dividend Shares Payment
Engine 15/05/2014 0.47 21 $9.87
Actual 15/05/2014 3.29 3 $9.87


Stock dividends 

The following table describes a 1-for-200 stock dividend payment along with a 2-for-1 stock split. The result of the trade is the same in our engine because the share price has been adjusted to include both the split and dividend share payment.

Looking at the example below, we have a company trading at $54 and an investor purchasing 200 shares. The value of this trade is $10,800. The company then issues a 2:1 split while at the same time it offers a stock dividend of 1 share for every 200 shares held.

Our engine uses split-adjusted prices and share count data, which means the value of the dividend is factored into the price but the overall value of the trade remains the same.

What would have occurred:

Timeline Actions Shares Price Value
Buy date Buy 200 $54.00 $10,800
A 2:1 split/a 1:200 stock dividend 1
Sell date Sell 402 $27.00 $10,854


What our engine does:

Timeline Actions Shares price Value
Buy date Buy 402 $26.87 $10,800
A 2:1 stock/a 1:200 stock dividend n/a
Sell date Sell 402 $27.00 $10,854



Our engine treats spin-offs as special dividends. We assume the investor sells the shares in the spun-out company and looks to reinvest the proceeds elsewhere.

The table below describes how our engine handles this situation. On the 1st of August 2013, Amcor Limited (ASX:AMC) announced the spin-off of their Packaging Distribution business. The new company (Orora Limited) was then listed on the ASX. The transaction was a one for one share issuance.

On the spin-off date, our engine records a special dividend of $1.16. This is the price per share of the spun-out company (Orora Ltd) and as it was a 1:1 spin-out that was the value of the dividend.

Spin-off events Date Shares Price Dividend Value
Special dividend 3/01/2014 1000 $1.16    $1,160
Holdings 3/01/2014 1000 $10.60 $10,600
Holdings 2/01/2014 1000 $10.59 $10,590


Reverse takeovers

Our engine will sell its holdings on a reverse takeover. This is because the company which is listed immediately after this event is completely different to the company before the event. The engine will consider the financial metrics of the new company. If this new company meets the buy criteria of the strategy, it will purchase shares in the new company. If it doesn’t, it won’t.

An example of a reverse takeover

On November 3, 2016, prior to the closing of the share exchange, Biodel Inc (listed on the NASDAQ Capital Market) completed a one-for-thirty reverse stock split.  This transaction meant that Biodel was acquired by Albireo Pharma, a private company who wanted to list (and take advantage of the intellectual property Biodel held).

As a result of the reverse stock split, every 30 shares of Biodel common stock outstanding immediately prior to the share exchange was combined and reclassified into one share of Albireo common stock.

Our engine sells the stock it holds on the day of the reverse takeover, like this:

Date Action Price Shares Value
31/10/2016 Buy $0.61 3,278 $1,999.58
3/11/2016 Sold (due to reverse takeover) $0.65 3,278 $2,130.70


It will look at the new company’s financial criteria on the 4th of November (i.e. Albireo Pharma, Inc). And check to see if this new company triggers a “buy” trade. If it doesn’t, the engine will look reinvest the proceeds in another company which meets the criteria of the strategy.