Very possibly lag forgiveness.
Problems with game timestamps

Games always seem to last a little bit longer than time stamps suggests, I am guessing lag / lag forgiveness.
From what I have seen , the the difference is typically around 20 seconds for rapid games, but it can be close to a minute if not more. It's rarely less than 5 seconds, and it's never 0 or below.
I'm working on a program/webpage capable of simulating games in real time using their PGN (I know there are several out there). The problem I'm facing is that when I extract the timestamps through the API and then sum them up to calculate the total game time — without considering increment time — and compare it with the 'real' time of the game by recording the screen during gameplay, the time difference is too large. For example, in a 3+1 game that theoretically lasted 7:57, the actual game lasted almost 20 seconds longer (the game ended in checkmate, so there's no issue with resignation time, etc.). Does anyone know what could be causing this issue? Thanks in advance.