Accuracy first

Accuracy Lab

Orbit's positions and rise/set times, compared hour by hour against NASA/JPL Horizons. Tests, tolerances and misses are shown as they happen, including the ones we haven't fixed yet.

Last hourly run: — UTC · Next run in —
Try a location

Check any location

Enter a place or coordinates to see Orbit's calculations compared with the reference for that spot. Each check uses only the place you enter.

Results for the place you enter appear here.
Your permissions

Nothing below is on by default. The standard checks use no personal location. Each choice is separate and can be changed at any time.

What happens to a location you enter

Your location is rounded to about 1 km in your browser, then used to run that check. The rounded location is sent to NASA/JPL Horizons to work out the reference positions.

If you tick the box above, the rounded location and results are kept as an anonymous sample.

If you tick the random-checks option, we may keep the error numbers from a random share of checks, for our own records. Those records have no coordinates, no timestamp more precise than the day, and only a broad region (a 10° grid cell). They can't be traced back to a visitor. Leave it unticked and we keep nothing from your checks except what the page needs to show you the result.

A location is never added to the hourly runs. Using "Use my location" asks your browser's permission first. You can type a place instead.

Live checks

Solar system

Sun, Moon and planets. Each hour, Orbit's own calculation is compared with JPL Horizons for the same time and place.

Time standard: UTC

ObjectPosition error (last hour)Position error (24 h median)Rise/set error (24 h)Status
Sun———Waiting for first run
Moon———Waiting for first run
Mercury———Waiting for first run
Venus———Waiting for first run
Mars———Waiting for first run
Jupiter———Waiting for first run
Saturn———Waiting for first run
Uranus———Waiting for first run
Neptune———Waiting for first run
How a status is decided

Pass: within the tolerance for that object. Watch: outside it once in the last 24 hours. Fail: outside it for three hours running. Tolerances are set before the first run and printed here. [Tolerances to be confirmed.]

Daily checks

Deep-sky objects

Deep-sky objects are fixed points, not moving bodies, so they are not compared with JPL Horizons. Once a day, the position of every object in Orbit's deep-sky catalog, the 110 Messier objects and the 100 objects on the NGC shortlist, is checked against SIMBAD, the CDS astronomical object database. Any object that disagrees is checked by eye in Aladin, the CDS sky atlas, to confirm it is the object we think it is. The NGC positions were taken from SIMBAD when they were added, so for those the check confirms the app still ships SIMBAD's position rather than measuring it independently.

Waiting for the first daily check.

ObjectNameDifference from SIMBADStatus
Waiting for the first daily check.

Fine print: a "Watch" on a large object doesn't mean Orbit sends you to the wrong place. Objects without a sharp centre, especially open clusters, can show bigger differences: the Beehive (M44) is about 95′ across, so a 22′ difference still lands well inside it in binoculars, a low-power eyepiece or a smart telescope's view. It does mean Orbit's stored centre for that object is off, and it gets corrected in the next app update.

How a status is decided

Pass: Orbit's position is within 5′ of SIMBAD's. [Tolerance to be confirmed.] Orbit stores catalog positions to about 1′, and large objects such as M24 or M45 have loosely defined centres, so differences of a few arcminutes are expected. Open clusters show the largest differences because they are big, scattered groups of stars with no sharp centre, and catalogs place their centres differently. M44, for example, is about 95′ across.

Live checks

Comets

Orbit tracks the 60 most recently observed comets from NASA/JPL's Small-Body Database. Each hour, the 10 checked longest ago are compared with JPL Horizons, so every tracked comet is re-checked about every 6 hours.

Under development. New comets are discovered every year, and each one needs observation data before its orbit can be calculated accurately. Until a comet has enough data, its position is an estimate and may be off by more than the figures shown for established comets. Calculations are shown for every tracked comet regardless, with its data status listed beside it.
CometData statusSky position errorCatalog position errorOrbit data ageLast checked (UTC)Grade
Waiting for first run.
How a grade is decided

Grades use Orbit's own comet scale, applied to the larger of the sky-position and catalog-position errors: Excellent up to 6′, Very good up to 15′, Good up to 30′, Review up to 60′, Needs review above that.

Orbit data age is how old the comet's orbital elements were at the check. Orbit moves each comet along the orbit those elements describe, but the planets, mostly Jupiter, slowly bend comet orbits, so old elements drift. To keep them current, the Accuracy Lab fetches fresh orbital elements from JPL Horizons for 5 comets every hour, so every tracked comet's orbit is refreshed about every 12 hours, and the app uses those fresh orbits. A comet only shows an older orbit if its refresh hasn't succeeded yet.

Sky position error is where Orbit places the comet in the sky compared with Horizons. Catalog position error compares the underlying right ascension and declination. Data status is Orbit's own read of how well observed the comet's orbit is: High, Good, Preliminary or Low.

Under development

Sky darkness (skyglow)

Orbit estimates sky brightness from satellite night-light data and terrain, then calibrates it against real sky-quality meter (SQM) readings. It is tested on sites the model has never seen.

Current status: in development. Values are estimates, not on-site measurements. Results are summarized by sky type and version when a release is ready.

Results table: to appear with the next model release.

Sample log

Sample size and accuracy

Every check that feeds these numbers is kept in a separate log, apart from the hourly results. The page shows totals only, never individual checks or locations.

SourceSamplesMedian errorShare within tolerance
Global reference sites (10 places)———
Visitor checks, shared———
Visitor checks, random (error numbers only)———

Total samples: —

Showing rules. A row or region appears only once it has at least 30 samples. Smaller groups show "not enough samples yet," so no single visitor's check can be picked out. Medians are shown, not single results.
How the sample log is kept

The sample log is a separate table from the hourly results. Shared checks keep the rounded location; random checks keep only error numbers and a 10° region. Totals are calculated from the log each time the page loads. The log is never published as raw rows.

How the checks work

  • Reference, solar system and comets: NASA/JPL Horizons, the same reference used in published ephemeris work.
  • Reference, deep-sky objects: SIMBAD (CDS) for positions and identifiers, checked visually with Aladin (CDS). Horizons does not cover these.
  • Same inputs: both Orbit and Horizons use the same time (UTC), the same place and the same object. Nothing is tuned between runs.
  • No atmosphere in the comparison: planet and comet positions are compared without atmospheric refraction on either side. Refraction depends on the night's temperature and air pressure, and different models disagree most near and below the horizon, so including it would measure the models rather than Orbit's calculation. (Changed 2026-10-23; the 24-hour medians include older refracted results until 2026-10-25.)
  • Hourly runs: each run stores the result. The page shows the latest hour, a 24-hour median, and a per-release summary.
  • Frozen tolerances: tolerances are published before the first run and changed only with a new version note.
  • Versions: every table shows the Orbit version it applies to.
  • Global reference sites: besides the hourly checks from Pennsylvania, the Sun, Moon and planets are checked from ten places around the world, each about every five hours: Tromsø, Reykjavík, Honolulu, Quito, Nairobi, Tokyo, Sydney, Cape Town, Cerro Pachón and Ushuaia. They cover both hemispheres, the far north and south, the equator and high altitude.
  • Request limits: JPL does not publish a rate limit for Horizons (checked 2026-10-22). We set our own: each run makes one request per object per place, results are cached for an hour, and visitor checks are capped per visitor and per hour across the site. If we need more, we ask JPL first.

Known limits

  • Position and rise/set results are checked against Horizons, not against telescopes. Your sky can still differ from the model because of horizon, weather or equipment.
  • Dwarf planets and asteroids are not validated yet.
  • Sky-darkness estimates are approximate and reported as ranges. Bortle 1 is never shown.
  • An hourly check shows that day's conditions, not long-term accuracy. Use the 24-hour and per-release summaries for that.