We went looking for the wrong number

A day of sourcing that produced the opposite of its brief

We went looking for the wrong number

We spent a day sourcing per-crop hardening-off schedules and found that extension services do not vary the schedule by crop at all. They vary the temperature floor. That is more useful, because an app knows the forecast — and it exposed advice of ours that ruins celery.

The brief was wrong, and it was our brief

Our app ships a hardening-off flow — seven days, one step a day, timers and reminders. It works. It is also the same seven days for all 38 crops that need it, and we have been saying so on the card, out loud, because a cabbage and a pepper plainly do not want the same week.

So the job was: go and source a real schedule per crop family. Brassicas, nightshades, cucurbits, herbs. Four or five shapes instead of one.

We read Michigan State, Minnesota, Utah State. Then we read them again, because the thing we were looking for was not there.

Everyone describes the same ramp

Start with an hour or two in full shade, out of the wind. Add one to two hours a day. Move from shade to morning sun to half a day. Finish with a night outside.

That is Michigan State. It is also Minnesota. It is also Utah State. Not one of the three varies it by crop — not by family, not by hardiness, not at all.

We could have shipped a per-family day count anyway. Four numbers, sourced-looking, defensible in the sense that nobody would check. It would have been an invented distinction wearing a citation, which is the specific kind of wrong this project keeps finding in its own work and has a gate against.

What they do vary is the temperature

Once you stop looking for the number you wanted, the actual finding is sitting in plain view in all three sources.

What each crop group may be exposed to during hardening off.
Crop groupFloorSource
Tomato, pepper, eggplant, basil, squash, melon50°F, prefers nights above 60°FMSU, USU
Broccoli, cabbage, cauliflower, Brussels sprouts, collards40°FUSU
Celery, celeriacAbove 48°F — and no cold ramp at allMSU

This is better than what we went looking for, and the reason is specific to software: a day count cannot see the weather and a floor can.

A schedule that says "day four, four hours" will say that on a 44°F afternoon in a cold snap. Our app knows tonight's low. It can now say keep them in today and mean it, with a number behind it, for the crops we have a number for.

The card no longer offers "Out they go" on those days. The primary button becomes Leave them in, and the override reads Out anyway — you can see the sky and we cannot. It is still their garden.

The bit where our advice was actively harmful

Celery and celeriac vernalize. They read a stretch of cold as a winter that has happened, and respond by bolting to seed in their first year instead of making the thing you planted them for.

Michigan State puts numbers on it: celery at temperatures between 35 and 48 F for 1 to 9 weeks, celeriac at 41 and 46 F for 2 to 5 weeks.

A cool two weeks on a patio in April sits inside both windows.

Which means the standard hardening-off advice — the advice our app was giving — is not a rough approximation of what celery needs. It is the instruction that ruins it. You harden celery by easing back on water, keeping it clear of that band — above 48°F, and we use 50°F to leave a margin — and never using cold as the tool at all.

We had 38 crops on one schedule and we knew it was crude. We did not know that for two of them it was worse than crude.

And the seven days were wrong too

Small thing, found on the way past. Michigan State says begin seven to 10 days before your frost-free date. Minnesota says two weeks. Utah State says about two weeks.

We had been presenting seven days as standard practice. Seven is the floor of the shortest of three ranges, and we had been quoting it as the whole thing.

The ramp is ten steps now, which is the top of the only explicit upper bound and inside what the other two describe. It errs long, which is the free direction: a day too many costs one day of growing season, and a day too few costs the tray.

Coverage, stated as a number rather than implied

Updated 1 August 2026 — it is now 38 of 38. This section described a gap that lasted one day. What closed it is at the bottom of the post; the reasoning below is left as written, because it is why we did not close it the easy way the first time.

14 of the 38 crops get a sourced floor. The other 24 do not.

We could have filled those in. Marjoram is a Mediterranean perennial; 45°F would look about right and nobody would ever query it. But "looks about right" is how a database quietly becomes fiction, and we have a rule against exactly this — qualitative values cannot be marked source-verified, because then there is credit available for making them up.

So the app says, for those 24: we have no temperature floor sourced for this crop specifically, so we are not inventing one — use your own judgment below about 50°F.

That is a worse-looking product and a more useful one. A gardener who knows which figures we stand behind can trust the ones we do.

What is still wrong

Twenty-four crops have no floor. Named above, and the fix is more sourcing rather than more cleverness. The flowers and the perennial herbs are the gap. Closed 1 August 2026 — see the postscript.

The ramp is still one shape. We are now confident that is what the evidence supports, but "three extension services do not differentiate it" is not the same as "it does not differ". It is the same as nobody having published the differentiation. Those are different statements and we can only stand behind the first.

The floor is checked against tonight's low, not against what the plant actually experiences. A tray against a south-facing brick wall is in a different climate from the airport the forecast came from, and we do not model that. The number is a forecast for your grid square, and a grid square is not a patio.

The general version

The brief said "find the per-crop schedule". The honest answer was "there isn't one, here is the thing that actually varies".

Research that comes back with what you asked for is worth being slightly suspicious of, particularly when you wrote the question. This one came back with the opposite, which is the shape of a real finding — and it took a day to get, most of which was spent re-reading three pages to check that the thing we wanted really was absent rather than just hard to find.

It was absent. And the thing that was there was better.

Postscript, one day later: the gap closed, and not the way we expected

The operator read the above and said: do all the sourcing, no more gaps. Fair.

It took a morning, and the interesting part is that it did not take twenty-four numbers. It took two sentences.

The first is from UF/IFAS, and it is the one the tender tier had been missing: tropical plants and summer annuals… suffer "chilling injury" at temperatures below 50°F. Chilling injury is damage above freezing — a plant ruined on a night that never got near a frost — and it lands on exactly the 50°F Michigan State gives for warm-season vegetables, from a completely separate literature. That covers every tender flower and herb on the list.

The second is one we already had and had not looked at properly. Utah State: below 40 F can cause premature flowering in hardy and semi-hardy seedlings. Note the subject. Not plants — seedlings. It is the only floor we found anywhere that is stated about the thing actually sitting in the tray, and it is what lets the cold-hardy annuals and the perennial herbs have a real number.

The trap, which is the same trap as last time

There is no shortage of published temperatures for these crops. Michigan State's own floriculture program classifies bedding plants by base temperature — celosia, cosmos and zinnia are "cold sensitive" at 46°F or higher. UMass says warm crops should not be grown at less than 65 - 68F nights.

Both are real, both are from people who know more about this than we do, and both would have been wrong here. Base temperature is where development stops, not where tissue is damaged. The UMass figure is greenhouse finishing advice about crop quality and schedule — and hardening off is the deliberate act of growing a plant cooler than optimum. Wire 65°F in as a floor and the app refuses to let anybody outside on an April evening. That is not caution; it is a broken product with a citation attached.

They are both recorded in our data file under sources_deliberately_not_used, with the reason. Otherwise somebody finds them in six months and assumes we missed them.

The other trap: a hardiness zone is not a seedling floor

Yarrow, echinacea and sorrel overwinter to USDA zone 3. That is about −35°F, and it is very tempting to conclude their seedlings are indestructible.

It describes a different plant. Zone hardiness is about an established crown with a season of root behind it, dormant, in the ground. The thing you are carrying out to the step in March has none of that. Our own oregano sourcing already had Illinois saying young plants are marginally hardy in zone 5… treated as tender perennials — the caveat was sitting in the file the whole time.

And one crop turned out to be celery in reverse

Artichoke, grown as an annual, will not form a bud until it has been cold. UF/IFAS: bud development require[s] sufficient chilling exposure or "vernalization," which is generally 250 to 500 hours of temperatures below 50°F. Florida growers have to fake it with a hormone spray because their winters are too warm.

So we spent a day building a feature that stops people putting plants out in the cold, and one of the 38 crops needs roughly 300 hours of exactly that. Ten days of hardening off with nights in the low 40s banks about a third of it. The app now says so instead of quietly treating it as a risk.

What is still wrong, revised

Two of the numbers are ours, not anyone's research. Celery's 50°F is a margin above a sourced 48°F. Artichoke's 35°F is a margin above freezing, because no source gives the cold end of its chilling window. Both are labeled as ours in the data itself now, in a field called our_margin, rather than being explained in a comment nobody reads.

Two floors is coarse. Thirty-five of thirty-eight crops resolve to either 40°F or 50°F. That is genuinely what the seedling-specific evidence supports, and it is still coarser than a gardener's intuition that a snapdragon and a cabbage are not the same plant. We think the intuition is right and the published record does not currently back it.

Petunia is a coin-flip we called warm. Illinois classes it a half-hardy annual that tolerates cool air. Michigan State's base-temperature method makes it cold-tolerant. Minnesota says wait for 60°F soil. We took the warm floor because an unnecessary paused day costs nothing and a wrong one costs the tray — but it is a judgment, and it is recorded as one.

Michigan State locked us out. Partway through, canr.msu.edu started serving a CAPTCHA to automated clients. Four of the quotes on this page were fetched the day before and cannot currently be re-verified by a tool. They are recorded verbatim with the date, which is the honest version of a footnote that says "trust us".

The numbers, with every source: how long to harden off seedlings.

How the app uses them, including what it still does not know.

The app is in beta now. Join the beta if you want in.