# How to synchronize put and call option-data?

I recently retrieved a large amount of European option data, for call and put prices, from OptionMetrics. Doing so for the same time period I get a file consisting of

62558 rows of call prices & 62557 rows of put prices

Additionally, both files contain on each row some characteristics such as

• The option ID
• The date of the price
• The expiration data of the option
• Strike price

As the option ID's do not match between the call and put options, I am wondering what the best way is to synchronize these data sets? This is needed for instance to calculate the pull-call parity; in that case I need for every call price a corresponding put price.

My suggestion is to look at the strike price, date of option and expiration date and when those match to treat the put and call option as similar, i.e. they belong together. I tried this and immediately noticed that in some cases the corresponding strike price is different for the one or other, even when the dates and expiration dates match.

• What are other ways to match the put and call data?
• As the number of rows didn't match, some call options will not have a corresponding put price or vica versa, why is this?
-
In reality you won't have exact match between call and put. You could send this question to support@optionmetrics.com and they would look why there is no corresponding put to a certain call contract. –  Eli Apr 26 at 13:51

If you load the table above into any RDBMS that supports SQL, the query you could use would be:

SELECT DISTINCT A.OptionID AS CallID, B.OptionID AS PutID
FROM OPTION_PRICE A JOIN OPTION_PRICE B
ON A.Strike = B.Strike AND
A.Expiration = B.Expiration AND
A.Date = B.Date AND
A.SecurityID = B.SecurityID
WHERE A.CallPut = 'C' AND B.CallPut = 'P'


This maps call option IDs to put option IDs.

-