I recently purchased SPX options data from the CBOE. Normally, if the data is OK and the Put-Call parity holds, one should expect to correctly imply ZC (Zero Coupon bond) prices and forwards by performing a linear regression on all available collar prices (long put and short call of the same strike), given a fixed maturity $T$.

This works indeed very well, until we come close to maturity. More specifically, the linear regression gives wrong results for collars on their last trading day. For example, if I perform linear regression on all the collars available at date 2005-02-17 (Thursday) which expire on 2005-02-19, I get an annualized risk-free rate of 84.85% (or a ZC being worth ~99.5297%), which is clearly wrong. 

What I find weird is that this behavior happens only one day before the 3rd friday. Is there something I am missing about how the prices behave when close to expiration ?

**EDIT :**

I'm adding here a plot of how of the term structure of the implied risk-free rate (that I have smoothed using a Nelson-Siegel fit but the behavior is present regardless of whether I smooth the curves or not) evolves as we approach the third Thursday 2005-02-17 :

[![Term structure of the implied risk-free rate when close to expiration](https://i.stack.imgur.com/0JWZm.png)](https://i.stack.imgur.com/0JWZm.png)

When we are a little far from that date, we get more coherent term structures :

[![Term structure of the implied risk-free rate when sufficiently far from expiration](https://i.stack.imgur.com/K89Xx.png)](https://i.stack.imgur.com/K89Xx.png)