A method of locating the position of a satellite in a satellite positioning system comprising: storing (S514, S515) at a terminal, satellite positioning data for a first specified time period, said satellite positioning data comprising ephemeris data, and a set of parameters, wherein said parameters comprise coefficients describing a curve representing the error of satellite positions estimated from the satellite positioning data for said first specified time period at other time periods; and responsive to an event at a later time, calculating, at the terminal, the satellite position at the later time based on the stored satellite positioning data and on the stored set of parameters; said method being characterized by further comprising updating said stored satellite positioning data and said stored set of parameters by: receiving at the terminal, satellite positioning data for a second specified time period over a communications channel; calculating the actual positions of the satellite at a plurality of prior time periods from the stored satellite positioning data and the stored set of parameters; storing at the terminal, the satellite positioning data for said second specified time period as updated satellite positioning data; calculating an estimated position for each of said plurality of prior time periods using said satellite positioning data for the second specified time period; calculating the error between the estimated positions and the actual positions at each of said prior times; and fitting a curve to said errors and storing the coefficients describing said curve as an updated set of parameters. storing (S514, S515) at a terminal, satellite positioning data for a first specified time period, said satellite positioning data comprising ephemeris data, and a set of parameters, wherein said parameters comprise coefficients describing a curve representing the error of satellite positions estimated from the satellite positioning data for said first specified time period at other time periods; and responsive to an event at a later time, calculating, at the terminal, the satellite position at the later time based on the stored satellite positioning data and on the stored set of parameters; said method being characterized by further comprising updating said stored satellite positioning data and said stored set of parameters by: receiving at the terminal, satellite positioning data for a second specified time period over a communications channel; calculating the actual positions of the satellite at a plurality of prior time periods from the stored satellite positioning data and the stored set of parameters; storing at the terminal, the satellite positioning data for said second specified time period as updated satellite positioning data; calculating an estimated position for each of said plurality of prior time periods using said satellite positioning data for the second specified time period; calculating the error between the estimated positions and the actual positions at each of said prior times; and fitting a curve to said errors and storing the coefficients describing said curve as an updated set of parameters. receiving at the terminal, satellite positioning data for a second specified time period over a communications channel; calculating the actual positions of the satellite at a plurality of prior time periods from the stored satellite positioning data and the stored set of parameters; storing at the terminal, the satellite positioning data for said second specified time period as updated satellite positioning data; calculating an estimated position for each of said plurality of prior time periods using said satellite positioning data for the second specified time period; calculating the error between the estimated positions and the actual positions at each of said prior times; and fitting a curve to said errors and storing the coefficients describing said curve as an updated set of parameters.