Why does the estimated time keep changing?

The short answer: the estimated time is a forecast, not a promise, and it often does not exist at all until shortly before departure. That is normal — here is how to read it.

Two different times on the same row

Trafikverket's data separates two things that are easily confused: the scheduled time — the original, planned time that applies from the outset — and the estimated time, a forecast that is updated as the train actually moves. This site shows both: the scheduled time is fixed, the estimated one is the one that moves.

A missing estimate is normal, not a fault

The forecast only appears once it can actually be made — that is, when the train is close enough in time for a calculation to mean anything. A measured example: a query for the next morning's departures, made the evening before, returned an estimated time for none of 29 departures. Not one of them was wrong or delayed — the forecast simply did not exist yet. So if this site shows no estimated time for a departure far ahead, that means "no forecast yet", not "guaranteed on time" and not "something is wrong".

Why it can jump a minute either way

Once the forecast exists it is refined as the train moves, and it is normal for it to be adjusted by a minute or so between updates — that is noise, not a real delay. For exactly that reason, this site only counts a departure as "delayed" when the difference is at least three minutes. The exact estimated time is always shown regardless, but the warning colour does not come on for a one-minute adjustment that corrects itself anyway.

What you can rely on

The closer to departure, the more reliable the forecast — by then it is based on where the train actually is, not just on the timetable. Long before departure, a missing forecast is nothing to worry about; close to departure, a shown forecast is the best available estimate, but still an estimate, not a guarantee.