## FAQ: Location Precision for Zmanim Calculations

While overly broad ZIP code based zmanim geolocation can be an issue in calculating zmanim accurately, going overboard in geolocation precision and accuracy for zmanim is a (harmless) waste of time.
Let’s start with the basics. Asking what the zmanim are for the USA is too broad of a location. Narrowing it down to a state is also too broad since zmanim at one side of the state are likely to be different than the other side. How small (or precise) does an area have to be for the zmanim calculated to be considered accurate? The location of zmanim are calculated based on degrees of longitude (east to west) and latitude (north to south).

The earth’s circumference at the equator is about 40,000 km (about 25,000 mi). There are 360 degrees of longitude around the world (The 0° line is centered on the Royal Greenwich Observatory in England, and longitude lines extend 180° to the west and -180° to the east). For simplicity we will deal with longitude degrees at the equator. If we divide the earth’s circumference by 360°, each degree of longitude will be 111 km (69 mi) apart. The sun’s path travels 1° of longitude in 4 minutes, so calculating zmanim with one degree accuracy (no decimal points such as the latitude of 40° and longitude of -74° for Lakewood, NJ, a point in the Atlantic about 3 mi off the coast of Toms River, NJ) results in zmanim accurate to 4 minutes in each direction or an 8 minute spread, not quite accurate enough to rely on. Moving to one decimal point will pinpoint the location for zmanim calculation to an accuracy of 11 km or 48 second accuracy. That is close to being accurate enough, especially given the inaccuracy of solar time calculations resulting from hard to predict refraction caused by varying atmospheric conditions. However, this should be avoided. Adding a second decimal point (such as the latitude of 40.09° and longitude of -74.22° for Lakewood, NJ – a spot at the edge of Lake Carasaljo in Lakewood) would have a precision of about 4 seconds, more than enough accuracy for zmanim.
A concrete example of how zmanim differ from place to place in a small area would be the difference between Beth Medrash Govoha (BMG) and the Westgate Bais Medrash in Lakewood. They are 2.7 km (1.69 mi) or a drop more than 0.01° apart and calculations show that there is about a 6 second difference in sunrise and sunset times between these two locations.

From time to time I am contacted by developers with zmanim related technical questions. Debugging their issues often requires information on the latitude and longitude that they are using to try and replicate the issue. Often the latitude and longitude are sent with multiple decimal points. The most extreme was 14 decimal points. To understand the ridiculousness of this level of precision, see the table below. To read more on the subject, see the Stack Exchange page Measuring accuracy of latitude and longitude? and the xkcd cartoon on the subject.

Decimal placesDegreesDistanceNotes
01111 kmA state or small country
10.111.1 kmCity
20.011.11 kmNeighborhood
30.001111 mA specific cul-de-sac
40.000111 mA corner of a house
50.000011.1 mA person in a room
60.00000111 cmA small siddur
70.00000011 cmThe size of Waldo on a page
80.000000011 mmA grain of sand
90.000000001111 μmThe width of a hair
100.000000000111 μmA grain of pollen
110.000000000011 μmA smoke particle
120.000000000001111 nmThe width of a COVID virus
130.000000000000111 nmA red blood cell
140.000000000000011 nmThe length your nails grow every second
150.000000000000001100 pmAn atom. If you need this precision, you probably belong in Lawrence Livermore

## Decimal Versus Sexagesimal Based Zmanim Location Errors

There are two different ways to reference latitude and longitude. One uses a sexagesimal (60 based) system of degrees indicated by a ° symbol, minutes indicated by a ' and seconds indicated by ". Think 60 minutes in an hour, 60 seconds in a minute and apply it to latitude numbers. The other system uses the more familiar decimal based format. For example The main BMG beis hamedrash is located at latitude 40.096, longitude -74.222 in degree/decimal. In degrees, minutes and seconds this would be latitude 40° 5′ 46″ N, longitude 74° 13′ 19″ W.

I was recently shown a zmanim calendar that seemed to be slightly inaccurate. Researching the issue showed that the intention was to generate the calendar for the location XX° 46′ N XX° 15′ W (latitude and longitude degrees are masked), but was mistakenly calculated for XX.46° -XX.15°. This confusion of the sexagesimal based system with the decimal based system is not uncommon. The discrepancy in sunrise and sunset in the calendar versus what it should have been was about 80 seconds in the summer. If someone were to confuse XX° 9′ with XX.9° (for both latitude and longitude) you have a much more significant relative error of 0.75°. The impact of this type of mistake is mostly caused by longitude, but latitude changes impact zmanim calculations as well. This 0.75° mistake can result in a zmanim discrepancy of up to five and a half minutes at the latitude of Lakewood, NJ. As confirmed by Dr. Noson Yanofsky, this scenario has the most extreme error, while 10′ confused with 0.10° has the least significant error of 0.066°.

An interesting variant of such a mistake is calculating a zman for a depression angle (how far the sun is below the horizon) that is based on degrees and minutes using degree/decimal. An example is mistakenly calculating tzais of 7° 5′ , or 7.083° as 7.5°. See Hazmanim Bahalacha vol II p. 520 footnote 21 for a case where this mistake happened. It should be noted that many are of the opinion that a depression angle of 7.5° is the proper time of tzais. This was used in the first ever known printed calendar calculated based on depression angles. It was published in תקכ״ו / 1766 by Raphael Levi Hannover. See Hazmanim Bahalacha p. 524 for a picture of the luach and a list of other calendars that calculate tzais as 7.5°.

To answer the question in the image caption above, the time in a regular 12 hour / duodecimal based clock would be 7:40. With 10 hours instead of 12, each decimal hour on this clock is 72 minutes of regular time. Therefore 6 hours = 432 minutes. Add ~19/50 decimal minutes that are equivalent to ~28/72 regular clock minutes and you end up with 460 minutes after noon/midnight, or about 7:40 🙂.

## ZIP Codes and Zmanim – A Practical Approach

As mentioned in the ZIP Codes and Zmanim – Use With Care article, using ZIP codes to geolocate your position for zmanim can be problematic when the zip code is large. With large zip codes, zmanim on the west side of the zip code can be quite a bit later than zmanim on the east side of the zip. Recently, Lazer Guttman created an SMS based zmanim service at (914) 409-9394 that provides a warning when zmanim are requested for large zip codes. This approach is probably the best that can be done. I would recommend that any zmanim service that is zip code based (and does not have a map to allow zeroing in to a precise location), use this data to provide a warning whenever the zip codes is wider than 0.5° of longitude. A degree of longitude spans 4 minutes (regardless of the latitude), so half of a zip code with half of a degree would span 2 minutes (one minute east or west of the center). It should be noted that Canadian postal codes are much smaller than zip codes (usually covering one side of a city block), and most likely do not face the same issue. A spreadsheet listing all zip codes with the maximum longitude and latitude distances (in degrees), was generated by Avraham David Gelbfish from OpenDataDE that is based on US Census data. His Python source code is below.

```import json
import csv
​
jsonfile = open("tl_2019_us_zcta510/out2.geojson")
​
def getop(geolist, operation, longitude = None, latitude = None):
if isinstance(geolist[0], list):
answers = [getop(geo, operation) for geo in geolist]
if latitude is None:
latitude = lat
if longitude is None:
longitude = lng
latitude = operation(latitude, lat)
longitude = operation(longitude, lng)
return latitude, longitude
else:
return geolist
​
with open("out2.csv", "w") as csvfile:
zwriter = csv.writer(csvfile)
zwriter.writerow(["Zip", "Latitude max distance", "Longitude max distance"])
for zipcode in zipcodes["features"]:
zip = zipcode["properties"]["ZCTA5CE10"]
geometry = zipcode["geometry"]["coordinates"]
maxlat, maxlng = getop(geometry, lambda x, y: x if x > y else y)
minlat, minlng = getop(geometry, lambda x, y: x if x < y else y)
dlat = abs(maxlat - minlat)
dlng = abs(maxlng - minlng)
zwriter.writerow([zip, dlat, dlng])
```

## Inflight Zmanim Calculations – Why So Complex?

Determining zmanim times while on an airline flight is rather complex compared to calculating it for a fixed location. Some of the complexity involves:

• Where you are currently located
• Direction of travel / flightpath

The above 3 variables impact the calculation of what the zmanim are in your current location and where you will likely be when various zmanim are met.

Surprisingly, the hardest part is figuring out your current location. The shortest point between 2 points on the globe is the great circle route. Though it is the shortest path, airliners rarely fly this way. To take advantage of prevailing winds such as the Gulf Stream, or to avoid bad weather, airlines often fly much longer routes and as a passenger you often do not know exactly where you are.
Yes, the airline shows you a nice location map, but getting your exact coordinates from the map is not something that they usually supply. From a practical perspective, many people on domestic and short international flights will manage to figure out davening times by themselves. As a general rule of thumb, it is time for Shacharis when the sun rises and time for Maariv when it gets dark. Please keep in mind that most poskim are of the opinion that we use zmanim at sea level elevation, or ground level, and not the 37,000 foot elevation of the flight. This elevation results in a difference of approximately 20 minutes in sunrise and sunset times. Not sure when Mincha time is? Wait until shortly before sunset. Just keep in mind that when flying due east (such as a flight from NY to Israel), you are flying in the opposite direction as the sun and the time for davening is compressed. While you may expect sof zman krias shema to be 1/4 of the way into the day, in this case the davening window is compressed into a much shorter time. The real complexity is in flights that cross the halachic dateline, polar flights and to a lesser degree, cross-Atlantic and Pacific flights. This article will not delve into the halacha of in-flight zmanim, but solely on the technical aspects of figuring out the zmanim times.