Why calculated NDVI is different from the one downloaded from EOBrowser?

I see, I was interested in the example of the difference between the data downloaded from EO browser versus using the python client, though.

Are you using the same collection in both cases (either L1C or L2A)? EO browser has atmospherically corrected Sentinel-2 L2A selected by default.