{"generated_at":"2026-08-17T15:29:12.762321+00:00","timezone":"America/Denver","greenhouse_id":"vallery","data_health_status":"ok","climate_age_seconds":59,"open_critical_high_alerts":0,"planner_score_today":53.6,"planner_score_scope":"climate_only_resource_excluded","planner_score_resource_weight_pct":0,"planner_score_resource_terms_available":false,"both_axis_compliance_pct":53.6,"graded_compliance_attributable_pct":null,"temp_compliance_pct":48.5,"vpd_compliance_pct":40.6,"stress_axis_hours":8.28,"active_plan_id":"preemptive-20260817-1243","active_plan_status":"active","last_plan_id":"iris-20260817-0615","last_validated_plan_id":"iris-20260817-0017","cost_today_usd":null,"water_today_gal":null,"resource_accounting":{"water":{"date":"2026-08-17","greenhouse_id":"vallery","quality_filtered_meter_gal":0.0,"attributed_gal":0.0,"climate_wetting_gal":0.0,"wall_irrigation_gal":0.0,"wall_fertigation_gal":0.0,"unsupported_path_gal":0.0,"ambiguous_gal":0.0,"manual_or_unattributed_gal":0.0,"command_only_runs":0,"ambiguous_runs":0,"meter_attributed_runs":0,"conservation_error_gal":0.0,"ledger_quality":"partial_day","resource_quality":"partial_day","available_for_scoring":false},"energy":{"date":"2026-08-17","kwh_estimated":null,"measured_kwh":4.291,"estimate_delta_kwh":null,"quality_flag":"missing_runtime_model","greenhouse_id":"vallery","modeled_kwh_low":null,"modeled_kwh_high":null,"coefficient_revisions":[{"low":8,"high":12,"unit":"W","source":"operator","nominal":10,"revision":"operator_catalog_2026_07_09","equipment":"vent","evidence_ref":"migration:085"},{"low":102,"high":124,"unit":"W","source":"meter_fit","nominal":113,"revision":"meter_fit_2026_07_09","equipment":"fan1","evidence_ref":"issue:#437,july-9-meter-audit"},{"low":102,"high":124,"unit":"W","source":"meter_fit","nominal":113,"revision":"meter_fit_2026_07_09","equipment":"fan2","evidence_ref":"issue:#437,july-9-meter-audit"},{"low":315,"high":620,"unit":"W","source":"meter_fit","nominal":468,"revision":"meter_fit_2026_07_09","equipment":"fog","evidence_ref":"issue:#437,july-9-meter-audit"},{"low":567,"high":693,"unit":"W","source":"operator","nominal":630,"revision":"operator_fixture_count_2026_07_09","equipment":"grow_light_main","evidence_ref":"vault:equipment.md"},{"low":734.4,"high":897.6,"unit":"W","source":"operator","nominal":816,"revision":"operator_fixture_count_2026_07_09","equipment":"grow_light_grow","evidence_ref":"vault:equipment.md"},{"low":1350,"high":1500,"unit":"W","source":"meter_fit","nominal":1436,"revision":"meter_fit_2026_07_09","equipment":"heat1","evidence_ref":"issue:#437,july-9-meter-audit"}],"modeled_scope":"whole_controlled_equipment_runtime","measured_scope":"partial_shelly_two_channels","meter_coverage_pct":39.3,"runtime_coverage_pct":0.0,"model_quality":"incomplete_runtime","measured_quality":"partial_day","modeled_available_for_scoring":false,"measured_available_for_scoring":false,"runtime_evidence":"[{\"quality\": \"partial_day\", \"eligible\": false, \"equipment\": \"fan1\", \"complete_day\": false, \"start_state_known\": true}, {\"quality\": \"partial_day\", \"eligible\": false, \"equipment\": \"fan2\", \"complete_day\": false, \"start_state_known\": true}, {\"quality\": \"partial_day\", \"eligible\": false, \"equipment\": \"fog\", \"complete_day\": false, \"start_state_known\": true}, {\"quality\": \"partial_day\", \"eligible\": false, \"equipment\": \"grow_light_grow\", \"complete_day\": false, \"start_state_known\": true}, {\"quality\": \"partial_day\", \"eligible\": false, \"equipment\": \"grow_light_main\", \"complete_day\": false, \"start_state_known\": true}, {\"quality\": \"partial_day\", \"eligible\": false, \"equipment\": \"heat1\", \"complete_day\": false, \"start_state_known\": true}, {\"quality\": \"partial_day\", \"eligible\": false, \"equipment\": \"vent\", \"complete_day\": false, \"start_state_known\": true}]"},"scalar_policy":"water_today_gal is null unless ledger conservation/coverage is scoring-eligible; modeled and partial-measured energy remain separate"},"active_relays":["heat1"],"active_control_crops":2,"public_plan_records":377,"climate_rows":393966,"lesson_rows_active":168,"controller_mode":"IDLE","planner_health":{"generated_at":"2026-08-17T15:29:19.907691+00:00","missed_expected_count":0,"overdue_delivered_count":0,"required_failure_count":0,"resolved_count":7,"recent_expected_count":13,"latest_required":[{"due_at":"2026-08-18T02:24:07.637621+00:00","status":"expected","instance":"local","event_type":"SUNSET","trigger_id":null,"event_label":"Evening planning cycle","expected_at":"2026-08-18T01:54:07.637621+00:00","resolved_at":null,"delivered_at":null,"resulting_plan_id":null},{"due_at":"2026-08-17T12:45:25.663044+00:00","status":"plan_written","instance":"local","event_type":"SUNRISE","trigger_id":"e964e60e-8659-447a-ae9e-6379795db33e","event_label":"Morning planning cycle","expected_at":"2026-08-17T12:14:03.574443+00:00","resolved_at":"2026-08-17T12:20:30.451556+00:00","delivered_at":"2026-08-17T12:15:25.662663+00:00","resulting_plan_id":"iris-20260817-0615"},{"due_at":"2026-08-17T06:47:20.824708+00:00","status":"plan_written","instance":"local","event_type":"MIDNIGHT","trigger_id":"bc07ac3b-3032-46cc-8bb5-90cdc918f6bc","event_label":"End-of-day review and reset","expected_at":"2026-08-17T06:15:00+00:00","resolved_at":"2026-08-17T06:20:03.846224+00:00","delivered_at":"2026-08-17T06:17:20.823593+00:00","resulting_plan_id":"iris-20260817-0017"}]},"planning_quality":{"planner_score_today":53.6,"planner_score_scope":"climate_only_resource_excluded","planner_score_resource_weight_pct":0,"resource_terms_available":false,"both_axis_compliance_pct":53.6,"graded_compliance_attributable_pct":null,"temp_compliance_pct":48.5,"vpd_compliance_pct":40.6,"stress_axis_hours":8.28,"stress_breakdown":{"heat_h":3.78,"cold_h":0.0,"vpd_high_h":0.96,"vpd_low_h":3.54},"last_validated_plan":{"plan_id":"iris-20260817-0017","outcome_score":4,"validated_at":"2026-08-17T12:15:50.406763+00:00"},"last_plan":{"plan_id":"iris-20260817-0615","created_at":"2026-08-17T12:20:30.451556+00:00","age_s":11326,"outcome_score":null,"validated_at":null,"status":"awaiting outcome"},"latest_lesson":{"id":264,"category":"cooling","lesson":"On convective/variable-cloud days, an accurate outdoor-temperature forecast does not validate the solar forecast: solar can exceed the predicted peak by more than 3x and create multi-hour heat/VPD-high stress. Keep morning thermal lead and moisture authority live-edge-triggered and band-coupled rather than suppressing them from a low solar forecast alone.","confidence":"medium","times_validated":2,"last_validated":"2026-08-14T12:14:20.481549+00:00"}},"operations":{"data_health_status":"ok","latest_climate_ts":"2026-08-17T15:28:17.586657+00:00","latest_climate_age_s":59,"open_critical_high_alerts":0,"active_controller_mode":"IDLE","active_relays":["heat1"],"active_plan_id":"preemptive-20260817-1243","active_plan_status":"active","active_plan_age_s":9967,"last_plan_age_s":11326,"cost_today_usd":null,"water_today_gal":null,"mister_water_today_gal":null,"water_accounting_status":"partial_day","water_accounting_incomplete":true,"water_accounting_details":"accepted meter gallons are conserved across attributed, ambiguous, and manual_or_unattributed; inspect resource_accounting.water for coverage"}}