{"calculation_version":"2026-10-10.1","days":30,"nights":[{"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"},{"best_hours":1.25,"best_label":"marginal","best_window":"18:45\u201320:00","dark_hours":11.46,"date":"2025-12-31","moon_free_dark_hours":0.4,"moon_illumination":91,"moon_separation":45.2,"score":11,"score_astronomy":27,"score_weather":40,"transit_alt":89.6,"transit_local":"18:25","verdict":"poor","weather_source":"history","weekday":"Wed"},{"best_hours":5.5,"best_label":"marginal","best_window":"18:45\u201300:15","dark_hours":11.45,"date":"2026-01-01","moon_free_dark_hours":0.0,"moon_illumination":97,"moon_separation":56.7,"score":34,"score_astronomy":34,"score_weather":100,"transit_alt":89.7,"transit_local":"18:20","verdict":"poor","weather_source":"history","weekday":"Thu"},{"best_hours":4.25,"best_label":"marginal","best_window":"18:45\u201323:00","dark_hours":11.44,"date":"2026-01-02","moon_free_dark_hours":0.0,"moon_illumination":100,"moon_separation":69.1,"score":41,"score_astronomy":49,"score_weather":83,"transit_alt":89.7,"transit_local":"18:15","verdict":"marginal","weather_source":"history","weekday":"Fri"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.43,"date":"2026-01-03","moon_free_dark_hours":0.0,"moon_illumination":100,"moon_separation":81.9,"score":0,"score_astronomy":68,"score_weather":0,"transit_alt":89.5,"transit_local":"18:10","verdict":"unusable","weather_source":"history","weekday":"Sat"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.42,"date":"2026-01-04","moon_free_dark_hours":0.0,"moon_illumination":97,"moon_separation":94.5,"score":0,"score_astronomy":82,"score_weather":0,"transit_alt":89.5,"transit_local":"18:10","verdict":"unusable","weather_source":"history","weekday":"Sun"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.4,"date":"2026-01-05","moon_free_dark_hours":0.88,"moon_illumination":92,"moon_separation":106.8,"score":0,"score_astronomy":100,"score_weather":0,"transit_alt":89.7,"transit_local":"18:05","verdict":"unusable","weather_source":"history","weekday":"Mon"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.39,"date":"2026-01-06","moon_free_dark_hours":2.1,"moon_illumination":84,"moon_separation":118.4,"score":0,"score_astronomy":100,"score_weather":0,"transit_alt":89.7,"transit_local":"18:00","verdict":"unusable","weather_source":"history","weekday":"Tue"},{"best_hours":0.0,"best_label":null,"best_window":null,"dark_hours":11.37,"date":"2026-01-07","moon_free_dark_hours":3.23,"moon_illumination":76,"moon_separation":129.1,"score":0,"score_astronomy":100,"score_weather":0,"transit_alt":89.6,"transit_local":"17:55","verdict":"unusable","weather_source":"history","weekday":"Wed"},{"best_hours":0.75,"best_label":"good","best_window":"23:00\u201323:45","dark_hours":11.36,"date":"2026-01-08","moon_free_dark_hours":4.32,"moon_illumination":67,"moon_separation":138.4,"score":39,"score_astronomy":100,"score_weather":39,"transit_alt":89.5,"transit_local":"17:50","verdict":"poor","weather_source":"history","weekday":"Thu"},{"best_hours":1.92,"best_label":"good","best_window":"21:00\u201322:55","dark_hours":11.34,"date":"2026-01-09","moon_free_dark_hours":5.4,"moon_illumination":57,"moon_separation":145.8,"score":53,"score_astronomy":100,"score_weather":53,"transit_alt":89.6,"transit_local":"17:50","verdict":"marginal","weather_source":"history","weekday":"Fri"},{"best_hours":1.0,"best_label":"good","best_window":"21:00\u201322:00","dark_hours":11.32,"date":"2026-01-10","moon_free_dark_hours":6.43,"moon_illumination":47,"moon_separation":149.9,"score":32,"score_astronomy":100,"score_weather":32,"transit_alt":89.7,"transit_local":"17:45","verdict":"poor","weather_source":"history","weekday":"Sat"}],"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-12","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}}
