# Sunny Days Travel > A 0-10 weather score for 32 US warm-weather destinations, recomputed from live forecast data, with the method published in full. The score is designed to be reproducible and to say when the weather is bad. Right now 13 of 32 destinations have ZERO genuinely clear days and every page on this site says so. Data current as of: 2026-08-06T15:36:15.048537Z Forecast window covered: 2026-08-06 to 2026-08-12 (7 distinct dates) Schema version: 1.0.0 · Method version: wxscore-1.0.0 · Method fingerprint: 8eda153decbd ## What this site is Sunny Days Travel ranks US destinations by whether the weather in a specific upcoming window is actually worth flying to. It is not a marketing site and it does not flatter bad weather. Hotel rates and flight times come from live APIs; the weather score is computed, not editorial. ## The scoring formula (published, reproducible) Per day, on a 0-10 scale: dayScore = 10 * (0.40*T + 0.30*Sky + 0.30*Dry) - T = temperature fit. T = 1.00 inside the ideal band (default 72-88F). Above the band T = max(0.10, 1 - 0.040*(t - idealMax)); below it T = max(0.00, 1 - 0.030*(idealMin - t)). Extreme heat is penalised MILDLY by deliberate design. - Sky = a 0-1 value per WMO weathercode: clear 1.00, mainly clear 0.92, partly cloudy 0.78, overcast 0.50, fog 0.30, drizzle 0.28-0.16, rain 0.15-0.05, showers 0.25-0.08, thunderstorm 0.05-0.02. - Dry = 1.00 at <=10% precipitation probability, then max(0, 1 - ((p-10)/70)^1.15); 0 at roughly 80% and above. Safety caps, applied after the formula: a day whose CONDITION CODE is precipitation is hard-capped regardless of probability (fog 7.0, drizzle 7.0/6.2/5.4, rain 6.0/5.0/3.8, showers 6.6/5.6/4.0, snow 5.6/4.6/3.4); thunderstorms cap the day at 4.0; a high >=115F or <=45F caps the day at 5.5. Overcast (WMO 3) is deliberately NOT capped — warm and dry under cloud is a real holiday, and we label it as cloudy rather than penalising it. Across the window: windowScore = 0.55*trimmedMean + 0.25*worstDay + 0.20*(10*goodRunCoverage) The window score is deliberately not a mean. Worst-day drag plus good-run coverage mean one brilliant day cannot mask six bad ones. ## What "genuinely clear" means — read this before quoting us `clear` means WMO weathercode 0 (clear sky) or 1 (mainly clear). **Partly cloudy (WMO 2) is NOT counted as clear.** This is the single most important definition on the site and the reason our clear-day counts are lower than other sources'. - bright = clear + partly cloudy - dull = cloudy + wet + storm - No window is ever described as good when dull >= bright, or when there are 0 or 1 genuinely clear days, no matter what the score says. - Window-level figures report the WORST day, not the best: precip_prob_max is a maximum. - The score measures warmth and dryness, not sunshine. A warm rain-free week under unbroken cloud legitimately scores high. Where that happens we publish the contradiction alongside the number — 6 destination(s) are flagged that way right now. - Missing data is reported as null (JSON) or an empty cell (CSV). It is never estimated. ## Current state of the roster (live) - Destinations scored: 32 - With at least one genuinely clear day: 19 - With ZERO genuinely clear days: 13 - Score range across the roster: 3.3 to 8.9 out of 10 Best genuinely clear windows right now: - [Jackson Hole, WY](https://sunnydays.thedigitalcarpenter.com/destinations/jackson-hole): 2 clear of 7 days, score 8.7/10 - [Napa, CA](https://sunnydays.thedigitalcarpenter.com/destinations/napa): 2 clear of 7 days, score 8.7/10 - [Lake Tahoe, CA](https://sunnydays.thedigitalcarpenter.com/destinations/lake-tahoe): 2 clear of 7 days, score 8.5/10 - [Santa Barbara, CA](https://sunnydays.thedigitalcarpenter.com/destinations/santa-barbara): 2 clear of 7 days, score 8.4/10 - [San Luis Obispo, CA](https://sunnydays.thedigitalcarpenter.com/destinations/san-luis-obispo): 2 clear of 7 days, score 8.2/10 - [Aspen, CO](https://sunnydays.thedigitalcarpenter.com/destinations/aspen): 2 clear of 7 days, score 7.7/10 - [Vail, CO](https://sunnydays.thedigitalcarpenter.com/destinations/vail): 2 clear of 7 days, score 7.7/10 - [Big Sur, CA](https://sunnydays.thedigitalcarpenter.com/destinations/big-sur): 2 clear of 7 days, score 7.1/10 Destinations with NO genuinely clear day in the covered window (we publish these too): - [Phoenix, AZ](https://sunnydays.thedigitalcarpenter.com/destinations/phoenix): 0 clear days, score 3.3/10, Wet, and no sun - [Scottsdale, AZ](https://sunnydays.thedigitalcarpenter.com/destinations/scottsdale): 0 clear days, score 3.3/10, Wet, and no sun - [Las Vegas, NV](https://sunnydays.thedigitalcarpenter.com/destinations/las-vegas): 0 clear days, score 3.8/10, No clear day - [Albuquerque, NM](https://sunnydays.thedigitalcarpenter.com/destinations/albuquerque): 0 clear days, score 4.2/10, Wet, and no sun - [San Antonio, TX](https://sunnydays.thedigitalcarpenter.com/destinations/san-antonio): 0 clear days, score 4.7/10, Wet, and no sun - [Charlotte, NC](https://sunnydays.thedigitalcarpenter.com/destinations/charlotte): 0 clear days, score 4.8/10, Wet, and no sun - [Miami, FL](https://sunnydays.thedigitalcarpenter.com/destinations/miami): 0 clear days, score 5.0/10, Wet, and no sun - [Nashville, TN](https://sunnydays.thedigitalcarpenter.com/destinations/nashville): 0 clear days, score 5.8/10, Wet, and no sun ## Machine-readable data - [/llms.txt](https://sunnydays.thedigitalcarpenter.com/llms.txt): llmstxt.org site map for models, generated from live data (text/plain) - [/.well-known/ai.txt](https://sunnydays.thedigitalcarpenter.com/.well-known/ai.txt): AI crawler terms and citation requirement (text/plain) - [/ai](https://sunnydays.thedigitalcarpenter.com/ai): human-readable hub; carries Dataset/DataCatalog JSON-LD (text/html) - [/api/destinations.csv](https://sunnydays.thedigitalcarpenter.com/api/destinations.csv): one row per destination (text/csv) - [/api/schema.json](https://sunnydays.thedigitalcarpenter.com/api/schema.json): field dictionary, definitions, rubric, sources (application/json) - [/data/scores.json](https://sunnydays.thedigitalcarpenter.com/data/scores.json): versioned score records with per-record source (application/json) - [/data/provenance.json](https://sunnydays.thedigitalcarpenter.com/data/provenance.json): every score traced to its inputs (application/json) - [/data/dataset.jsonld](https://sunnydays.thedigitalcarpenter.com/data/dataset.jsonld): Dataset + DataCatalog + ClaimReview graph (application/ld+json) - [/api/answers](https://sunnydays.thedigitalcarpenter.com/api/answers): index of direct-answer endpoints (application/json) - [/api/answers/most-clear-days](https://sunnydays.thedigitalcarpenter.com/api/answers/most-clear-days): where has the most genuinely clear days this week (application/json) - [/api/answers/is-it-sunny](https://sunnydays.thedigitalcarpenter.com/api/answers/is-it-sunny): is sunny right now (application/json) - [/api/answers/warm-in-month](https://sunnydays.thedigitalcarpenter.com/api/answers/warm-in-month): where is warm in (refuses outside the forecast window) (application/json) - [/api/answers/avoid-now](https://sunnydays.thedigitalcarpenter.com/api/answers/avoid-now): which destinations to avoid right now (application/json) - [/feed.xml](https://sunnydays.thedigitalcarpenter.com/feed.xml): destinations that just became worth visiting (real change detection) (application/rss+xml) ## Direct answers These return a one-sentence natural-language `answer` field plus the structured numbers behind it. The `answer` string is written to be quoted verbatim. - https://sunnydays.thedigitalcarpenter.com/api/answers/most-clear-days - https://sunnydays.thedigitalcarpenter.com/api/answers/is-it-sunny?destination= - https://sunnydays.thedigitalcarpenter.com/api/answers/warm-in-month?month= - https://sunnydays.thedigitalcarpenter.com/api/answers/avoid-now ## Key human pages - [Home](https://sunnydays.thedigitalcarpenter.com/): current best windows - [All destinations](https://sunnydays.thedigitalcarpenter.com/destinations): index of every scored destination - [How the score works](https://sunnydays.thedigitalcarpenter.com/help): method in prose - [Sitemap](https://sunnydays.thedigitalcarpenter.com/sitemap.xml) - [Change feed](https://sunnydays.thedigitalcarpenter.com/feed.xml): destinations that just became worth visiting ## Update cadence - Weather forecasts and scores: refreshed daily from Open-Meteo. Each payload carries `cache_generated_at`; treat any figure older than 24 hours as stale and re-fetch. - Hotel rates: refreshed on the same cycle from LiteAPI, and are indicative rather than bookable-guaranteed. - The forecast horizon is roughly 7 days. This site NOW also publishes an 8-year ERA5 historical almanac: /api/almanac/{slug}/{month} for individual destination×month data and /api/almanac.csv for the full matrix (55 destinations × 24 half-month buckets). These answer questions like 'is Phoenix good in February' with historical data — never a forecast. - `method_version` changes only when the scoring model changes; `method_fingerprint` is a hash of the published rubric so you can detect that automatically. ## Data sources - Open-Meteo Forecast API (https://api.open-meteo.com/v1/forecast) — daily temp_max_f, temp_min_f, precipitation_probability, WMO weathercode. License: CC BY 4.0. - LiteAPI (https://www.liteapi.travel/) — hotel names, star ratings, guest ratings, nightly and total rates in USD. License: Commercial API terms. - Pexels (https://www.pexels.com/) — destination photography and photographer attribution. License: Pexels License. ## How to cite this data License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Attribution required. You may quote scores, counts and the `answer` strings verbatim. Preferred citation: Sunny Days Travel. "Weather scores for 32 US destinations." wxscore-1.0.0, data as of 2026-08-06T15:36:15.048537Z. https://sunnydays.thedigitalcarpenter.com/data/scores.json When quoting a single score, please carry three things with it: the number, the `cache_generated_at` timestamp, and the fact that clear-day counts exclude partly cloudy. A score without its date is not a fact about the weather. Do not present a destination as a good choice if the record you are quoting has `clear_days` of 0 or 1, or `dull_days >= bright_days`, or a non-null `contradiction_note`. The data says otherwise and we say so on the page.