Solar Panel Tilt Angle Calculator

Solar Panel Tilt Angle Calculator

Find the best tilt for solar panels from your latitude: the fitted annual optimum, winter and summer tilts, the tilt that faces the noon sun on any date, seasonal adjustments, roof pitch conversion and row spacing for a ground mount. Sun geometry at solar noon, not an energy simulation.

Every figuretap a card to copy its value

Tilt through the year

Noon sun on the key dates

Noon sun altitude = 90 − |latitude − declination|, and the tilt that faces the noon sun is 90 − altitude. The annual tilt is the fitted equation of Jacobson and Jadhav (2018), and winter and summer tilts average the noon sun tilt over the half year around each solstice. Row pitch = length × cos(tilt) + length × sin(tilt) × cos(sun azimuth − panel azimuth) ÷ tan(sun altitude). This is sun geometry and a fitted annual optimum, not an energy simulation: use NREL PVWatts for kWh. The CSV, image and printed report contain the values you entered, nothing preloaded.

How to use this tool

Choose what to work out: the panel tilt angle or the row spacing for a ground mount. For the tilt, type your latitude in decimal degrees, such as 45 or 45.95, and set N or S, or pick a city to fill both. The goal is the best fixed tilt for the year unless you change it: winter, summer, the tilt that faces the noon sun on a date, or settings for adjusting twice or four times a year. If the panels do not face due south (due north in the southern hemisphere), enter how far they are turned and to which side. A roof pitch, typed as rise per 12 or as degrees, is converted both ways and compared with the best tilt.

The input people most often get wrong is the hemisphere. Panels in the northern hemisphere face south and in the southern hemisphere face north, and the fitted equation is a different curve on each side of the equator. Sydney entered as 33.87 N gives 28.7° facing south, where the correct entry of 33.87 S gives 29.5° facing north. The tilt barely changes but the panels would face the wrong way. The row spacing mode asks for the panel length along the slope, its tilt and the solar hours that must stay unshaded, and it reports the pitch from the front edge of one row to the front edge of the next.

What the calculation is doing

Everything starts with the sun’s declination, its angle north or south of the equator, which swings between +23.44° at the June solstice and −23.44° in December. The tool computes it from the NOAA solar calculator equations, built on Jean Meeus’s Astronomical Algorithms, at 12:00 UT on the date. At solar noon the sun stands due south in the northern hemisphere at an altitude of 90 − |latitude − declination|, and a panel faces it squarely when its tilt from horizontal is 90 minus that altitude, which is |latitude − declination|. At the equinoxes that is the latitude itself, in December it is the latitude plus 23.44°, and in June the latitude minus 23.44°.

A single fixed tilt has to compromise between those three, and the best compromise depends on more than geometry: how much light each season delivers and how clear the sky is. For that the tool uses the fit of Jacobson and Jadhav (2018), a cubic in latitude fitted to optimal tilts from NREL PVWatts at weather stations: tilt = 1.3793 + φ(1.2011 + φ(−0.014404 + φ × 0.000080509)) in the northern hemisphere, with a second cubic in the southern. The winter and summer tilts average the noon facing tilt over the half year between the equinoxes, and the four seasonal settings average it over the quarter year centred on each solstice and equinox.

A panel turned by an azimuth angle γ from due south needs a flatter tilt to face the noon sun: atan(cos γ × tan tilt). Row spacing uses the sun’s altitude α and azimuth A at each minute of your window. The pitch is L cos β + L sin β × cos(A − panel azimuth) ÷ tan α for panel length L and tilt β, and the largest value in the window is reported, on level ground and with the sun above 1°. None of this is an energy simulation. It is sun geometry at solar noon plus a fitted annual optimum, and NREL PVWatts is the tool for kWh.

Two panel diagram from the calculator: on the left a side view at 45 degrees north of a panel tilted 33.6 degrees with the noon sun 21.6, 45.0 and 68.4 degrees high on December 21, March 20 and June 21 and 34.8, 11.4 and 12.0 degrees off square to the panel, and on the right the best annual tilt against latitude from 0 to 70 degrees north with the fitted curve, the tilt equal to latitude line and 26 published city optima, which agree near 21 degrees and are 8.5 degrees apart at 40 degrees and 21.0 degrees apart at 60 degrees
The latitude rule of 45° is the one dotted line in the left panel that points at the sun on the equinox, so it is square twice a year and 23.4° short of square in December. The fitted 33.6° gives up the December sun to sit closer to the long summer days, and the curve on the right shows how the gap between the two grows with latitude.

Why the fitted tilt is lower than your latitude

The latitude rule has a tidy geometric reason: it points the panel at the sun on the equinoxes, halfway between the winter and summer extremes. What it does not know is that the year is not weighted evenly. Days are longer around the summer solstice, the sun is higher and the sky is often clearer, so in many climates more of the year’s light arrives from a high sun than from a low one. Jacobson and Jadhav’s cubic captures that from PVWatts runs. It is a fit and not a derivation, so read what the numbers show: at 51° N the rule says 51° and the published optimum for London is 34°, for Calgary 45°. The fit gives 36.0° for London and 35.9° for Calgary.

Two limits keep this from being a strong statement about energy. First, being off square costs little near square and more far from it: the beam cosine factor of an 11.4° miss is 0.980, of a 34.8° miss 0.821. That is geometry for the sun beam at solar noon, not a loss figure for the whole year. Second, the fit stops where its data stop: the paper’s figure covers about 0° to 65° N and 0° to 50° S, and the tool warns beyond that. Where energy numbers are needed, the one solid published figure is that optimally tilted panels receive about 1.19 times the sunlight of horizontal panels, averaged over the world, with 32.4 percent more output at Calgary and 14.6 percent more at Beek in the Netherlands (Jacobson and Jadhav, 2018).

Tilt by latitude: the fit against the rules of thumb

Northern hemisphere latitudes from 0° to 65°. The tilts in the last four columns are averages of the noon facing tilt over the half year between the equinoxes, next to the plus and minus 15 rules they are meant to imitate. Rule minus fit shows how far the latitude rule sits above the fitted optimum: it stays within 2.2° out to 25° and reaches 24.3° at 65°. South of the equator use the same numbers with the panels facing north, but the fitted column differs by up to about 1.2 degrees at 40° because the southern cubic is a separate fit.

LatitudeFitted annualLatitude ruleRule minus fitWinter half yearLatitude + 15Summer half yearLatitude − 15
0° N1.4°0.0°−1.4°14.6°15.0°0.0°0.0°
5° N7.0°5.0°−2.0°19.6°20.0°0.3°0.0°
10° N12.0°10.0°−2.0°24.6°25.0°1.3°0.0°
15° N16.4°15.0°−1.4°29.6°30.0°3.1°0.0°
20° N20.3°20.0°−0.3°34.6°35.0°5.8°5.0°
25° N23.7°25.0°1.3°39.6°40.0°10.0°10.0°
30° N26.6°30.0°3.4°44.6°45.0°15.0°15.0°
35° N29.2°35.0°5.8°49.6°50.0°20.0°20.0°
40° N31.5°40.0°8.5°54.6°55.0°25.0°25.0°
45° N33.6°45.0°11.4°59.6°60.0°30.0°30.0°
50° N35.5°50.0°14.5°64.6°65.0°35.0°35.0°
55° N37.3°55.0°17.7°69.6°70.0°40.0°40.0°
60° N39.0°60.0°21.0°74.6°75.0°45.0°45.0°
65° N40.7°65.0°24.3°79.6°80.0°50.0°50.0°

The plus and minus 15 rules are the geometry averaged. Over half a year the noon sun’s declination has an average size of 23.44 × 2 ÷ π = 14.9°, and the engine, which uses the real orbit, gives 14.58° added for winter and 14.96° taken off for summer. The rules track the geometry to within 0.5°. At low latitudes the summer figure is close to flat, because on summer days when the noon sun passes north of overhead the tool counts a flat panel. Within about 10° of the equator the published optimum is only a few degrees, and Jacobson and Jadhav note that installers generally tilt panels 10° there so that rain washes them.

How well does the fit reproduce real stations? These rows from Table 1 of Jacobson and Jadhav mix cities it matches well with those it misses, each with the fitted value and the latitude rule beside the published optimum.

City, stationStation latitudePublished optimumFittedFit minus publishedLatitude minus published
Reykjavik64.13° N43°40.4°−2.6°21.1°
Calgary51.12° N45°35.9°−9.1°6.1°
London51.15° N34°35.9°1.9°17.1°
Montreal45.5° N37°33.8°−3.2°8.5°
Beijing39.93° N37°31.5°−5.5°2.9°
Raleigh35.86° N32°29.6°−2.4°3.9°
Austin30.29° N28°26.8°−1.2°2.3°
Karachi24.9° N25°23.6°−1.4°−0.1°
Chennai13.07° N13°14.8°1.8°0.1°
Sydney33.95° S31°29.5°−1.5°3.0°
Buenos Aires34.82° S30°30.0°0.0°4.8°
Johannesburg26.13° S29°25.0°−4.0°−2.9°

A worked example you can check on paper

The default is 45° N, facing south, best fixed tilt for the year. Working from the inside out, the northern cubic gives 0.000080509 × 45 = 0.003623, then −0.014404 + 0.003623 = −0.010781, × 45 = −0.485149, + 1.2011 = 0.715951, × 45 = 32.2178, + 1.3793 = 33.60°. The latitude rule says 45°, so the two differ by 11.4°. The noon sun on the key dates comes from the declination: on December 21 it is −23.44°, so the sun’s altitude is 90 − |45 − (−23.44)| = 21.56° and the tilt that faces it is 68.44°. On March 20 the declination is −0.04°, altitude 44.96° and tilt 45.04°. On June 21 the altitude is 68.44° and the tilt 21.56°.

A 33.60° panel is therefore 34.84° off square at noon in December, 11.45° on March 20 and 12.04° in June, with beam cosine factors of 0.821, 0.980 and 0.978. For the row spacing mode at the same latitude, take 1.7 m panels at 30° and no shade from 9 am to 3 pm on December 21. At 9:00 the hour angle is −45° and the sun’s altitude is asin(sin 45° × sin(−23.44°) + cos 45° × cos 23.44° × cos 45°) = 10.22°, at an azimuth of 41.2° east of south. The shadow of the top edge then reaches 1.7 × sin 30° × cos 41.2° ÷ tan 10.22° = 3.54 m beyond the panel, and adding the panel’s own run of 1.7 × cos 30° = 1.47 m gives a pitch of 5.02 m. The tool scans every minute and finds that 9:00 is the worst.

Mistakes that catch people out

Typing the roof pitch in the wrong unit. A 6/12 roof is 26.57°, not 6°, and 12/12 is 45°. Check the unit beside the pitch box: rise per 12 is the default and degrees is the other option.

Reading the annual tilt as a promise. It is a fit to PVWatts runs, and the published station optima scatter around it by 3.0° rms in the north and 2.0° in the south. A tilt within a few degrees of the fit is sound, and PVWatts tells you what a specific angle yields at your address.

Mixing up the pitch and the gap. The pitch is front edge to front edge and includes the panel’s own horizontal run. The clear ground between the rows is the gap, smaller by L cos β. Give the pitch to whoever sets out the posts.

Setting the design hours by the clock. The window is in solar time, when the sun is due south at 12:00. Your clock differs by 4 minutes for each degree you are from your time zone meridian, by the equation of time, and by an hour in daylight saving. Look up solar noon before you convert 9 to 3.

Ignoring the azimuth when quoting a tilt. Turn a panel away from south and the tilt that faces the noon sun falls: a tilt of 45° facing south becomes atan(cos 30° × tan 45°) = 40.9° when the panel is turned 30°. The tool applies this to the azimuth you enter, so a tilt read from a due south table does not carry over to an east or west facing roof.

Popular calculations

Each address opens the calculator with that latitude and goal filled in, and any input can be changed once it is open. The city tilts are the fitted annual optimum for that city’s latitude.

Best annual tilt in North America

Best annual tilt in Europe, Asia, Africa and the southern hemisphere

Winter tilt at round latitudes

Summer tilt at round latitudes

Roof pitch as a tilt angle

Adjusting through the year

Row spacing for ground mounts

How this was checked

The declination was compared with the US Naval Observatory celestial navigation service for 10 dates in 2026 at 12:00 UT: the largest difference is 0.13 arcminutes (0.0022°). At eight upper transit instants in Fredericton, Sydney, Anchorage, Reykjavik, Cape Town and Honolulu, 90 − |latitude − declination| matches the USNO altitude within 0.003°. The tool has no longitude input, so it uses the declination at 12:00 UT, which is out by up to 0.18° at Honolulu on March 20 and by less near the solstices. It agrees with the site’s Sunrise and Sunset Calculator on 35 date and latitude pairs (noon altitude within 0.003°). The simple Spencer and Cooper formulas were rejected: over 2025 to 2028 they miss the NOAA equations by up to 0.55° and 1.16°.

Scanning tilt in 0.005° steps for the largest dot product of the panel normal with the noon sun at 396 random latitudes and dates agrees with 90 − altitude and with atan(cos γ × tan tilt) within 0.003°, and the half year averages match a separate day by day sum. Against the 26 northern and 9 southern station optima in Table 1 of Jacobson and Jadhav, the fitted cubic has a root mean square difference of 3.0° and 2.0° and a correlation of 0.92 and 0.92, against 12.2° and 4.3° for the latitude rule. The correlations sit below the 0.96 and 0.97 the paper reports for its fit to the full data set, as expected when checking single stations.

For row spacing, the Interreg Europe worked example (1.6 m panel, 30°, sun 23° high and 30° off the panel azimuth) gives 1.632 m and the formula returns 1.632 m. A separate ray cast agreed within 0.001 m on 160 random cases in both hemispheres, and the sun altitude and azimuth formulas match five USNO positions within 0.001°. Roof pitch conversion gives 18.43°, 26.57°, 33.69° and 45° for 4/12, 6/12, 8/12 and 12/12. Every address under Popular calculations was loaded to confirm a distinct title and no missing values.

Common questions

What is the best tilt angle for solar panels at my latitude?

For a fixed panel the calculator uses the fit of Jacobson and Jadhav (2018): 26.6° at 30°, 31.5° at 40°, 33.6° at 45° and 35.5° at 50°, facing the equator. It is a fit to PVWatts results at weather stations, so it includes typical cloud and the spread of sunshine through the year. Your site can differ by a few degrees: against the 35 published station optima the fit misses Calgary by 9.1 degrees and every other station by 5.5 degrees or less.

Should the tilt equal my latitude?

It is a fair starting point and the default tilt in the NREL PVWatts Version 5 manual, but above about 21° of latitude it is steeper than the fit, by 11.4° at 45° and 21.0° at 60°. Latitude is the tilt that faces the equinox sun, so it is right twice a year and a compromise in between. The fit leans toward the summer sun. Between 0° and 25° the two agree within 2.2 degrees.

Is it worth adjusting the tilt with the seasons?

Geometrically the noon sun moves through 46.9 degrees of altitude a year, so a fixed panel is always somewhere off square. At 40° N on December 21 a panel fixed at 31.5° is 31.9° off square at solar noon, a beam cosine factor of 0.849; at the winter tilt of 54.6° it is 8.9° off, a factor of 0.988. Whether that repays a ladder trip depends on the energy you value, and only an energy model can say. Run NREL PVWatts once with each tilt.

What tilt does a 6/12 roof give me?

A 6/12 pitch is atan(6 ÷ 12) = 26.57°, a slope of 50.0 percent. At 40° N the fitted annual tilt is 31.5°, so panels laid on that roof are 5.0° flatter than the fit. The tool shows that difference for any pitch. A roof that faces well away from south matters more than the pitch, so enter the offset too and check the result in PVWatts.

How far apart should rows of panels be?

It depends on the sun you must clear and the hours you protect. For 1.7 m panels at 30° at 45° N with no shade from 9 am to 3 pm solar time on December 21, the pitch is 5.02 m front edge to front edge, of which 1.47 m is the panel and 3.54 m is bare ground. A window of 10 am to 2 pm cuts it to 4.03 m. Solar time differs from the clock by your longitude, the equation of time and daylight saving, so find your solar noon first.

How accurate is this, and is it an energy estimate?

The sun position agrees with the US Naval Observatory to about 0.002°, so the noon altitude, the noon facing tilt and the row spacing are as good as your inputs. The annual optimum is a fit, good to a few degrees. It is not an energy simulation: it does not know your climate, shading, panel temperature or tariff. NREL PVWatts does, and it is the tool for kWh once you have chosen angles here.

Related Calculators and Reference