Stock Split

KODIAK Derivatives supports stock split operations by allowing customer to register a stock split in the backoffice ui and then the daily batch run will calculate and update relevant fields in the affected forward contracts.

Backoffice UI

In the backoffice ui displayed below, the user must supply the following parameters:

  • Symbol that is being split
  • Declaration date of the split
  • Ex-Split date of the split
  • Split ratio, values larger than 1 for forward splits, values lower than one for reverse split. See below for forward vs. reverse splits


Batch job calculations

StockSplit job is triggered in Kodiak Derivatives Batch console application by passing "-stocksplit" as an argument.

When a stock split record is saved in the Backoffice portal it creates a line in the StockSplit table in the database with a flag "Processed" equal to false.

A Stock Split Job (SSJ) applies stock splits to open contract in the following way:

  • SSJ selects all unprocessed splits with ex-split date today
  • SSJ selects all open contracts
  • SSJ iterates through each split applying it to any matching contract
  • A matching contract is contract.IsClosed == False and split.Symbol == contract.Symbol and split.ExSplitDate > contract.DateCreated
  • If a matching open contract is found it applies the split in the following way:
    • contract.DirtyPrice = contract.DirtyPrice / split.Ratio
    • contract.Quantity = contract.Quantity * split.Ratio
    • contract.DirtyPriceIncludingFees is then reevaluated with new DirtyPrice and Quantity using ForwardContractsCalculator
  • After each run through open contracts, each split.Processed is set to True and saved in database, preventing it from being used again.

Forward vs Reverse split

A forward split is when a company decides to divide their existing shares into multiple shares. A common split ratio would be for instance 2-for-1 which would double the number of shares in the company. When applying forward splits in backoffice the Split Ratio must be an rational number and Split Ratio > 1.

A reverse split is when a company decides to reduce their existing shares into fewer shares.  A common split ratio would be for instance 1-for-2 which would half the number of shares in the company. When applying reverse splits in backoffice the Split Ratio must be an rational number and 0 < Split Ratio < 1.