{"calculation_version":"2026-10-10.1","days":30,"nights":[{"best_hours":7.42,"best_label":"marginal","best_window":"18:35\u201302:00","dark_hours":11.34,"date":"2025-12-01","moon_free_dark_hours":1.7,"moon_illumination":86,"moon_separation":29.9,"score":30,"score_astronomy":34,"score_weather":87,"transit_alt":89.6,"transit_local":"20:20","verdict":"poor","weather_source":"history","weekday":"Mon"},{"best_hours":0.17,"best_label":"marginal","best_window":"02:00\u201302:10","dark_hours":11.35,"date":"2025-12-02","moon_free_dark_hours":0.35,"moon_illumination":94,"moon_separation":31.9,"score":9,"score_astronomy":27,"score_weather":35,"transit_alt":89.5,"transit_local":"20:20","verdict":"poor","weather_source":"history","weekday":"Tue"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.37,"date":"2025-12-03","moon_free_dark_hours":0.0,"moon_illumination":98,"moon_separation":39.4,"score":3,"score_astronomy":31,"score_weather":11,"transit_alt":89.7,"transit_local":"20:15","verdict":"poor","weather_source":"history","weekday":"Wed"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.38,"date":"2025-12-04","moon_free_dark_hours":0.0,"moon_illumination":100,"moon_separation":50.1,"score":0,"score_astronomy":44,"score_weather":0,"transit_alt":89.7,"transit_local":"20:10","verdict":"unusable","weather_source":"history","weekday":"Thu"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.4,"date":"2025-12-05","moon_free_dark_hours":0.0,"moon_illumination":98,"moon_separation":62.3,"score":0,"score_astronomy":65,"score_weather":0,"transit_alt":89.7,"transit_local":"20:05","verdict":"unusable","weather_source":"history","weekday":"Fri"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.41,"date":"2025-12-06","moon_free_dark_hours":0.0,"moon_illumination":94,"moon_separation":74.9,"score":0,"score_astronomy":76,"score_weather":0,"transit_alt":89.5,"transit_local":"20:00","verdict":"unusable","weather_source":"history","weekday":"Sat"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.42,"date":"2025-12-07","moon_free_dark_hours":1.0,"moon_illumination":88,"moon_separation":87.5,"score":3,"score_astronomy":100,"score_weather":3,"transit_alt":89.6,"transit_local":"20:00","verdict":"poor","weather_source":"history","weekday":"Sun"},{"best_hours":1.42,"best_label":"good","best_window":"18:35\u201320:00","dark_hours":11.44,"date":"2025-12-08","moon_free_dark_hours":2.28,"moon_illumination":79,"moon_separation":99.8,"score":19,"score_astronomy":100,"score_weather":19,"transit_alt":89.7,"transit_local":"19:55","verdict":"poor","weather_source":"history","weekday":"Mon"},{"best_hours":2.0,"best_label":"marginal","best_window":"23:00\u201301:00","dark_hours":11.45,"date":"2025-12-09","moon_free_dark_hours":3.52,"moon_illumination":70,"moon_separation":111.5,"score":11,"score_astronomy":100,"score_weather":11,"transit_alt":89.7,"transit_local":"19:50","verdict":"poor","weather_source":"history","weekday":"Tue"},{"best_hours":2.0,"best_label":"marginal","best_window":"23:00\u201301:00","dark_hours":11.46,"date":"2025-12-10","moon_free_dark_hours":4.68,"moon_illumination":60,"moon_separation":122.4,"score":14,"score_astronomy":100,"score_weather":14,"transit_alt":89.6,"transit_local":"19:45","verdict":"poor","weather_source":"history","weekday":"Wed"},{"best_hours":3.42,"best_label":"good","best_window":"18:35\u201322:00","dark_hours":11.47,"date":"2025-12-11","moon_free_dark_hours":5.77,"moon_illumination":49,"moon_separation":132.3,"score":53,"score_astronomy":100,"score_weather":53,"transit_alt":89.5,"transit_local":"19:40","verdict":"marginal","weather_source":"history","weekday":"Thu"},{"best_hours":4.42,"best_label":"good","best_window":"18:35\u201323:00","dark_hours":11.47,"date":"2025-12-12","moon_free_dark_hours":6.83,"moon_illumination":40,"moon_separation":140.8,"score":72,"score_astronomy":100,"score_weather":72,"transit_alt":89.6,"transit_local":"19:40","verdict":"good","weather_source":"history","weekday":"Fri"},{"best_hours":0.42,"best_label":"good","best_window":"18:35\u201319:00","dark_hours":11.48,"date":"2025-12-13","moon_free_dark_hours":7.85,"moon_illumination":30,"moon_separation":147.2,"score":21,"score_astronomy":100,"score_weather":21,"transit_alt":89.7,"transit_local":"19:35","verdict":"poor","weather_source":"history","weekday":"Sat"},{"best_hours":3.42,"best_label":"good","best_window":"18:35\u201322:00","dark_hours":11.49,"date":"2025-12-14","moon_free_dark_hours":8.9,"moon_illumination":22,"moon_separation":150.2,"score":61,"score_astronomy":100,"score_weather":61,"transit_alt":89.7,"transit_local":"19:30","verdict":"marginal","weather_source":"history","weekday":"Sun"},{"best_hours":7.0,"best_label":"good","best_window":"18:35\u201301:35","dark_hours":11.49,"date":"2025-12-15","moon_free_dark_hours":9.95,"moon_illumination":15,"moon_separation":149.0,"score":100,"score_astronomy":100,"score_weather":100,"transit_alt":89.6,"transit_local":"19:25","verdict":"good","weather_source":"history","weekday":"Mon"},{"best_hours":6.92,"best_label":"good","best_window":"18:35\u201301:30","dark_hours":11.5,"date":"2025-12-16","moon_free_dark_hours":11.0,"moon_illumination":9,"moon_separation":144.1,"score":100,"score_astronomy":100,"score_weather":100,"transit_alt":89.5,"transit_local":"19:25","verdict":"good","weather_source":"history","weekday":"Tue"},{"best_hours":4.42,"best_label":"good","best_window":"18:35\u201323:00","dark_hours":11.5,"date":"2025-12-17","moon_free_dark_hours":11.48,"moon_illumination":4,"moon_separation":136.8,"score":68,"score_astronomy":100,"score_weather":68,"transit_alt":89.6,"transit_local":"19:20","verdict":"marginal","weather_source":"history","weekday":"Wed"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.5,"date":"2025-12-18","moon_free_dark_hours":11.5,"moon_illumination":1,"moon_separation":128.1,"score":0,"score_astronomy":100,"score_weather":0,"transit_alt":89.7,"transit_local":"19:15","verdict":"unusable","weather_source":"history","weekday":"Thu"},{"best_hours":6.5,"best_label":"good","best_window":"18:35\u201301:05","dark_hours":11.51,"date":"2025-12-19","moon_free_dark_hours":11.48,"moon_illumination":0,"moon_separation":118.5,"score":95,"score_astronomy":100,"score_weather":95,"transit_alt":89.7,"transit_local":"19:10","verdict":"good","weather_source":"history","weekday":"Fri"},{"best_hours":0.42,"best_label":"good","best_window":"18:35\u201319:00","dark_hours":11.51,"date":"2025-12-20","moon_free_dark_hours":11.5,"moon_illumination":1,"moon_separation":108.4,"score":10,"score_astronomy":100,"score_weather":10,"transit_alt":89.5,"transit_local":"19:05","verdict":"poor","weather_source":"history","weekday":"Sat"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.51,"date":"2025-12-21","moon_free_dark_hours":11.48,"moon_illumination":3,"moon_separation":97.9,"score":0,"score_astronomy":100,"score_weather":0,"transit_alt":89.6,"transit_local":"19:05","verdict":"unusable","weather_source":"history","weekday":"Sun"},{"best_hours":1.42,"best_label":"good","best_window":"18:35\u201320:00","dark_hours":11.51,"date":"2025-12-22","moon_free_dark_hours":11.2,"moon_illumination":8,"moon_separation":87.1,"score":19,"score_astronomy":100,"score_weather":19,"transit_alt":89.7,"transit_local":"19:00","verdict":"poor","weather_source":"history","weekday":"Mon"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.51,"date":"2025-12-23","moon_free_dark_hours":10.08,"moon_illumination":14,"moon_separation":76.3,"score":2,"score_astronomy":100,"score_weather":2,"transit_alt":89.7,"transit_local":"18:55","verdict":"poor","weather_source":"history","weekday":"Tue"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.5,"date":"2025-12-24","moon_free_dark_hours":8.95,"moon_illumination":21,"moon_separation":65.5,"score":0,"score_astronomy":100,"score_weather":0,"transit_alt":89.6,"transit_local":"18:50","verdict":"unusable","weather_source":"history","weekday":"Wed"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.5,"date":"2025-12-25","moon_free_dark_hours":7.82,"moon_illumination":30,"moon_separation":54.8,"score":0,"score_astronomy":94,"score_weather":0,"transit_alt":89.5,"transit_local":"18:45","verdict":"unusable","weather_source":"history","weekday":"Thu"},{"best_hours":1.33,"best_label":"marginal","best_window":"18:40\u201320:00","dark_hours":11.5,"date":"2025-12-26","moon_free_dark_hours":6.68,"moon_illumination":41,"moon_separation":44.8,"score":31,"score_astronomy":85,"score_weather":36,"transit_alt":89.6,"transit_local":"18:45","verdict":"poor","weather_source":"history","weekday":"Fri"},{"best_hours":5.75,"best_label":"good","best_window":"18:40\u201300:25","dark_hours":11.49,"date":"2025-12-27","moon_free_dark_hours":5.53,"moon_illumination":51,"moon_separation":36.1,"score":70,"score_astronomy":70,"score_weather":100,"transit_alt":89.7,"transit_local":"18:40","verdict":"good","weather_source":"history","weekday":"Sat"},{"best_hours":3.0,"best_label":"marginal","best_window":"19:00\u201322:00","dark_hours":11.48,"date":"2025-12-28","moon_free_dark_hours":4.32,"moon_illumination":62,"moon_separation":30.5,"score":33,"score_astronomy":53,"score_weather":63,"transit_alt":89.7,"transit_local":"18:35","verdict":"poor","weather_source":"history","weekday":"Sun"},{"best_hours":6.25,"best_label":"marginal","best_window":"18:40\u201300:55","dark_hours":11.48,"date":"2025-12-29","moon_free_dark_hours":3.05,"moon_illumination":73,"moon_separation":30.2,"score":34,"score_astronomy":34,"score_weather":100,"transit_alt":89.6,"transit_local":"18:30","verdict":"poor","weather_source":"history","weekday":"Mon"},{"best_hours":1.33,"best_label":"marginal","best_window":"18:40\u201320:00","dark_hours":11.47,"date":"2025-12-30","moon_free_dark_hours":1.72,"moon_illumination":83,"moon_separation":35.7,"score":7,"score_astronomy":27,"score_weather":25,"transit_alt":89.5,"transit_local":"18:30","verdict":"poor","weather_source":"history","weekday":"Tue"}],"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-12-01","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}}
