Can anyone help me figure out why my spx closing price is off by between 1 and 100 cents on every bar. seems simple to just get the closing prices, yet none of them match either ToS or yahoo official spx close prices:

from QuantConnect.Data.Market import TradeBar
from QuantConnect import Algorithm, Resolution

class spx_closing_price_algorithm(Algorithm.QCAlgorithm):
    def initialize(self):
        self.set_start_date(2025, 1, 1)  # Start date: January 1, 2025
        self.set_end_date(2025, 1, 31)   # End date: January 31, 2025
        self.set_cash(10000)             # Set initial cash (not used for this purpose)
        
        # Add SPX index data (daily resolution)
        self.spx = self.add_index("SPX", Resolution.Daily).symbol
        
        # Log the symbol to confirm we're using the correct one
        self.log(f"Using symbol: {self.spx}")
        
        # Variable to store the previous day's close
        self.previous_close = None

    def on_data(self, data: TradeBar):
        # Check if we have SPX data for the current time
        if data.contains_key(self.spx):
            # Get the closing price
            close_price = data[self.spx].close
            
            # Log detailed information
            self.log(f"Date: {self.time.date()} | SPX Closing Price: {close_price} | Data Type: {type(data[self.spx])}")
            
            # Store the current close for the next iteration
            self.previous_close = close_price