Analyze historic course weather
analyze_historic_course_weatherFull Description
Retrieves historic weather data for a running event's course and returns a compact plot payload for visualization. Returns temperature ranges (5-year min/max band, average, and previous year actuals), plus sanitized data for precipitation, humidity, and wind. Use this when the user asks about expected weather conditions, temperature forecasts, or what to expect on race day based on historical patterns.
Personalized mode: If a pacing plan has already been generated for the same event in this conversation, ALWAYS include it as the pacing_plan parameter — personalized weather is strictly better than default mode and users expect it. To generate one, FIRST call get_personalized_pacing_plan to get splits, THEN pass its complete data object as the pacing_plan parameter to this tool WITHOUT trimming or sampling the splits array. The most robust approach is to pass the pacing plan output as-is (unit_system + assumptions + full splits). Personalized mode shows weather at projected arrival times rather than linear distance-to-time mapping.
Key requirements for personalization to succeed: 1. Pass the COMPLETE splits array from the pacing plan (every segment, not a subset). 2. Include assumptions.start_time (critical field). 3. Use the same unit_system in the pacing_plan as was used when calling get_personalized_pacing_plan. The pacing_plan unit_system must match the resolved weather data unit system for personalization to activate (the API may rarely fall back to the opposite system if data is unavailable). 4. Use consistent HH:MM:SS 24-hour zero-padded format for all clock times.
Fallback behavior: If pacing_plan is missing, invalid, or cannot be parsed, the tool automatically falls back to default mode (linear mapping from start to cutoff). The tool never fails due to a malformed pacing plan.
Input: event name + optional unit system + optional pacing_plan. Output: event identity, schedule context, mode flags, compact plot payload, sanitized weather data, and summary.
When ok is false: Do NOT present weather data or forecasts as if the tool succeeded. Always quote the error message to explain the failure. If error_code is EVENT_NOT_SUPPORTED, the requested event is not yet supported by RunReady — tell the user RunReady doesn't have this race yet (not that it doesn't exist), list suggested_events as alternatives if present, and mention get_supported_events for the full list. If error_code is absent, it is an operational error (e.g., weather data not yet generated) — relay the error message without claiming the race is unsupported.
Parameters (1 required, 2 optional)
race_namestringThe event to look up weather data for. Partial names and common abbreviations accepted, full names work best. (e.g., 'CIM', 'California International Marathon')
pacing_planobjectOutput from get_personalized_pacing_plan — call get_personalized_pacing_plan first, then pass its complete data object here as-is WITHOUT modification. Include unit_system, all assumptions fields, and the full splits array (every segment, not a sampled subset). Omitting splits or passing only a few (e.g., start/half/finish) will cause fallback to default mode. When valid, enables personalized weather at projected arrival times; chart shows ±1 hour from start/finish and labels the end marker "Finish (goal)" instead of "Cutoff". Falls back to default mode automatically if missing or invalid.
unit_systemstringControls whether weather data distances are in miles or kilometers.
imperialmetric