A sunny Saturday fills a garden centre and empties a cinema. That is the whole difficulty with weather and bidding in one line: the sky moves demand in a direction that belongs to your business, not to the weather. Before any of it is allowed to touch a bid, the work is to measure which way your own demand moves, hour by hour, by weather type and by temperature, across enough history for the pattern to be real rather than a good fortnight with a story attached. Until that is done, the honest setting is to watch and apply nothing.
The sun is not good news for every business
The common advice, bid harder when the sun is out, is right for only some advertisers.
For one group it is plainly right. A garden centre, a lido, a beer garden, an ice cream seller, a paddleboard hire shop: a hot Saturday can be the best trading day of the year, and holding budget flat through it leaves money on the table.
For another group, the same day is the problem. A cinema, an indoor soft play centre, a climbing wall, a snug restaurant, a home delivery service: when the country goes outside, their demand goes with it. Spending the same money into that day is how a fine spell quietly costs them.
For a third group, probably the largest of the three, the sky does not move the numbers by enough to act on at all. Most B2B buying, most professional services and most considered purchases with a long decision carry on regardless of whether it is raining.
The Office for National Statistics routinely attributes month-to-month swings in retail sales to weather, so the pattern itself is real enough. What it does not do is point the same way for everyone. That makes direction the first thing to establish, ahead of size: on a fine Saturday the right move might be to lean in, to ease off, or to leave the bid exactly where it is, and which of the three it is can be measured.
Collate it by hour, not by day
A day is not one trading condition. A bright morning followed by a wet afternoon is a single sunny day in a daily average, and the two halves of it may have sold completely differently.
So the join runs at hour level: each hour of trading matched to the weather and the temperature recorded for that hour. That does three things a daily join cannot.
It separates conditions that a daily average blends away. It multiplies the number of observations by twenty-four, so a real effect separates from noise far sooner and smaller effects become visible at all. And it arrives in the shape the bids are already scheduled in, because dayparting is hourly, so a finding can be acted on without translation.
One honest complication comes with it. A click at two in the afternoon may convert at eight in the evening, so the join has to decide whether it is crediting the weather at the moment of the click or at the moment of the sale. For a bidding decision it is the click, because that is the moment you chose to pay.
Start with weather type, because it is the coarsest honest cut
Weather type is where to begin, because it needs no modelling to understand and it is recorded the same way every hour.
Join the account's own hourly performance to the weather logged alongside it, then group them by type: clear, partly cloudy, overcast, rain and windy. Read the numbers that actually matter commercially for each group rather than just clicks, so conversions, conversion rate, revenue and cost per sale.
What you are looking for is a difference between the groups large enough to notice and consistent enough to trust. If clear and overcast conditions produce much the same cost per sale across a year, the sky is not your lever, and you can stop there with a useful answer.
The data is not hard to come by. The Met Office publishes station records, and hour-level observation history is available from its archives and from commercial weather APIs. Which one you use matters less than using the same one every time, so every reading is classified consistently rather than from memory.
What makes this worth doing is that no advertising platform reports it for you. Google Ads and Meta will break performance down by device, location, audience and hour of day, but none of them has a weather type or a temperature column. The weather is what you add to what they already give you. That join is built by hand, outside the platform, so it is a deliberate piece of work rather than a box to tick, and it repays being built properly once.
Temperature is a separate signal from weather type
A clear hour in February and a clear hour in July are the same weather type and an entirely different trading condition, which is why temperature has to be read on its own.
Sort the same hours into temperature bands, for example below 8°C, 8 to 16°C, 16 to 24°C and above 24°C, then read the same commercial numbers across those bands. Set the band edges from the spread of your own trading history rather than borrowing mine, because a business in Cornwall and a business in Aberdeen will not split sensibly at the same points.
Temperature also tends to behave differently from type. Type effects are often a step: it rains, and footfall changes. Temperature effects are more often a curve, rising towards a comfortable band and falling away at both ends. The hottest conditions can suppress demand as firmly as the coldest, and a business that only ever checks whether hot means good will miss the point where its own curve turns over.
A type is a label, a quantity is a dose
Weather type is a category, and categories round things off. Rain covers a five-minute drizzle and an hour that empties the high street, and those are not the same trading condition.
So alongside the type, log the quantities: millimetres of rain in the hour, wind speed, and temperature itself, which is a quantity until you choose to band it. A dose can be read as a curve in a way a label cannot. It finds the point where rain starts to matter, which is rarely the first drop, and the point where wind does, which for anything involving outdoor seating, deliveries or a beer garden can matter more than rain ever does.
Collecting it costs nothing extra. Open-Meteo publishes weather code, temperature, precipitation and wind speed together, free, with no key and a full historical archive, and it is where our own weather log already draws from. Precipitation and wind are captured alongside type and temperature from the first day, so when the question turns out to be about rainfall depth rather than whether it rained, the history to answer it is already there rather than starting from zero.
Weather is local, so the reading has to be
A business trading in one town can take one weather reading. A business trading in several cannot.
Matching every site to a single national or head-office reading is how a real signal gets averaged into nothing: on the same afternoon a branch in Cornwall and a branch in Aberdeen can be in opposite conditions, and blending them produces a number that describes neither. Each location needs matching to its own weather and its own performance before anything is pooled.
That is straightforward for a single site and a piece of bespoke work for an estate of them, because it has to follow how the business actually trades: by branch, by delivery area, by region, or by the catchment a shop genuinely draws from rather than the postcode it sits in.
The real pattern usually sits where type and temperature cross
Read together, type and temperature answer questions that neither answers alone. Clear at 24°C and clear at 6°C sit in the same type bucket and often behave nothing alike. Rain at 18°C is an inconvenience; rain at 3°C keeps people at home.
That crossing is where the data thins fastest, and it is the strongest argument for reading hours rather than days. Split a single year by five weather types and four temperature bands and some of those combinations hold only a handful of days, far too few to read anything into; the same year read finer gives every one of them room to fill. Even then, check how much sits behind each cell before believing it: a pattern resting on six readings is not a finding, however striking it looks on the chart.
Weather arrives tangled up with everything else that moves your week
This needs a proper test rather than a chart, because weather never turns up on its own.
Sunny days cluster in summer, and summer brings holidays, different competitors and different budgets. Fine weekends are still weekends, and the weekend effect is usually larger than any weather effect sitting on top of it. Payday falls where it falls. A promotion running through a warm fortnight will happily take the credit for it.
So an honest read holds those things steady before it attributes anything to the sky: hour of day, day of week, month or season, paydays and holidays, and whichever promotions were live. That first one matters most, because the warmest part of the day is also the middle of the afternoon, and an afternoon pattern will happily pass itself off as a temperature one. Without that step it is easy to conclude that the sun sells, when what has actually been rediscovered is Saturday.
What has to be true before it counts as a finding
A weather effect earns the right to change a bid only when all four of these hold at once:
- Enough history. At least a full year, so every temperature band and weather type has appeared across all four seasons, rather than in one hot fortnight.
- A large enough effect. The difference is big enough that acting on it earns more than the risk and the complexity it adds.
- Statistical significance. The pattern passes a standard test at p < 0.05, which in plain terms means a pattern this strong would turn up by chance less than one time in twenty. An eyeball over a good week is not that test.
- Out-of-sample proof. The effect still shows on periods deliberately held back from the model, the check that separates a rule from a coincidence. Hold back whole weeks rather than scattered hours: two neighbouring hours of the same afternoon are almost the same weather, so splitting them across the test lets the model see the answer in advance and mark its own homework.
Miss any one of the four and you are bidding on a hunch dressed as data.
The second test is the one worth dwelling on, because an effect can be entirely real, statistically significant, and still too small to trade on. If clear skies move conversions by an amount the ordinary noise of the week swallows, acting on it adds risk without adding profit. That is a perfectly good reason to leave the bid alone.
The longer it runs, the stronger the answer gets
This is the rare piece of marketing infrastructure that improves while you leave it alone.
Historical weather can be backfilled from the archive, so the weather side of the join starts complete. What cannot be hurried is the pairing of that weather with your own trading history, in your own locations. As that pairing runs, the picture sharpens: thin bands fill out, an effect that looked convincing across a fortnight either holds or dissolves, and the next question gets answered faster than the last one.
Twelve months is where it changes character. At a full turn of the seasons each temperature band and weather type has had its chance to appear in context, the summer effect can be told apart from summer itself, and a hold-out check has enough behind it to mean something. Before that you are reading a fragment. After it, you hold an asset that answers the next question in an afternoon instead of starting another year of collection.
A proven weather signal is worth more on the website than in the bid
The bid is the obvious lever and the smallest one.
The same join, pointed at the coming forecast rather than at the history behind it, can decide what the website actually shows: the hero banner, the featured products, the offer that leads the category page. And because the forecast is published by the hour as well, the page can move with the day rather than being set once at breakfast: parasols and cold drinks through a 26°C afternoon, something else entirely when the rain arrives at four.
That is a better lever than bidding for two reasons. It does not cost anything extra per click, because it changes what the visitor already on your site sees rather than what you paid to get them there. And it works for the businesses whose demand the sun takes away: if a hot Saturday empties your category, re-merchandising the page is a way to trade well through it rather than simply spending less.
The bar does not move for this. A banner rule driven by the forecast is still a weather rule, so it earns its place the same way: measured on real history, significant, large enough to matter, and holding on periods the model never saw.
It does carry one risk a bid does not, and it is worth saying plainly. A bid quietly changes what you pay; a banner changes what every visitor sees, so a wrong call there is visible to customers rather than only to you. That is an argument for measuring it before switching it on, not for leaving the lever alone.
A measured signal still starts switched off
When a weather rule does get built, observation is its default state, not a stage on the way to somewhere else. It does not begin by spending money, and it does not graduate on a timetable.
Inside Crane Engine it runs live but inert: every day it proposes the adjustment it would have made and applies exactly zero, so its suggestions can be watched against what actually happened with nothing at stake. It leaves observation only when the effect clears the significance threshold, is large enough to matter and still holds on unseen days, and then only when a person arms it by hand. If it never clears that threshold it never leaves, and that is an acceptable end state rather than a failure. No model switches itself on. That last call weighs profit against added complexity, and it belongs to a human.
A finding of no signal is the common outcome, and it is genuinely useful. It means the sky is not moving your demand in any way worth chasing, and your paid media budget is better spent on the levers that are.
Ask which way the weather moves you, not whether it does
You do not need to build any of this yourself. You need to know whether it has been done, and the question is sharper than it first sounds.
Ask whoever runs your advertising: have we measured which way weather moves our demand, by weather type and by temperature, and does it still hold once the weekend and the season are accounted for? If the answer involves a real join of performance to logged weather, a year or more of it, a significance test and a hold-out check, you have something you can trust. If it is a shrug, or a story about last summer, the honest setting is to watch and apply nothing until the numbers say otherwise.