1. A method comprising, by one or more computing systems: receiving, from a service, a request for a location prediction for a user; accessing one or more real-time location signals, received within a predetermined time span from a time that the request for the location prediction was received from the service, and one or more aggregated location signals, each comprising one or more previous location signals, received before the predetermined time span; generating a plurality of current location predictions from the one or more real-time location signals and the one or more aggregated location signals; calculating a single location prediction for the user from the plurality of current location predictions; and sending, in response to the request, the single location prediction for the user to the requesting service.