A Global Navigation Satellite System, GNSS, receiver comprising a processing logic comprising: - a first computing logic configured to calculate a first location and a second location of the GNSS receiver, the first location being based on position data in a Position, Velocity and Time, PVT, vector, the second location being based on a result of an integration over time of velocity data in the PVT vector; - a second computing logic configured to estimate a first error budget of the first location and a second error budget of the second location and to cause the first computing logic to output a calculated location of the GNSS receiver as a weighted average of the first location and the second location, the first error budget being based on a preset value of a User Equivalent Range Error, UERE, and the second error budget being based on a preset value of a User Equivalent Range Rate Error, UERRE, wherein the processing logic is configured to input the preset values of the UERE and UERRE from tables stored in a memory contained or adjacent to the processing logic, wherein one or more of the first computing logic or the second computing logic are configured to calculate a first weight of the first location and a second weight of the second location in the calculated location based on the first error budget and the second error budget. - a first computing logic configured to calculate a first location and a second location of the GNSS receiver, the first location being based on position data in a Position, Velocity and Time, PVT, vector, the second location being based on a result of an integration over time of velocity data in the PVT vector; - a second computing logic configured to estimate a first error budget of the first location and a second error budget of the second location and to cause the first computing logic to output a calculated location of the GNSS receiver as a weighted average of the first location and the second location, the first error budget being based on a preset value of a User Equivalent Range Error, UERE, and the second error budget being based on a preset value of a User Equivalent Range Rate Error, UERRE, wherein the processing logic is configured to input the preset values of the UERE and UERRE from tables stored in a memory contained or adjacent to the processing logic, wherein one or more of the first computing logic or the second computing logic are configured to calculate a first weight of the first location and a second weight of the second location in the calculated location based on the first error budget and the second error budget. the first computing logic to output a calculated location of the GNSS receiver as a weighted average of the first location and the second location, the first error budget being based on a preset value of a User Equivalent Range Error, UERE, and the second error budget being based on a preset value of a User Equivalent Range Rate Error, UERRE, wherein the processing logic is configured to input the preset values of the UERE and UERRE from tables stored in a memory contained or adjacent to the processing logic, wherein one or more of the first computing logic or the second computing logic are configured to calculate a first weight of the first location and a second weight of the second location in the calculated location based on the first error budget and the second error budget.