Long ago, when memory space was at a premium, price fields were represented as whole numbers which then had to be converted to a decimal or fractional representation. The conversion method was specific to the type of market. The native prices for some markets, such as grains, were in fractions. Others, like stock indices, were priced in decimals. CSI assigned a specific “conversion factor” to each market. These conversion factors are applied to the whole number values to produce decimal values. Additionally some markets use an Implied 5 boolean flag which indicates a 5 should be added to the end of some prices ending in 2 or 7. This logic only applies to legacy customers who receive data in points format. New formats already have all prices and strikes converted to decimal.
CSI Conversion Factors Explained
Conversion factors can apply to stock/dividend/capital gain prices, futures prices, and options prices (not strikes). These values are stored in the corresponding factsheet metadata. All dividends and capital gains are +3 CF. The following shows how to convert points prices to decimal.
For positive conversion factors, the conversion process is a straightforward shifting of the decimal place.
| 0 = no modification | |
| +1 = division by 10 | 4321 = 432.1 |
| +2 = division by 100 | 4321 = 43.21 |
| +3 = division by 1,000 | 4321 = 4.321 |
| +4 = division by 10,000 | 4321 = 0.4321 |
| +5 = division by 100,000 | 4321 = 0.04321 |
| +6 = division by 1,000,000 | 4321 = 0.004321 |
Negative conversion factors are used to convert to fractional values.
| -1 = right-most digit represents 8ths | 4321 = 432 1/8 |
| -2 = right-most two digits represent 16ths | 4311 = 43 11/16 |
| -3 = right-most two digits represent 32nds | 10424 = 104 24/32 |
| -4 = right-most two digits represent 64ths | 10352 = 103 52/64 |
| -5 = right-most three digits represent 128ths | 104090 = 104 90/128 |
| -6 = right-most three digits represent 256ths | 104212 = 104 212/256 |
| -7 = right-most three digits represent 32nds and halves of 32nds | 103225 = 103 22.5/32 |
| -8 = right-most three digits represent 32nds and eighths of 32nds | 104222 = 104 22.25/32 |
| -9 = right-most three digits represent 64ths and quarters | 104222 = 104 22.25/64 |
Further explanation for –7, -8, -9 conversion factors:
These conversion factors were implemented to conform to the CBT method of displaying prices for certain instruments. For conversion factor –7, the final digit will always be 0 or 5. For conversion factor –8, the final digit will always be 0, 1, 2, 3, 5, 6, 7 or 8. For conversion factor -9, the final digit will always be 0, 2, 5, or 7. In each of these cases, the final digit represents the decimal value of the fractional portion, such that 0=.000, 1=.125, 2=.250, 3=.375, 5=.500, 6=.625, 7=.750 and 8=.875
Examples for conversion factors –7 and -8:
116060 means 116 and 6.000/32 (116.1875)
116061 means 116 and 6.125/32 (116.19140625)
116062 means 116 and 6.250/32 (116.1953125)
116063 means 116 and 6.375/32 (116.19921875)
116065 means 116 and 6.500/32 (116.203125)
116066 means 116 and 6.625/32 (116.20703125)
116067 means 116 and 6.750/32 (116.2109375)
116068 means 116 and 6.875/32 (116.21484375)
Examples for conversion factor –9:
116060 means 116 and 6.00/64 (116.09375)
116062 means 116 and 6.25/64 (116.09765625)
116065 means 116 and 6.50/64 (116.1015625)
116067 means 116 and 6.75/64 (116.10546875)
Implied 5s
The “Implied 5” factsheet flag indicates whether a “5” should be appended to the end of a future/option price when it ends in 2 or 7. This should be applied after the conversion factor is applied. For example, assuming a conversion factor of 0, a price of 502 becomes 5025, and a price of 500 becomes 5000.
“Implied 5 strikes” is the same as implied 5 prices but for option strikes.
Divide strike
The divide strike flag in the options factsheet indicates the amount to divide the strike by to convert it to decimal (similar to conversion factor but for strikes). The following formula applies.
Decimal price = Points price / (10^DivideStrike)
Example 1: If Divide strike is -1 and points strike is 200, then the decimal value is 2000.
Example 2: If Divide strike is 1 and points strike is 200, then the decimal value is 20.
