{"calculation_version":"2026-10-10.1","days":30,"nights":[{"best_hours":2.75,"best_label":"good","best_window":"01:05\u201303:50","dark_hours":4.74,"date":"2025-07-08","moon_free_dark_hours":0.0,"moon_illumination":96,"moon_separation":120.3,"score":68,"score_astronomy":68,"score_weather":100,"transit_alt":89.7,"transit_local":"06:55","verdict":"marginal","weather_source":"history","weekday":"Tue"},{"best_hours":2.75,"best_label":"good","best_window":"01:05\u201303:50","dark_hours":4.77,"date":"2025-07-09","moon_free_dark_hours":0.0,"moon_illumination":99,"moon_separation":110.0,"score":61,"score_astronomy":61,"score_weather":100,"transit_alt":89.5,"transit_local":"06:50","verdict":"marginal","weather_source":"history","weekday":"Wed"},{"best_hours":0.92,"best_label":"good","best_window":"03:00\u201303:55","dark_hours":4.81,"date":"2025-07-10","moon_free_dark_hours":0.0,"moon_illumination":100,"moon_separation":99.1,"score":45,"score_astronomy":56,"score_weather":80,"transit_alt":89.5,"transit_local":"06:50","verdict":"marginal","weather_source":"history","weekday":"Thu"},{"best_hours":1.92,"best_label":"marginal","best_window":"02:00\u201303:55","dark_hours":4.85,"date":"2025-07-11","moon_free_dark_hours":0.0,"moon_illumination":99,"moon_separation":88.0,"score":29,"score_astronomy":48,"score_weather":60,"transit_alt":89.7,"transit_local":"06:45","verdict":"poor","weather_source":"history","weekday":"Fri"},{"best_hours":1.08,"best_label":"good","best_window":"02:50\u201303:55","dark_hours":4.88,"date":"2025-07-12","moon_free_dark_hours":0.0,"moon_illumination":95,"moon_separation":76.6,"score":37,"score_astronomy":41,"score_weather":89,"transit_alt":89.7,"transit_local":"06:40","verdict":"poor","weather_source":"history","weekday":"Sat"},{"best_hours":0.92,"best_label":"marginal","best_window":"03:00\u201303:55","dark_hours":4.92,"date":"2025-07-13","moon_free_dark_hours":0.0,"moon_illumination":90,"moon_separation":65.3,"score":17,"score_astronomy":36,"score_weather":48,"transit_alt":89.6,"transit_local":"06:35","verdict":"poor","weather_source":"history","weekday":"Sun"},{"best_hours":4.0,"best_label":"marginal","best_window":"00:00\u201304:00","dark_hours":4.97,"date":"2025-07-14","moon_free_dark_hours":0.28,"moon_illumination":82,"moon_separation":54.3,"score":35,"score_astronomy":35,"score_weather":100,"transit_alt":89.5,"transit_local":"06:30","verdict":"poor","weather_source":"history","weekday":"Mon"},{"best_hours":4.0,"best_label":"marginal","best_window":"00:00\u201304:00","dark_hours":5.01,"date":"2025-07-15","moon_free_dark_hours":0.67,"moon_illumination":73,"moon_separation":44.0,"score":33,"score_astronomy":36,"score_weather":92,"transit_alt":89.6,"transit_local":"06:30","verdict":"poor","weather_source":"history","weekday":"Tue"},{"best_hours":4.17,"best_label":"marginal","best_window":"23:50\u201304:00","dark_hours":5.05,"date":"2025-07-16","moon_free_dark_hours":1.07,"moon_illumination":62,"moon_separation":35.6,"score":37,"score_astronomy":41,"score_weather":90,"transit_alt":89.7,"transit_local":"06:25","verdict":"poor","weather_source":"history","weekday":"Wed"},{"best_hours":0.42,"best_label":"good","best_window":"02:35\u201303:00","dark_hours":5.1,"date":"2025-07-17","moon_free_dark_hours":1.47,"moon_illumination":51,"moon_separation":30.6,"score":32,"score_astronomy":51,"score_weather":64,"transit_alt":89.7,"transit_local":"06:20","verdict":"poor","weather_source":"history","weekday":"Thu"},{"best_hours":3.67,"best_label":"good","best_window":"00:20\u201304:00","dark_hours":5.14,"date":"2025-07-18","moon_free_dark_hours":1.93,"moon_illumination":40,"moon_separation":31.1,"score":64,"score_astronomy":70,"score_weather":92,"transit_alt":89.6,"transit_local":"06:15","verdict":"marginal","weather_source":"history","weekday":"Fri"},{"best_hours":3.92,"best_label":"good","best_window":"00:10\u201304:05","dark_hours":5.19,"date":"2025-07-19","moon_free_dark_hours":2.53,"moon_illumination":29,"moon_separation":37.0,"score":82,"score_astronomy":82,"score_weather":100,"transit_alt":89.5,"transit_local":"06:15","verdict":"good","weather_source":"history","weekday":"Sat"},{"best_hours":4.0,"best_label":"good","best_window":"00:05\u201304:05","dark_hours":5.24,"date":"2025-07-20","moon_free_dark_hours":3.25,"moon_illumination":19,"moon_separation":46.3,"score":92,"score_astronomy":92,"score_weather":100,"transit_alt":89.6,"transit_local":"06:10","verdict":"good","weather_source":"history","weekday":"Sun"},{"best_hours":4.17,"best_label":"good","best_window":"00:00\u201304:10","dark_hours":5.28,"date":"2025-07-21","moon_free_dark_hours":4.17,"moon_illumination":11,"moon_separation":57.3,"score":97,"score_astronomy":97,"score_weather":100,"transit_alt":89.7,"transit_local":"06:05","verdict":"good","weather_source":"history","weekday":"Mon"},{"best_hours":4.25,"best_label":"good","best_window":"23:55\u201304:10","dark_hours":5.33,"date":"2025-07-22","moon_free_dark_hours":5.27,"moon_illumination":5,"moon_separation":69.1,"score":100,"score_astronomy":100,"score_weather":100,"transit_alt":89.7,"transit_local":"06:00","verdict":"good","weather_source":"history","weekday":"Tue"},{"best_hours":4.17,"best_label":"good","best_window":"00:00\u201304:10","dark_hours":5.38,"date":"2025-07-23","moon_free_dark_hours":5.37,"moon_illumination":1,"moon_separation":81.1,"score":97,"score_astronomy":100,"score_weather":97,"transit_alt":89.6,"transit_local":"05:55","verdict":"good","weather_source":"history","weekday":"Wed"},{"best_hours":4.42,"best_label":"good","best_window":"23:50\u201304:15","dark_hours":5.43,"date":"2025-07-24","moon_free_dark_hours":5.42,"moon_illumination":0,"moon_separation":93.1,"score":100,"score_astronomy":100,"score_weather":100,"transit_alt":89.5,"transit_local":"05:55","verdict":"good","weather_source":"history","weekday":"Thu"},{"best_hours":4.5,"best_label":"good","best_window":"23:45\u201304:15","dark_hours":5.48,"date":"2025-07-25","moon_free_dark_hours":5.47,"moon_illumination":2,"moon_separation":104.8,"score":100,"score_astronomy":100,"score_weather":100,"transit_alt":89.7,"transit_local":"05:50","verdict":"good","weather_source":"history","weekday":"Fri"},{"best_hours":4.58,"best_label":"good","best_window":"23:40\u201304:15","dark_hours":5.54,"date":"2025-07-26","moon_free_dark_hours":5.52,"moon_illumination":5,"moon_separation":116.0,"score":100,"score_astronomy":100,"score_weather":100,"transit_alt":89.7,"transit_local":"05:45","verdict":"good","weather_source":"history","weekday":"Sat"},{"best_hours":4.67,"best_label":"good","best_window":"23:40\u201304:20","dark_hours":5.59,"date":"2025-07-27","moon_free_dark_hours":5.57,"moon_illumination":11,"moon_separation":126.5,"score":96,"score_astronomy":100,"score_weather":96,"transit_alt":89.6,"transit_local":"05:40","verdict":"good","weather_source":"history","weekday":"Sun"},{"best_hours":4.75,"best_label":"good","best_window":"23:35\u201304:20","dark_hours":5.64,"date":"2025-07-28","moon_free_dark_hours":5.63,"moon_illumination":18,"moon_separation":135.9,"score":99,"score_astronomy":100,"score_weather":99,"transit_alt":89.5,"transit_local":"05:35","verdict":"good","weather_source":"history","weekday":"Mon"},{"best_hours":4.33,"best_label":"good","best_window":"00:00\u201304:20","dark_hours":5.7,"date":"2025-07-29","moon_free_dark_hours":5.42,"moon_illumination":26,"moon_separation":143.6,"score":95,"score_astronomy":100,"score_weather":95,"transit_alt":89.6,"transit_local":"05:35","verdict":"good","weather_source":"history","weekday":"Tue"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":5.75,"date":"2025-07-30","moon_free_dark_hours":5.13,"moon_illumination":35,"moon_separation":148.6,"score":0,"score_astronomy":100,"score_weather":0,"transit_alt":89.7,"transit_local":"05:30","verdict":"unusable","weather_source":"history","weekday":"Wed"},{"best_hours":0.42,"best_label":"good","best_window":"04:00\u201304:25","dark_hours":5.81,"date":"2025-07-31","moon_free_dark_hours":4.8,"moon_illumination":44,"moon_separation":149.9,"score":10,"score_astronomy":100,"score_weather":10,"transit_alt":89.7,"transit_local":"05:25","verdict":"poor","weather_source":"history","weekday":"Thu"},{"best_hours":4.83,"best_label":"good","best_window":"23:35\u201304:25","dark_hours":5.86,"date":"2025-08-01","moon_free_dark_hours":4.45,"moon_illumination":54,"moon_separation":147.1,"score":86,"score_astronomy":100,"score_weather":86,"transit_alt":89.6,"transit_local":"05:20","verdict":"good","weather_source":"history","weekday":"Fri"},{"best_hours":5.08,"best_label":"good","best_window":"23:20\u201304:25","dark_hours":5.92,"date":"2025-08-02","moon_free_dark_hours":4.0,"moon_illumination":63,"moon_separation":141.1,"score":100,"score_astronomy":100,"score_weather":100,"transit_alt":89.5,"transit_local":"05:15","verdict":"good","weather_source":"history","weekday":"Sat"},{"best_hours":5.17,"best_label":"good","best_window":"23:20\u201304:30","dark_hours":5.97,"date":"2025-08-03","moon_free_dark_hours":3.47,"moon_illumination":72,"moon_separation":133.0,"score":99,"score_astronomy":100,"score_weather":99,"transit_alt":89.6,"transit_local":"05:15","verdict":"good","weather_source":"history","weekday":"Sun"},{"best_hours":2.0,"best_label":"good","best_window":"02:00\u201304:00","dark_hours":6.03,"date":"2025-08-04","moon_free_dark_hours":2.77,"moon_illumination":80,"moon_separation":123.8,"score":41,"score_astronomy":100,"score_weather":41,"transit_alt":89.7,"transit_local":"05:10","verdict":"marginal","weather_source":"history","weekday":"Mon"},{"best_hours":3.0,"best_label":"good","best_window":"00:00\u201303:00","dark_hours":6.08,"date":"2025-08-05","moon_free_dark_hours":1.9,"moon_illumination":88,"moon_separation":113.6,"score":71,"score_astronomy":100,"score_weather":71,"transit_alt":89.7,"transit_local":"05:05","verdict":"good","weather_source":"history","weekday":"Tue"},{"best_hours":2.58,"best_label":"good","best_window":"02:00\u201304:35","dark_hours":6.14,"date":"2025-08-06","moon_free_dark_hours":0.88,"moon_illumination":94,"moon_separation":102.9,"score":43,"score_astronomy":100,"score_weather":43,"transit_alt":89.6,"transit_local":"05:00","verdict":"marginal","weather_source":"history","weekday":"Wed"}],"note":"score_astronomy for every night; score_weather/score only where a forecast (next 4 days) or ERA5 history exists \u2014 null otherwise","start":"2025-07-08","target":{"common_name":"Andromeda Galaxy","dec":41.26875,"morphology":"SA(s)b","name":"M 31","ra":10.68470833,"simbad_url":"https://simbad.cds.unistra.fr/simbad/sim-id?Ident=M31","source":"sesame","type":"AGN","type_text":"galaxy with an active nucleus","vmag":3.44}}
