LumenScout
How the scores are calculated
How to Read a Score
LumenScout gives sunrise, sunset and the night sky a score from 0 to 100 for each of the next 10 days. All three use one scale, so the same number means the same rating whichever light it is:
Epic (90-100) Excellent (70-89) Good (45-69) Fair (25-44) Poor (<25)
The scores are rules of thumb applied to a weather forecast for one point on the map. They have not been checked against a record of how skies actually turned out. Use them to pick which days deserve a closer look, then check the cloud strip and the reasons under "Why" on each score before you travel.
Which Hours Each Number Reads
| Used for | Hours | What is read |
|---|---|---|
| Sunrise, sunset | The hour of the event and the hour each side, averaged | Low, mid and high cloud, humidity, smoke and haze. Fog or rain is read for the event's own hour. |
| Night sky | 9 PM to 4 AM, averaged | Cloud, humidity, jet-stream wind, smoke and haze |
| Moon | Astronomical night (sun more than 18° below the horizon) | How much of the dark the moon is up, checked every 15 minutes. Where the sky never gets that dark, dusk to dawn is used instead. |
| Wind, temperature | The whole day | The day's maximum wind and its high and low temperature. Every score uses these, so a windy afternoon also counts against a calm sunrise. |
| Day label, shooting notes | 6 AM to 6 PM | Average cloud, humidity and pressure |
All times are the local time of the place you are looking at, not of your device.
Points, Then Gates and Ceilings
Each score first adds up points for the things that help. Then it multiplies the total by one or more factors between 0 and 1, for the things that can spoil the light whatever else is right: no upper cloud to catch color, low cloud in the light's path, smoke, cloud over the stars, or a city sky. That is why a clear, dry, calm evening scores near 0 for sunset, and why a moonless night in a city cannot rate above Fair.
Sunset Score
Sunset color needs two things: cloud high enough to catch the light, and a clear path under it for the light to get there. Dry, clean, calm air then makes the color stronger. The score follows that order.
Scoring Breakdown
| Factor | Max Points | Optimal Conditions |
|---|---|---|
| Upper Cloud Canvas | 40 points | High (cirrus, 7-14 km / 23k-45k ft) or mid cloud (altocumulus, 2-7 km) at 35-65% around the sunset hour - the reflective "canvas". Mid-only cloud scores 80%. |
| Light Path (Low Cloud) | 25 points | Under 10% low cloud (below 2 km), no fog or rain - nothing blocks the light on its way to the canvas |
| Smoke and Haze | 15 points | Aerosol optical depth under 0.1 - clean air, crisp color |
| Humidity | 10 points | Less than 40% humidity - dry air, stronger color |
| Wind | 10 points | Less than 15 km/h (9 mph) to preserve cloud structure |
All tiers
| Factor | Value | Points |
|---|---|---|
| Upper cloud the larger of high and mid cloud |
Under 10% 10-19% 20-34% 35-65% 66-79% 80-89% 90% and over |
0 8 24 40 24 12 6 |
| Mid cloud only | More mid than high cloud | Upper cloud points × 0.8 |
| Low cloud |
Under 10% 10-19% 20-39% 40-59% 60-79% 80% and over Fog, drizzle, rain, snow or storm in the event's hour |
25 20 15 8 4 0 0 |
| Humidity the same at sunrise and sunset |
Under 40% 40-54% 55-69% 70% and over |
10 8 6 4 |
| Wind the day's maximum |
Under 15 km/h (9 mph) 15-29 km/h (9-18 mph) 30 km/h (19 mph) and over |
10 5 2 |
| Smoke and haze aerosol optical depth |
Under 0.1 0.1-0.29 0.3-0.59 0.6 and over Unknown |
15 12 6 0, and the score × 0.6 10 |
(Canvas + Light Path + Smoke and Haze + Humidity + Wind) × Canvas Gate × Light-Path Factor × Heavy Smoke
Canvas Gate = upper cloud % ÷ 30 (max 1) · Light-Path Factor = 0.4 + 0.6 × (Light Path ÷ 25)
Clear, dry, calm air only amplifies color that upper cloud provides: a cloudless sky scores 0.
Worked Example
Sunset with 50% high cloud, 10% mid, 50% low, clean air, 65% humidity and a 28 km/h (17 mph) wind. Points: canvas 40 + light path 8 + clean air 15 + humidity 6 + wind 5 = 74. The canvas gate is 1 (50 ÷ 30, capped). The light-path factor is 0.4 + 0.6 × (8 ÷ 25) = 0.59. 74 × 1 × 0.59 = 44, Fair: a good canvas, but broken low cloud blocks much of the light. With low cloud under 10% the same sky scores 91, Epic.
Why These Factors
- Cloud Altitude: High cloud (cirrus, 7 km / 23k ft and up) sits above the haze near the ground and catches sunlight long after the ground is in shadow. Low cloud (below 2 km / 6.5k ft) blocks the sun and absorbs light.
- The Coverage Sweet Spot: 35-65% gives the most surface to light up without closing the sky. A clear sky has no canvas; a thick deck lets little light through.
- Light From Below: With little low cloud in the way, sunlight passes under the upper cloud and lights its underside. The forecast gives low cloud for your location only. A gap further toward the horizon cannot be seen in a point forecast, so a thick high deck over a clear horizon can light up while its score stays low.
- Humidity: Dry air and clean air after a storm scatter less light near the ground, which leaves stronger reds and oranges. Humid air mutes and flattens color.
- Smoke and Haze: Clean air (aerosol optical depth under 0.1) gives crisp, saturated color. Above 0.3 the sky softens; heavy wildfire smoke (0.6 and over) cuts the score sharply and turns the sun into a deep red disk. The smoke forecast reaches about 5 days; beyond that it is unknown and earns a neutral 10 of 15.
- The Afterglow Window: Peak color usually comes 15-20 minutes after sunset. It is geometry, not refraction: the sun is below your horizon but still lights clouds kilometers above you from below. The higher the cloud, the longer it stays lit.
- Wind: The score uses the day's maximum wind, not the wind at sunset, so a breezy afternoon costs a calm evening up to 8 points.
Sunrise Score
Sunrise is scored exactly as sunset, with the cloud, humidity and aerosols around the sunrise hour. Humidity counts the same at both: dawn air is humid most mornings from overnight cooling, which says little about the color overhead.
The same as sunset: (Canvas + Light Path + Smoke and Haze + Humidity + Wind) × Canvas Gate × Light-Path Factor × Heavy Smoke
- Before the Sun: The strongest color usually comes 15-30 minutes before sunrise. Arrive early and start shooting before the sun reaches the horizon.
- The Light Gate: Low cloud, fog or rain toward the sunrise blocks the light before it reaches the upper cloud. The score reads fog and rain for the sunrise hour itself, so rain later in the day does not count against the morning.
Night-Sky Score
The night-sky score is for deep-sky and Milky Way photography. What matters is moonlight while it is dark: LumenScout works out when the moon rises and sets during the dark hours, so a bright moon that rises at 1 AM still leaves a dark evening. Cloud and humidity are read for the night (9 PM-4 AM), not the day.
Scoring Breakdown
| Factor | Max Points | Optimal Conditions |
|---|---|---|
| Moonlight | 25 points | Effective moonlight under 5%: moon illumination × share of the dark hours it is up |
| Clear Skies | 25 points | No cloud through the night. Cloud of 20% and over also caps the rating (see Cloud Ceiling below). |
| Low Humidity | 15 points | Less than 40% to minimize haze and dew on optics |
| Still Atmosphere | 10 points | Calm ground (under 10 km/h / 6 mph) for a steady tripod, and under 70 km/h (43 mph) at ~10 km (the jet stream) for sharp stars ("seeing") |
| Temperature Stability | 3 points | Less than 8°C (14°F) between the day's high and low reduces heat currents |
| Cold Air Bonus | 2 points | A daytime high below 10°C (50°F): cold air is drier and clearer |
| Sky Darkness (Bortle) | Ceiling | Not points: light pollution, estimated from satellite night lights, sets the best score a place can reach (see Sky Darkness Ceiling below) |
All tiers
| Factor | Value | Points |
|---|---|---|
| Effective moonlight | See the moonlight table below | 0-25 |
| Night cloud | 0% 1-9% 10-19% 20-39% 40% and over |
25 22 18 8 0 |
| Night humidity | Under 40% 40-59% 60-74% 75% and over |
15 12 6 3 |
| Ground wind the day's maximum |
Under 10 km/h (6 mph) 10-19 km/h (6-12 mph) 20-29 km/h (12-18 mph) 30 km/h (19 mph) and over |
5 4 2 0 |
| Jet stream night wind at 250 hPa |
Under 70 km/h (43 mph) 70-109 km/h (43-68 mph) 110-149 km/h (68-93 mph) 150 km/h (93 mph) and over Unknown |
5 3 1 0 3 |
| Temperature range the day's high minus low |
Under 8°C (14°F) 8-14°C (14-27°F) 15°C (27°F) and over |
3 2 1 |
| Cold air | Day's high below 10°C (50°F) | 2 |
| Smoke and haze night aerosol optical depth |
Under 0.3, or unknown 0.3-0.59 0.6 and over |
× 1 × 0.85 × 0.65 |
1. Points = Moonlight (0-25) + Clear Skies (0-25) + Humidity (0-15) + Ground Wind (0-5) + Jet Stream (0-5) + Temperature (0-3) + Cold Air (0-2), out of 80
2. × Smoke and haze factor
3. Mapped onto the shared scale: 20 → 25, 40 → 45, 55 → 70, 70 → 90, 80 → 100, in straight lines between
4. × Cloud factor for the night
5. × Sky darkness factor for the place
Worked Example
A city night (Bortle 7) with a 31% moon that is up for a third of the dark hours, 66% cloud, 60% humidity, a 10 km/h (6 mph) ground wind, an 80 km/h (50 mph) jet stream and a day that ran from 6°C to 18°C. Effective moonlight is 31% × 33% = 10%. Points: moonlight 23 + cloud 0 + humidity 6 + ground wind 4 + jet stream 3 + temperature 2 = 38 of 80. No haze. On the shared scale 38 becomes 43. Cloud factor for 66% cloud: × 0.24 = 10. Sky factor for Bortle 7: × 0.44 = 4, Poor. The moon cost 2 points and the cloud cost 25, so the headline reads "Cloud covers much of the sky".
Cloud Ceiling
Stars behind cloud cannot be photographed, however dark, dry and moonless the night. So cloud through the night (9 PM to 4 AM average) costs points and also caps the rating.
| Night cloud | Factor | Best rating that night |
|---|---|---|
| Under 20% | × 1 | No cap |
| 20-39% | × 0.69 | Good |
| 40-59% | × 0.44 | Fair |
| 60% and over | × 0.24 | Poor |
A night average can hide a clear hour or two, so check the cloud strip for gaps.
Sky Darkness Ceiling
However clear and moonless the night, light pollution limits what a place can deliver. So sky darkness is not one factor among the others: it scales the whole score, and the best possible night at a place lands on the ceiling for its Bortle class.
| Bortle class | Best score | What to expect |
|---|---|---|
| 1-2 (truly dark) | 100 · Epic | Milky Way structure visible to the eye; faint dust lanes, airglow and zodiacal light |
| 3 (rural) | 97 · Epic | The realistic sweet spot: the Milky Way core photographs beautifully, with faint light domes on the horizon |
| 4 (rural/suburban) | 89 · Excellent | Still very workable for the Milky Way; stacking and editing recover washed-out contrast |
| 5-6 (suburban) | 69 / 60 · Good | Milky Way shots come out flat; fine for the Moon, planets, star trails and bright targets |
| 7-9 (city) | 44 / 38 / 32 · Fair | Wide-field Milky Way is not viable; a tracking mount and narrowband filters can still capture nebulae |
The best score is the factor × 100 (Bortle 7 is × 0.44). Where the sky darkness is unknown, the factor is 0.9 (best score 90).
Moonlight
Effective moonlight is the moon's illumination × the share of the dark hours it is above the horizon. A 60% moon that is up for half the night counts as 30%. Illumination, and the phase name shown with it, are taken at the middle of that night.
| Effective moonlight | Points | Impact on Deep-Sky Imaging |
|---|---|---|
| Under 5% | 25 pts | Darkest skies, all targets accessible |
| 5-14% | 23 pts | Minimal moonlight - excellent for deep-sky imaging |
| 15-24% | 20 pts | Low moonlight - good for most deep-sky work |
| 25-34% | 15 pts | Noticeable - faint targets compromised |
| 35-49% | 8 pts | Strong - faint objects washed out |
| 50-64% | 3 pts | Bright - only the brightest objects show |
| 65-84% | 1 pt | Very bright - deep-sky imaging nearly impossible |
| 85% and over | 0 pts | Sky washed out - photograph the moon itself |
Phase names: New Moon, First Quarter, Full Moon and Last Quarter are moments, not ranges. LumenScout uses those names only within about half a day of the moment (roughly 44-56% lit for the quarters). The rest of the time the moon is a crescent or a gibbous, waxing or waning.
The Headline on the Night-Sky Card
Below Excellent, the headline names what cost the night most: cloud or moonlight, whichever lost more of its 25 points (cloud if they tie). If neither lost 5 points, it names haze or wind. With 40% cloud or more it always reads "Cloud covers much of the sky". Under a suburban or city sky (Bortle 5 and over), when the night itself would rate Good or better, the headline says the sky is the limit and suggests the Moon, planets or star trails.
Why These Factors
- Moonlight: A 75% moon up all night costs 24 of the 25 moonlight points, even with perfect weather; the same moon rising at 2 AM costs far less.
- Sky Darkness: City and suburban light glows across the whole sky and hides the Milky Way, however clear the night. LumenScout estimates the Bortle class (1 = pristine, 9 = inner city) from satellite night lights, spreading each town's glow over the surrounding 200 km. It is an estimate on a ~10 km grid: a dark park next to a town can be better than shown.
- Clear Skies: Even thin cloud blocks faint deep-sky objects.
- Humidity: Moisture makes haze and puts dew on optics. The shooting notes suggest a dew heater when the night air is within 3°C (5°F) of the dew point.
- Seeing: LumenScout reads the wind at the 250 hPa level (~10 km, the jet stream) through the night: fast air aloft blurs stars even when the ground is calm. It matters most for planets and long focal lengths. Ground wind shakes the tripod; the score uses the day's maximum, so a night that falls calm after a windy day is scored a little low.
- Temperature: A large swing between the day's high and low means the ground and your gear give off heat after dark, which softens stars. Let equipment cool to the air temperature for 30-60 minutes.
- Smoke and Haze: Aerosol optical depth of 0.3 and over dims faint stars across the whole sky, so it scales all the points.
What to do with a low score: Under cloud, check the cloud strip for a gap. Under a bright moon, photograph the moon itself, planets, bright star clusters or a moonlit landscape. Galaxies and nebulae need Good or better.
Storm Outlook
When thunderstorms are forecast, the day's shooting notes include a storm outlook: one line saying how photogenic the storm is likely to be. It is not one of the three scores and does not appear on the day cards.
| Factor | Max Points | How it is scored |
|---|---|---|
| Instability | 25 points | 25 when thunderstorms are forecast. On a rain or shower day: 20 for a range over 15°C with a high over 25°C, 15 for a range over 10°C, otherwise 5. |
| Wind | 20 points | Day's maximum wind: 30-50 km/h (19-31 mph) 20; 20-29 km/h 15; over 50 km/h 10; under 20 km/h 5 |
| Moisture | 15 points | Daytime humidity: 70% and over 15; 50-69% 12; 30-49% 8; under 30% 3 |
| Visibility | 15 points | Rain chance under 30% with daytime cloud under 70%: 15. Otherwise rain chance under 50% 10; under 80% 5; 80% and over 2. |
| Lightning | 10 points | 10 when thunderstorms are forecast, otherwise 3 |
| Time of day | 5 points | 5 from 4 PM to 8 PM, 3 from 2 PM to 10 PM, otherwise 1. This uses the time you are looking at the app, not the time of the storm, so the outlook can shift by a few points through the day. |
The most a storm can score is 90. Elite (76+) Standard (51-75) Low Visibility (26-50) Low (0-25)
• Maintain 10-20 miles (16-32 km) from the storm base at all times
• Never drive into the precipitation core (heavy rain/hail zone)
• Monitor radar constantly for storm movement and intensity
• Have multiple escape routes planned
• Severe storms can produce tornadoes with little warning
• If lightning is within 6 miles (10 km), you are in danger - seek shelter immediately
Day Label, Times and Shooting Notes
Day Label and Best Light
The label on each day (Clear Sky, Mainly Clear, Partly Cloudy, Overcast) comes from the average cloud between 6 AM and 6 PM: under 20%, under 50%, under 85%, and 85% or more. Fog, rain, snow and storm labels come from the forecast's weather code for the day, which names the most severe weather of its 24 hours. The big number on a day card is the highest of that day's three scores, with the time to be there.
Sun Times and Terrain
Sun and moon positions, sunrise and sunset, moonrise and moonset, and the golden and blue hour windows are calculated with the SunCalc library for your latitude and longitude. Golden hour runs while the sun is below 6° above the horizon and blue hour while it is between 0° and 6° below, so both change length with season and latitude. Full darkness is astronomical night, with the sun more than 18° below the horizon.
Where hills or mountains rise toward the sun, LumenScout also shows when the sun clears them or drops behind them. It reads ground elevations out to 50 km along the sun's bearing, allows for the curve of the Earth, finds the highest angle the terrain reaches, and moves the time to when the sun's upper edge is at that angle. A terrain time is shown only when it differs from the flat-horizon time by 3 minutes or more. Trees and buildings are not included.
Shooting Notes
A day shows at most four notes, weather events first. Each has a fixed trigger:
- Thunderstorms, showers, rain, snow, ice, fog: from the hourly weather codes, so the note can say when ("Fog until 9 AM"). Rain also shows when the day's rain chance is over 60%.
- Fog likely: daytime humidity over 90% with a low under 15°C (59°F); or dawn humidity (4-9 AM) of 95% and over after a night with under 30% cloud, on a day whose maximum wind is under 15 km/h (9 mph).
- Frost at dawn: a low of 0°C (32°F) or below, with dawn humidity of 90% and over or rain the day before.
- Smoke or haze: aerosol optical depth reaches 0.5 between 6 AM and 9 PM.
- Lenticular clouds possible: for at least 3 hours between 6 AM and 9 PM, wind of 40 km/h (25 mph) or more at mountain-top level (700 hPa, about 3 km) blows over ground that rises 600 m (2,000 ft) or more above you within 100 km on the upwind side, with 45-90% humidity aloft, stable air (less than 20°C between 700 and 500 hPa) and no rain. Never shown in flat country.
- Upslope cloud likely: for at least 3 hours between 4 AM and 9 PM, a ground wind of 8-40 km/h (5-25 mph) blows toward ground that rises 300 m (1,000 ft) or more within 30 km, with the air within 2°C of its dew point or low cloud of 60% and over.
- Clearing after a front: pressure rises 3 hPa or more between 6 AM and 6 PM, after rain that morning or the day before, and afternoon cloud is at least 20 points lower than morning cloud. Front moving in: pressure falls 4 hPa or more and afternoon cloud is at least 20 points higher. The pressure stat shows the same 6 AM to 6 PM change every day; under 2 hPa reads as steady.
- Cloud streaks: a maximum wind of 24-48 km/h (15-30 mph) with 20% or more low or mid cloud, total cloud of 85% or less, and no fog or rain.
- Strong wind, calm, warm, cold, dry air: maximum wind over 40 km/h (25 mph) or under 10 km/h (6 mph); a high over 25°C (77°F) or under 5°C (41°F); daytime humidity under 30%.
- Sky: heavy cloud over 80%, partial cloud at 40-70%, or clear sky, from daytime cloud.
- Dark from: when full darkness starts, with a dew warning when the night air (8 PM to midnight) is within 3°C (5°F) of the dew point. It suggests the Milky Way only with night cloud under 20%, effective moonlight under 25% and a sky of Bortle 4 or darker.
The lenticular and upslope rules are new and were tuned on a short run of forecasts. None of the notes changes a score.
Forecast Confidence
Forecasts lose skill with lead time, and cloud forecasts fastest of all. LumenScout sorts the days into three phases. Decide (today and tomorrow): close enough to make the call, best checked again a few hours before in the next-24-hours view. Evaluate (day 3): worth planning around, but expect it to shift. Trend only (day 4 on): scores are shown rounded down to a 5 with a "~" to say so; treat them as a heads-up and check again closer to the day. Open-Meteo blends several weather models ("best match") and updates hourly; it does not report which model run a forecast comes from.
Data Sources
LumenScout reads a 10-day hourly forecast from Open-Meteo, which combines models from national weather services including NOAA, DWD and Météo-France. The forecast is for one point; it refreshes every 10 minutes while the app is open.
What Is Read
- Hourly cloud cover by layer: low (below 2 km), mid (2-7 km, altocumulus) and high (above 7 km, cirrus), and total cloud
- Hourly weather code (clear, fog, rain, snow, thunderstorm), and the day's most severe code
- Relative humidity and dew point
- Aerosol optical depth (smoke, dust and haze), about 5 days ahead
- Wind at 10 m, with direction and gusts
- Wind at 250 hPa (~10 km, the jet stream), for astronomical seeing
- Wind, humidity and temperature at 700 hPa (~3 km) and humidity and temperature at 500 hPa (~5.5 km), for lenticular cloud
- Temperature, with the day's high and low
- Precipitation probability and amount
- Sea-level pressure, visibility and UV index
- Terrain elevations toward sunrise and sunset and around the place (Open-Meteo elevation API, 90 m resolution)
- Sky darkness: VIIRS annual night lights 2025 (Earth Observation Group, Payne Institute for Public Policy, Colorado School of Mines; CC BY 4.0), converted to an estimated Bortle class
Using the Scores
Weather forecasts are uncertain, and local effects a point forecast cannot see (a gap at the horizon, valley fog, a mountain's own cloud) often decide the light. Use the scores to plan, then adapt to what the sky is doing when you get there.
Remember: A "Fair" or even "Poor" score does not mean you should stay home. It means you should adjust your expectations and perhaps try a different subject. Fast-changing conditions often make the most dramatic images.
Data & Credits
LumenScout is built on open data and open-source software. Thank you to everyone below.
Data
- Weather forecasts: Weather data by Open-Meteo.com, licensed CC BY 4.0 (terms). Open-Meteo combines national weather services' models, including NOAA, DWD and Météo-France.
- Terrain horizon: elevations from the Open-Meteo Elevation API, based on the Copernicus DEM GLO-90. Produced using products © DLR e.V. (2014-2018) and © Airbus Defence and Space GmbH (2021) provided under COPERNICUS by the European Union and ESA; all rights reserved.
- Sky darkness: VIIRS Annual Nighttime Lights (VNL V2.2), 2025, Earth Observation Group, Payne Institute for Public Policy, Colorado School of Mines, licensed CC BY 4.0. Elvidge, C.D., Zhizhin, M., Ghosh, T., Hsu, F.C. and Taneja, J. (2021), "Annual time series of global VIIRS nighttime lights derived from monthly averages: 2012 to 2019", Remote Sensing 13(5), 922, doi:10.3390/rs13050922. LumenScout shrinks it to a 0.1° grid, spreads each town's glow over the surrounding 200 km and converts it to an estimated Bortle class; the estimates are LumenScout's, not EOG's.
- Smoke and haze: aerosol optical depth from the Open-Meteo Air Quality API, based on the Copernicus Atmosphere Monitoring Service (CAMS). Generated using Copernicus Atmosphere Monitoring Service information 2026; neither the European Commission nor ECMWF is responsible for any use made of it.
- Place search: the Open-Meteo Geocoding API, with place data from GeoNames (CC BY 4.0).
- Place names for your location: BigDataCloud free reverse geocoding API.
Methods
- Sky glow falling off with distance-2.5: Walker, M.F. (1977), "The effects of urban lighting on the brightness of the night sky", Publications of the Astronomical Society of the Pacific 89, 405-409, doi:10.1086/130142.
- Bortle Dark-Sky Scale: Bortle, J.E. (2001), "Introducing the Bortle Dark-Sky Scale", Sky & Telescope, February 2001.
Software and design
- SunCalc by Vladimir Agafonkin (BSD-2-Clause): sun and moon positions and times.
- Lucide icons (ISC).
- Fonts Crimson Pro and DM Sans via Google Fonts (SIL Open Font License).