Log updated August 26, 2026 · 103 changes across 16 days

August 26, 2026

A grower called Kolton wrote in to ask for it: he wanted to see only the bids he could actually deliver against, instead of reading past nine other delivery months to find his. The page now has a Delivery box beside the sort control -- pick a month, or "Harvest", and everything below it obeys: the elevator list, the three headline cards at the top, and the what-that-drive-is-worth calculator. The choice survives a reload, so coming back to the page does not mean setting it again. Thank you Kolton -- this one was your idea, and so is most of what is below it.

A basis of -55 cents means nothing on its own. Against December corn it is one number; against March it is a different trade entirely, and two elevators quoting -55 and -45 are not comparable at all if they are quoting against different contracts. Each commodity on each elevator card now carries a short strip -- Sep26 $5.14, Dec26 $5.37, Mar27 $5.51 -- and each row is tagged with the contract its basis is quoted against, where that differs from the delivery month. The futures price is worked out from that elevator's own two published numbers, its cash minus its own basis, and nothing else; no outside quote feed is involved. Where an elevator's own rows do not agree on what the futures must be -- which happens when a board rounds its cash price -- the page prints nothing for that contract rather than guessing. Kolton asked for this one too.

Under any bid whose history we hold, a line now says what the basis was before its last move and the day it moved -- a red down arrow when it got weaker for the seller, a green up arrow when it got stronger, and "no change since" with a date when it has not moved at all. Some of these are more interesting than a price: Big River at Boyceville has not touched its new-crop corn basis since the ninth of June. The history is this site's own -- the national bid file has been committed here daily since June, so its record of what every elevator was posting was already sitting in the archive; it is now kept deliberately rather than by accident, and a state's worth of it is about eight kilobytes, fetched only for the states you are actually looking at. Where the basis on the board no longer matches the last one on file, the line says "moved since" and the date we last looked, rather than naming a day it cannot know. This was the second thing Kolton asked for and the one he said he would miss most.

Shipped in the morning and wrong by lunchtime. The filter matched on the first day of an elevator's delivery window rather than the contract month printed on the row, and 55 of the 345 bids then live had a window that opened in a different month from the month they were posted under. Asking for November therefore hid a genuine November bid -- including one at Heartland Co-op of Council Bluffs -- from the exact person who had asked for the filter. It now matches on the contract month, and falls back to the window only where a row's label cannot be read at all.

A basis of exactly zero -- the strongest basis anybody on the board was posting -- was being read as no basis at all, printed as a dash, and sorted below elevators bidding 80 cents under. Twenty-one of the 345 live rows were affected, including the two best soybean bids on the page. The cause was a single line that treated the number zero as if it meant nothing.

One elevator posts soybean meal on the same board as soybeans, priced per ton rather than per bushel. The page rescaled that per-ton figure into something that looked like a bushel price, called it $1.20 soybeans, and put it in the Best Soybeans card at the top of the page. Prices that cannot be a bushel price for their crop are now withheld and counted rather than quietly rescaled into looking sensible.

The banner above the Worth The Drive table ranked elevators on price alone while the table underneath ranked them on what you actually keep after the fuel to get there. On a 1,000 bushel load at $1.75 a gallon they disagreed by $92 and named two different elevators. The banner now ranks on the same net figure the table does.

On a 375-pixel screen the word "Delivery:" rendered ten pixels wide and 178 pixels tall -- one letter per line, straight down the page -- because the row holding it refused to wrap. Both controls now wrap as a pair, a label never breaks between letters, and the green winner banner above the drive table wraps like the sentence it is instead of stacking "+$727" vertically.

The column headings did not sit over their columns. CASH/BU was nineteen pixels right of the price beneath it and DELIVERY seventeen off its own column, at every screen width from a 320-pixel phone to a 1920-pixel monitor, because the heading row and the price rows were two separate grids that each sized themselves to their own contents. They now share one set of widths. The price rows were also indented eleven pixels further than the heading above them, so the inside of every card stepped in and out for no reason; every block on the page now starts and ends on the same two edges. Basis was printing a hyphen where the money beside it printed a minus sign, so a column of +48 and -52 never sat straight. One elevator's phone number arrived as ten unbroken digits next to two hyphenated ones, and one branch name arrived in capitals; both are now formatted for reading rather than passed through. Total Net was rounding to $4.61k while the column beside it counted to the dollar. The search box was 540 pixels wide and four rows tall in the middle of a 1320-pixel page, which pushed the bids most of a screen down; above 720 pixels it is one row across the full width, and above 1180 the elevator list runs three and then four cards across instead of two. Tick marks, a circled question mark and a marketing badge are gone.

August 16, 2026

The storm swath layer, the last-30-days view and the play button were sitting underneath another control bar on any screen narrower than 640 pixels. Not hidden -- covered, so a thumb landing on "Storm swaths" hit the button behind it instead. Anyone arriving on a phone looking for swaths or the live layer could not reach either one. The cause was a single styling rule: two bars were told to stick to the same line at the bottom of the map, and one of them was a bar the page had already switched off and which was refusing to go. That same bar was also putting a date stepper under the five-year map, where there is no date to step to, and showing the words "radar-estimated, not a ground measurement" underneath a map made entirely of human ground reports -- a caution attached to the wrong thing. All of it was one line. The page is 245 pixels shorter on a desktop and 314 shorter on a phone, and the nine map controls are all reachable again. Found by putting the page in front of a review panel, including one reviewer whose only job was to try to prove the others wrong -- which is also how four things the panel reported turned out to be faults in how we photographed the page rather than faults in the page.

Open the site and the briefing used to lurch twice before it settled -- the headline, the lead paragraph and the takeaway all dropping a line, and the whole page sliding upward once the navigation arrived. Two causes, both measured. The date line under AGSIST DAILY ships empty and gets filled a moment later, and nothing was holding its space, so everything below it moved down 32 pixels. And the plain navigation that non-JavaScript readers and search crawlers see was rendering four lines deep on eight pages before being swapped for the real one, which is a single line -- so those pages jumped 171 pixels upward. Both now hold their space. Google scores this; the home page went from 0.356 to 0.098 against a 0.1 threshold for good, and the cash bids page and field scout went to a flat zero.

On a day with no quote, the briefing script hid the Daily Quote card -- except three styling rules added to force those cards visible on phones were written strongly enough to overrule it. The card stayed on screen containing nothing but a dash. Same for the Things You Might Know block. Both now hide properly when there is nothing to put in them, and both were tested twice: once with the data present, once with it stripped out.

The last-close tables on the corn, soybean and wheat pages set their figures in the body typeface, ranged left, with digits of differing widths -- so the column had a ragged edge and numbers shifted sideways when a value changed. They now use tabular figures, where every digit occupies the same width, and sit ranged right so the decimal points line up. It is a small thing that a reader will not name but will notice, and it applies to every table on the site.

Structured data is what search engines read to decide whether a page deserves a rich result, and on six pages ours described a page that does not exist. /basis advertised the question "Is basis set by my local elevator?" The page has never asked that. What it actually asks is "Is my elevator ripping me off?" -- and that question was missing from the markup entirely. On /conditions and /foreign-land the two lists had no questions in common at all. The cause was the ordinary one: the markup was written once by hand, the visible page was edited afterwards, and nothing tied them together. Two hand-written copies of one fact is a failure this site keeps relearning. The markup is now generated from the visible page every time the site builds, so the two cannot disagree again, and it refuses to publish rather than emit an empty or half-built question. Seven pages were corrected.

Every page shares one set of icon drawings, and the wheat futures page had its own copy of twenty-four of them missing the instructions that say draw the outline, do not fill it in. Whichever copy the browser reaches first wins for the whole page. This exact mistake turned every navigation icon into a solid blob on eight pages once before. It had not broken yet here -- it was one edit away from it.

The corn, soybean and wheat descriptions Google shows under the link had grown to between 167 and 184 characters against a limit of about 160, so the last clause was being chopped. They are now built in two parts: the sentence with the price and the date in it always ships, and the keyword list after it ships only if the whole thing still fits. That decision is made fresh each time the prices are written, so it cannot break again when a price gains a digit or a contract label runs long. Nine page titles were over length for the same reason and were shortened.

Every story about this deadline says the farm bill expires September 30. The page said it too and never once said what expires. So here it is, sourced, in three parts. Nothing you depend on changes on October 1: crop insurance runs on permanent statutory authority and has never lapsed, and reference prices, ARC, PLC and base acres were reauthorized through 2031 by the 2025 reconciliation law. What actually stops is the handful of programs that law left without any money attached -- Biobased Markets, Specialty Crop Block Grants, the Local Agriculture Market Program, Organic Agriculture Research and Extension, Animal Disease Prevention and Management, and Farming Opportunities Training and Outreach -- and they start again whenever a bill or an extension funds them. If you are not in one of those, October 1 is a headline and not an event. The part nobody puts in the headline is that the suspension of permanent law -- the 1938 and 1949 Acts sitting underneath all of this -- runs only through the 2026 crop year, and the reconciliation law deliberately did not extend it, because that kind of extension does not score as costing anything. Without action the old law starts taking effect January 1, 2027. Dairy first, then wheat on June 1 and corn on October 1. In July 2025 the parity support price for milk under that old law was 252 percent of what milk was actually worth. Every figure here is from the Congressional Research Service report R48775, linked on the page, and the parity number is labelled as theirs because we have not checked it against USDA's own tables.

People search for \u201ccbot wheat,\u201d \u201ccbot corn,\u201d \u201ccme feeder cattle futures.\u201d Last month those searches showed this site 3,205 times and were clicked once. Looking at why, a pattern turned up: the corn and soybean pages had the exchange in their title and ranked around 16th and 22nd; the wheat and cattle pages did not have it and ranked 33rd and 29th, with no clicks at all. Both pages say CBOT and CME dozens of times in the body, so it was never a coverage problem. All four titles now open with the exchange and the front-month price, and they rebuild twice a day. Whether that moves the ranking is something we will only know in a few weeks, and we will report it either way. One thing did get caught on the way: the first version read the continuous contract while printing the dated month's name, which would have published September's soybean price under an August label, three lines above the correct number in the page body. The corn and wheat contracts happened to agree that day so only soybeans exposed it.

Search traffic to this site nearly quadrupled last month and the share of people who clicked did not move at all -- 1.30% to 1.28% -- while the average ranking improved from 13.5 to 10.3. Pages sitting in the top ten of Google were being skipped. The USDA report calendar was seen 9,017 times and clicked 30. Quick Stats, 7,310 times and clicked 13. The reason is that the titles described the tool instead of answering the question. Somebody searching for the WASDE schedule, looking at a list that includes usda.gov, does not pick \u201cUSDA Report Calendar 2026\u201d -- they pick whichever one shows the date. So five titles now carry the answer and are rebuilt twice a day from live data: the calendar leads with the next WASDE and how many days out it is, the trader positioning page leads with which way managed money is leaning in corn and by how much, the crop tour page counts the nights as they post, the state crop data page opens with a real Iowa number labelled forecast or final, and the break-even calculator opens with where corn is. Nothing here is hand-typed, so none of it can go stale between edits, and if the data behind a page is missing the page keeps the title it had rather than printing a guess.

Six sentences on the farm bill page were written in the future tense about the Senate committee markup -- a markup that took place on August 6 and failed. One of them promised to email you \u201cwhen the Senate marks it up.\u201d The top of the page knew the vote had failed; the middle of it did not. Worse, the update log stopped at August 3, so the single biggest event on the page was missing from the log while the page told you the log showed every revision. All six sentences are rewritten, the log now carries August 6 and today, and it carries the miss too: on August 3 this page said the SNAP cost-share delay would show up at the markup, and it did not move a vote. The conservation table also listed its five largest line items above a row that said the net change was zero; those five do not sum to zero on their own and the page now says they are the largest items rather than the whole ledger. And the page finally says who writes it.

August 15, 2026

This morning we told you the state crop numbers had stopped calling a standing crop final. The corrected script ran again at 9:51 last night and published all 42 states exactly the same way -- Iowa corn 216 bushels labelled \u201c2026 crop year, USDA NASS final\u201d for a crop still in the field. The fix looked for the word FORECAST in the field USDA uses to describe each row. Whatever USDA put in that field for those rows, the word was not in it, so the check passed everything through. We had written a test that asserted the wrong answer was right, which is how it survived twice. The calendar decides now instead of the wording: USDA does not publish a final yield for a crop year until its annual summary the following January, so any row carrying this crop year before then is a forecast and is labelled one, whatever the paperwork says. And the build now refuses to write the file at all if a single state comes out claiming a final that cannot exist yet. Run the state stats job to replace the numbers on the page.

The sponsor page said AGSIST got 1,959 Google clicks on 75,603 impressions in 28 days, and repeated it in five places. Search Console says that window was 209 clicks on 13,678 impressions. It was not a date mixup -- the whole three-month period only produced 61,802 impressions, so the number we published could not have existed. We do not know where it came from and we are not going to guess; it is gone. Two independent reports, Search Console's own export and the Analytics report that reads from it, agree with each other to within one percent, and those are the figures on the page now: 577 clicks on 45,148 impressions in the last 28 days, up from 209 on 13,678, with average position improving from 13.5 to 10.3. That is a 176% gain in clicks, which is a better month than the one we invented. The citation counts from answer engines were understated rather than overstated and now read 38,597 over 90 days, and that chart is plotted per day rather than per month so a part-month cannot flatter itself. It shows August running below July, which is what happened. A site whose whole argument is that it does not make numbers up owes you this one in plain sight.

When the full USDA RMA feed ran tonight it came back with 951 rows across 14 crops instead of 228 across 9 -- corn in 48 states, soybeans in 38, and cotton and peanuts in states we had just told readers we could not cover. Our answer said cotton was not wired yet and that peanuts had no discovery window at all. Cotton has one in 17 states against the ICE December contract, projected at 69 cents a pound. Peanuts have one in 13 states priced by type -- Runners 24.55 cents, Virginia 28.48, Spanish 31.91. What is true about peanuts is narrower than what we said: there is a window, there is just no exchange and no contract month behind it, because RMA sets that price without a futures board. The answer now says that instead. Two things broke on the way: a crop with no contract behind it printed a sentence with a blank where the contract should be, and peanuts were being priced per bushel when they sell by the pound, which told a Georgia grower his guarantee was 21 dollars an acre instead of 835. Both fixed, and the page now refuses to print a unit at all rather than print a wrong one.

A Wisconsin reader who picked his state got a headline about October corn and then nine cards of barley, canola, popcorn and oats -- and the corn card listed Alabama, Florida, Georgia, Louisiana, South Carolina and Texas. The cause was in our feed, not the page. Our job asked USDA RMA for today's date and nothing else, and RMA answers that question literally: it returns only the crops whose discovery window happens to be open today. That is 228 rows across 9 crops, with no soybeans anywhere and corn in eight southern states. Wisconsin corn and beans were never in the file, so the page filled the space with whatever was. The feed now walks the whole crop year -- starting the prior August, because 2026 winter wheat was priced in September 2025 and Texas corn in December 2025 -- and refuses to publish at all if corn comes back in fewer than 30 states. That is the exact shape this failure had.

The page ran two of everything -- two state pickers that did not agree, two window datasets, two timestamps -- and picking your state made it longer instead of shorter. Now there is one picker directly under the headline, and everything below it belongs to the state you chose; the generic national block disappears the moment you pick. Corn and soybeans lead. Crops in discovery right now are ranked by percent change against your projected price, and the rest fold into a table. Every price carries its unit. Nothing prints $0.00 for a window RMA has not started. Where RMA keys a state to more than one sales closing date -- Texas corn has three -- each window gets its own card with its date named, instead of the page picking one and hoping it is yours.

An open window now shows the running average against your own guarantee on a dollar scale, with the percent as the headline number. Wisconsin winter wheat is running $6.45 against a $5.76 projected price -- up 12.0 percent -- and the guarantee calculator turns that into dollars an acre: $323 locked, $361 at today's average. The calculator covers every crop your state insures rather than corn alone, and follows the crop's own unit. When the running average is below the projected price it says so plainly and says what it does not do: a revenue guarantee revises up only, never down.

If you had set a location elsewhere on the site, the page used it to preselect your state -- and then wrote that guess back as though you had chosen it. A guess now selects the picker and stops there. Only a state you pick yourself is remembered.

On Friday our monthly USDA pull picked up the August 12 Crop Production forecast and published it labeled "2026 crop year -- USDA NASS final." Iowa corn read 216 bushels for a crop still standing in the field. Nine states -- Arizona, California, Florida, Montana, New Mexico, Oregon, Utah, West Virginia and Wyoming -- dropped off the page entirely, because USDA's August forecast only covers principal states. Every state now carries its own honest label: the forecast states say "August forecast," and the states USDA does not forecast keep their real final with the year it belongs to. A survey estimate is a good number to have. Calling it final is a lie, and it was ours.

The file that carries running context into every briefing still said Pro Farmer's scouts were in fields the week of August 3 (the tour is August 17-20), called the August WASDE the next catalyst three days after it printed, and carried USDA's superseded 183.0 corn as current. That is exactly the shape of the mistake that produced a fabricated WASDE report on August 11 -- a wrong date in trusted context, repeated as fact. The file is rewritten current, and the generator now stamps its age and tells the writer to distrust its dates once it passes two weeks.

Three hand-written blocks named the August WASDE by name and went stale the moment it printed -- including a heading that said "the August WASDE" directly above a card showing September, and a box telling readers to prepare for a report that was three days past. They are built from the data now, so they roll to the next report on their own.

August 11 is absent from the hail swath archive. The job that fetches each day logged the failure and carried on green, so nothing was ever retried and nobody knew. A missing day is not a quiet day -- we write a file even when no hail falls. The job now finishes every day it can and then fails loudly, naming the days it lost.

Wednesday's report-card entry said December corn settled up 19 cents at $4.81 and November beans up 10 cents at $11.83. Both were wrong: we read a quote taken while the board was still moving instead of the settlement our own archive recorded hours later. The real report-day closes were $4.78 on December corn, up 15 cents, and $11.84 on November beans, up 12 cents. The direction and the story were right; the numbers were not, and on a site that grades other people's numbers that is not a small thing. Corrected everywhere it appeared, including the note that carries market context into each morning's briefing.

A reader in Georgia -- a crop insurance agent -- wrote in to say his price discovery periods are not the Midwest's. He was right, and the page had been assuming otherwise. RMA sets discovery windows by crop and by your county's sales closing date. Georgia corn averages the SEPTEMBER contract over August 1-31, not December over October 1-31, and Georgia soybeans use the January contract over November 1-30. Pick your state on the page now and the windows, contracts and calendar all change to yours. Ten states are published, every one read line by line out of RMA's Commodity Exchange Price Provisions; if yours is not listed the page sends you to the source rather than guessing. Worth knowing today: the Georgia corn harvest discovery window is open right now.

Empty the test weight field on the corn estimator and it kept printing 193 bushels -- calculated from an assumed 56 pounds you could not see. At 50 pound test weight the honest answer is 173, so the hidden assumption was worth 20 bushels an acre. The soybean side did the same thing with seeds per pound and seeds per pod. Blank now means blank: the estimate holds until you tell it what you actually measured. Typed values, including unusual ones, were always honored and still are.

Two additions to the homepage for the season. A harvest band puts the five tools that matter between now and the combine one tap from the front page -- yield estimate, harvest price, bin capacity, break-even, and whether to store it or move it -- with a running count to October price discovery. Under it, a price discovery panel: pick your state and see whether the window that sets your revenue guarantee is open, closed, or still ahead, with a bar showing how far into it we are. All 48 states are in there. Georgia growers will notice their corn window is open right now while Iowa's does not start until October.

The old page opened with a paragraph and two cards and told you nothing about your own farm. It now opens with the answer: your corn price is set in October, or August, or whenever RMA says for your state. Under it, if your window is open, the number that matters -- day 15 of 31, with a bar. Then a map of the country coloured by the month each state's corn harvest price is discovered, with a white ring around every window open today. If the site already knows where you are, it picks your state for you and says so; tap any state to change it, and your choice sticks. The picture it makes is one nobody publishes: the country prices its corn in waves, south to north, eight states in August and thirty-four in October. All 48 states RMA publishes windows for are in there, corn and soybeans, each row transcribed from the Commodity Exchange Price Provisions. Texas keeps all three of its window sets, because RMA keys these to your county's sales closing date and Texas spans three -- we show every one rather than choosing for you.

Both the homepage panel and the full tracker now start on your own state if the site already knows your location from the weather card, and say plainly that they did. Picking a state yourself always overrides the guess and is remembered. If we have no location, or it is somewhere we have no windows for, the page asks instead of guessing.

A sweep of everything the site serves publicly, removing internal notes that had no business being visible: a working-directory path left in a data script, build comments that named people and internal documents, and a reference to an internal write-up inside a published data file. The reader-facing copy came back clean. Nothing about the site changed for a visitor; there is just less lying around behind it.

August 12, 2026

USDA's first survey-based 2026 yields landed August 12: corn 180.7 bu/acre (down 2.3 from July, 1.3 under the trade's 182.0) and soybeans 52.7 (down 0.3, in line with the trade's 52.9). More acres kept both crops huge -- 16.013 billion bushels of corn and a record 4.519 billion of soybeans -- but the market traded the yield cut: December corn settled up 15 cents at $4.78. The analyst board is now scored, the report card is on the record, and the crop tour page carries the new USDA benchmark the scouts will test next week.

Before the report we locked two directional calls from our model: corn revises UP from 183.0, soybeans revise UP from 53.0. USDA revised both DOWN. Two calls, two misses, graded by arithmetic and kept on the record -- that is the whole point of the ledger. For what it is worth, our locked levels (183.6 and 53.8) were closer to the print than the model's July numbers would have been, and the trade consensus had the direction right. The record starts 0-for-2 and stays public either way.

On WASDE morning itself, two briefing drafts again described the report as already printed -- hours early. The pre-send gate built after Tuesday's incident blocked both; nothing false was published or emailed. The generator now also checks its own draft and rewrites once with the offending lines quoted back, which is how the briefing you actually received Wednesday came to lead with "WASDE prints at 11 CT" instead. Layers: the writer corrects itself, the gate still gets the veto.

August 11, 2026

Tuesday morning's briefing led with "WASDE DELIVERS" and described the August report as printed and absorbed. It had not been released -- it prints Wednesday, August 12 at 11am CT. The chain: Monday's briefing set its weekly question with the wrong date ("the WASDE on Tuesday"), and Tuesday's writer resolved that question against a report that did not exist. Prices in the briefing were real; the event was not, and that is worse. Two things now prevent it: in the week before a WASDE the writer is told, in so many words, that the report has not happened and no number from it exists; and the pre-send gate now hard-blocks any briefing that describes an unreleased report's results -- tested against Tuesday's own text, which it catches six times. The emailed copy cannot be recalled; this note is the correction.

Since deterministic grading began in June, the daily call hit 4 of 43 -- a 9.3% record we publish rather than hide. The direction reads were not the problem: on those same 43 calls the direction alone was right 39.5% of the time. The problem was the claim itself, which demanded the price reach a specific level by the NEXT close, at distances that averaged more than a full typical trading day away. Corn's average session moves about 5 cents; the calls were asking for 7 or more, plus the right direction, in one day. Starting today the called level must sit inside a band computed from each market's own last-20-day average move (widened automatically on USDA report days, which trade a different regime), and the model sees its full graded record -- every hit and miss, by instrument -- before it makes today's call. The grading itself is unchanged, byte for byte. The old record stays on the scorecard, frozen and labeled, and the new series starts at zero in public, the same way we handled the switch to deterministic grading in June.

The weekly poll is gone -- the homepage widget, the page, and the Monday rotation behind it. It never found an audience, and a sentiment poll with a handful of votes was worse than none: it dressed anecdote up as data on a site whose whole point is that the numbers are real. If enough of you ask for it back, it comes back with a proper sample behind it.

August 8, 2026

Saturday's briefing led with a 16.9% one-day jump in lean hogs and a 5.4% break in corn. Neither happened. Lean hogs cannot move 16.9% in a session -- that is nearly three times the exchange's own daily limit, which is the maximum a contract is allowed to trade in one day. The number came from the price feed quoting one delivery month's close against a different month's close from the day before, and subtracting them. Corn was the same error: the $4.39 was right, September corn, but it was measured against December's close from Thursday. September corn was down two and three-quarter cents, not twenty-five. Soybeans and live cattle carried the same mistake in smaller sizes. The check that is supposed to catch exactly this compared only the closing price, and the closing price was correct -- so it passed the feed as clean. It now checks the prior close as well, and refuses any move larger than the exchange allows for that contract. Where it cannot verify a price, the site now says nothing about it rather than printing a number.

The feed check ran once a day, just before the briefing. Prices refresh every thirty minutes. So the homepage, the markets page and the futures pages read an unchecked feed nearly all day, and the once-a-day repair was overwritten by the next refresh regardless. The check now runs on every refresh.

Several things at once. The "Text Me Daily" signup is gone — it threw the phone number away and there was no text service behind it. Both email signups now wait for the server to actually accept the address before saying you're subscribed. The weekly poll no longer falls back to a question from June whose results were already final, and a vote that fails to register no longer locks you out for the week. The price cards quote the real front-month contract and name it, so corn reads September at $4.42 rather than December at $4.65, and the 52-week range bar moves with it.

The ranked table on this page was hand-written and never regenerated, so it had drifted three weeks behind the live data and openly contradicted the verdict box directly above it — Pennsylvania read 25% in the table and 65% in the box. The state ranked first under the heading "ranked by what this week's number is worth" was not the top state any more either. The table, the four headline tiles, the summary line and the page description now all come from the same file the verdict reads, and rebuild themselves every time the weekly fit runs.

Twenty-three graded rows showed the write-up for one call next to the grade for a different one, left over from the date bug fixed Aug 4. Those rows now show the call that was actually scored, rebuilt from the recorded market, direction and level, and say so underneath; the original wording stays in that day's briefing. Second, the headline hit rate was blending two different eras — calls before Jun 24 could only be graded by the briefing's own account of itself, while everything since is checked against the closes. Split out, that is 26 of 36 self-graded against 3 of 40 checked. Both numbers are now on the page. The checked one is the honest one and it is not flattering.

If the check that records "today's briefing already went out" could not be reached, the sender assumed it had not and would have emailed the entire list a second copy. It now refuses to send when it cannot confirm, and a failed delivery to one address no longer risks re-sending to everyone who already got it.

The offline cache could hand back a broken copy of the page. Two ways: if the site was mid-deploy when your browser asked for a page, an error response replaced the good copy you already had; and a truncated stylesheet or menu file in the cache would strip the styling and navigation off every page, which reads as the site being blank. It now keeps the last good copy through a deploy hiccup and refuses to serve a cached stylesheet or menu that looks damaged.

The homepage "Front Month" cards were quoting the most-active contract, not the nearby one. Corn read $4.65 — that is December — while September, the contract you would price against today, was $4.42. Beans and cattle had the same problem; on cattle the gap was about $89 a head. The cards now quote the real nearby month and name it, and the 52-week range bar moves with it: corn was showing 85% of its yearly range and is actually at 42%. The price checker in the pipeline had been flagging this every run, but the corrected file was being thrown away before it shipped.

The signup bar that appears on every page has never worked. It sent the address in a format the server could not read, got rejected, and showed "You're in" anyway. Anyone who signed up through that bar was told they were subscribed and was not. It works now, and it will no longer claim success unless the server actually accepted the address. If you signed up and never got a briefing, that is why — please try again.

The homepage offered a "Text Me Daily" option. There is no text service — no sender, no number, nothing behind it — and the phone numbers entered were discarded. It has been removed rather than left up promising something that does not exist.

For 457 of 2,926 counties — those with too few yield years to fit a trend — the page crashed halfway through drawing and left the previous county's rent ratio, charts and lease link sitting under the new county's name. Pick an Iowa county then an Alabama one and you were reading Iowa's numbers under Alabama's heading. Also fixed the board price, which had never filled in, leaving the headline ratio blank on every visit.

Ohio's rule was backwards. The page said a written lease governs itself; the statute covers any farm lease — written or oral — that has no termination clause, and requires written notice by September 1. A landowner following our page could have missed the deadline and renewed for another year. Arkansas and South Dakota now also state that those statutes apply to oral leases only.

The page said the Livestock Forage Program needs 8 consecutive weeks of D2 drought. USDA lowered that to 4 weeks in July, retroactive to January 1 — so producers who read this page were told they did not qualify when they may well have.

The "notify me" form dumped readers onto a page of raw code and quietly signed them up for the general briefing instead of farm bill alerts. It now works in place and says plainly that farm bill news rides along in the daily briefing.

The wheat ranking pulls winter wheat only, which left out North Dakota — the second-largest wheat state in the country — and Minnesota entirely. It now says winter wheat on the tab and explains what is missing.

On Saturdays the grain pages said the board reopens a full day later than it does. Wrong every Saturday of the year.

The policy said your location never leaves your browser and is never stored. That was not true: weather, place names and cash bids all require sending coordinates out, and hail alerts store your chosen spot alongside your email so we can tell you it hailed there. It also named a company we do not use and left out the one that actually handles signups. All corrected, and the list of what the site keeps in your browser is now the real list.

A year of the $100/week ribbon was quoted as $7,800; it is $5,200. The Supporter tier read $25 here and $35 in the footer strip it actually buys. Term length said month-to-month in one place and week-to-week in another. All reconciled.

ImprovedHeader menus

On shorter laptop screens the Markets menu ran off the bottom of the page with no way to reach the rest of it. The menus now fit the screen and scroll.

Nightly state results as the tour posts them Aug 17-20, next to USDA's number and our own — plus the record nobody publishes: over the last 11 tours the tour's final corn call missed the eventual crop by 4.1 bushels on average, against 3.1 for USDA's August forecast, and it has run under the final yield in 7 of those 11 years.

The form elevators use to get their bids listed was collecting facility, contact and phone details and then discarding all of them — only the email reached anything, and that quietly went onto the briefing list. It now builds the full request in your own email app so you can see exactly what gets sent, and the page no longer claims a message arrived when it hadn't. If you sent one before today, it never reached us; please send it again.

USDA publishes no separate on-farm bin capacity for ten states, and this page was treating that blank as zero — which made those states look like they had almost no storage and put South Carolina at the top of the crunch list at 3.46 times. That was our arithmetic, not South Carolina's grain. Those states now show elevator capacity only and sit out of the ranking, and the count of states over 1.0 drops from 14 to 7.

Two real errors. The tool would tell you to plant corn in August, because the soil-temperature verdict never looked at the calendar; it now says you are outside the planting window. And the heat-unit target for reaching black layer was about half the right number, which meant the maturity check could never warn you a hybrid would not finish. Late-planting yield penalties were also too shallow against the university work and have been deepened.

The component formula was rebuilt against the current regulation and now reproduces USDA's announced July 2026 prices exactly — protein, other solids, skim and the Class III price, to the last published digit. Three things were wrong: the butterfat term in the protein price used 0.2 where the rule says 1.17, so protein value could never go negative when butterfat ran away from cheese; two constants were still at their pre-June-2025 values; and the Class III total skipped the 0.965 skim split. Make allowances and the December 2025 composition factors are current, and the cheese input is 40-lb blocks only now that barrels have left the survey.

The page said it held back results until enough growers had answered. It didn't — it published 100% off two responses. Weeks under ten responses now show raw counts and say so.

The directory listed 17 tools and quietly left out two dozen more. Everything on the site is now reachable from one page, and the Fast Facts card no longer claims 16 states of 2022 data when the file holds 41 states of 2025.

ImprovedFertilizer

The page advertised weekly updates from DTN and USDA AMS. The numbers are actually hand-collected Midwest dealer quotes gathered about monthly, and they now say so — with a banner that appears once the sheet passes 30 days old.

The soybean estimator assumed 2,700 seeds per pound. Every land-grant extension service — Iowa State, Ohio State, Purdue, Michigan State, Virginia Tech — teaches 3,000 for an average year and 3,500 when late-season stress makes the seed small. Fewer seeds per pound means each seed weighs more, so 2,700 was crediting your pods with more bushels than they hold: about 11% too high against the standard, 30% too high against a stressed crop. It is now 3,000, and the quick-fill buttons have been relabelled to the yields their own pod counts actually produce. If you have used this page to size up a crop this season, the soybean figure it gave you was optimistic.

The page said these estimates run within plus or minus 15%. No extension service says that, for either crop. Purdue, Iowa State, Ohio State and Penn State all put the corn ear-count method at plus or minus 20 bushels an acre, and Michigan State says soybean estimates vary by more than 25% before the crop reaches R6. The yield range shown beside each estimate now comes from sweeping the kernel and seed weights the uncertainty actually lives in — 65,000 to 95,000 kernels per bushel for corn, 2,500 to 3,500 seeds per pound for beans — which is what those same services teach. The corn range is lopsided rather than even, because honestly it is.

Opening the page put a soybean yield of about 48 bushels into the break-even panel while the corn tab above it showed 193. Both calculators run once when the page loads and each one claims the break-even panel as it goes, so soybeans — running second — always won. Clicking back to the corn tab did not fix it either. If you worked a corn break-even straight off the page without retyping the yield, it was built on roughly a quarter of your actual bushels. Negative or blank entries also used to print a yield; a minus ten ear count returned minus 57 bushels an acre. Those now show a dash.

Clear the eave height field and the calculator reported 14,957 bushels, a completely full 30 by 24 bin, while the height box on screen sat empty. The bin drawing showed an empty bin at the same time, so the picture and the number disagreed and only the picture was right. A blank, zero or negative dimension now returns zero bushels.

The drying charge billed you for every point from your starting moisture down to your target, but the shrink was worked out only down to the crop's standard moisture. Drying corn from 20% to 13% charged for seven points and shrank five and a half, so the bushels left on the report included about 486 that do not survive the dryer — roughly $2,060 of corn that was never going to be there. Shrink now follows the same points the dryer bills for. If you left the target moisture box alone, nothing changes for you.

Opening the owned and rented split and typing your rented acres, before getting as far as the cash rent box, set the land cost to zero and locked the field. On the default corn figures the break-even fell from $5.03 to $3.64 a bushel and the whole-farm number went from a $47,500 loss to a $77,500 profit. The zero was then saved, so it was still there next visit and the land box looked like it could not be edited. A side of the split now counts only once it has both acres and a rate, and your own land figure is put back when the split is closed. The by-ground line also used to print an owned break-even of $3.64 with zero acres behind it to farmers who rent everything. It now shows only the ground you actually have.

Delete the expected yield to retype it and the page printed a break-even of $0.00 a bushel, dropped the over-market warning, and carried the same $0.00 into the printed report you might hand a lender. A break-even of zero reads as though any price clears. It now shows a dash and asks for a yield. Clearing the futures price also used to leave the entire what-if profit grid on screen, green box and all, for the scenario you had just edited away. The grid now clears with everything else.

August 7, 2026

A running log of what changed on AGSIST and when. Same rule as the scorecard: fixes and misses stay on the record.

Live health check of every AGSIST data feed — grain prices, cash bids, the briefing, weather, hail — tested in your own browser when the page loads, so the status page itself can never go stale.

Split owned vs rented ground: enter acres and cost for each, see a blended land cost plus separate break-evens — owned bushels clear first. Also added a basis input so your target shows in cash terms, and your numbers now save per crop on your device.

Corn growth stage was counting heat units from January 1 instead of from planting, which could read a field weeks ahead of reality. Stages are now anchored to typical planting dates for your latitude, and the estimate says so plainly.

ImprovedCash Bids

Elevators whose feed carries a quote timestamp older than 18 hours now show a "bids quoted [date]" flag, so a stale bid can't pass as fresh. No timestamp, no guess — the flag only renders when the feed proves it.

Corrected the 2025 final prices ($4.22 corn / $10.35 beans), added a "your guarantee" mini-calculator using the 2026 projected prices, fixed the October day count (22 trading days this year), and the pre-discovery delta now reads from live futures.

Both pages now open with a readable summary baked in daily — visible the moment the page opens, before the live data loads, and readable by search engines too.

The generator's calendar got a hard audit: the Pro Farmer crop tour is no longer mentioned as underway before it starts Aug 17, market holidays are recognized so a closed Monday can't be narrated as a trading session, and USDA report timing shifts around holidays correctly.

Updated the day the Senate markup failed — the tracker now shows the miss and the expected September revote instead of pretending the vote hadn't happened.

August 6, 2026

Both pages rebuilt against the verified 2026 dicamba rules: current product names, the 240-ft downwind buffer, temperature cutoffs (reduced acres above 85°F, no application at 95°F), the AMS prohibition, and the R1 cutoff — checked against the labels, not memory.

Now linked from the pages where you'd actually reach for it — conditions, ratings-vs-yield, and Field Scout — instead of hiding in the tools list.

August 4, 2026

Found and fixed a grading bug: since June 26, each morning's grade compared the call against the same day's close instead of the prior day's. Nightly re-scoring meant most published outcomes were still right, but two rows contradicted their own writeups — both now carry a regrade note, and the scorecard shows a plain incident note. The original text stays as published.

August WASDE card shows USDA's current number as the one to beat rather than inventing survey ranges before they exist; analysts still building a track record now appear on the board instead of a false empty state.

August 2, 2026

Zero-percent fill now correctly reads zero bushels, the shrink factor is editable, a size-a-bin mode works backward from target bushels to diameter and eave combinations, and there's a printable bin record.

Menu icons rendered as solid black blobs on eight pages (an SVG id collision) — fixed everywhere. Also finished stripping emoji from the briefing and site chrome; meaning now rides on words and plain glyphs.

July 30, 2026

ImprovedSitewide

Type rework after a reader said the fonts were too small — he was right. Bigger, cleaner reading text on all 56 pages, numbers stay monospaced, italics retired, and every page re-tested at phone width for horizontal scroll and clipped text.

July 28, 2026

The "front month" price was actually the most-active contract — corn showed December while true nearby September traded 22 cents lower. Heroes now quote the real nearby contract by name, and the next WASDE date comes from data instead of a hardcoded guess.

No longer Chicago-only: KC hard red winter and Minneapolis spring wheat boards, class spreads, all three classes in the fund-positioning card, and export pace — matching how most of the site's wheat bids actually price.

July 27, 2026

Live layer: current severe thunderstorm warnings with hail size, last-24-hour hail reports on the map, and a storm verdict for your pinned spot. Plus CSV export and a printable claim-guidance sheet for your adjuster call.

Subscribe from your phone's calendar app (webcal/.ics) — report days show up where you'll actually see them.

July 26, 2026

Every daily-briefing market call is now graded against the next session and published — hits, misses, and the running record. The yield nowcast joined an analyst board next to USDA's number.

The daily briefing by email, free — signup available across the site.

July 20, 2026

ImprovedField Scout

The Read now pulls every county and state layer AGSIST has for your field's spot — cash rent, yield trend, basis, storage, land ownership, crop conditions — each card independent, each honest about missing data. Printable Field Report included.

ImprovedFast Facts

"Today's Call" verdict computes nitrogen-vs-corn economics live, with a live price strip and current-week staging.

July 18, 2026

AGSIST was live well before this log. Already shipped by mid-July: the daily briefing and archive, verdict-first rebuilds of conditions, basis, storage, land tenure, foreign-owned land, and cash rent (with all state pages), plus the core calculators and Field Scout. Changes from here forward are dated above.

What gets logged. Changes a reader would notice: new pages and features, meaningful improvements, and fixes — including the embarrassing ones. What doesn’t: the machine-refreshed data itself (prices, bids, weather, the daily briefing), which updates continuously; the status page covers whether those feeds are current. This log is written by hand, so entries land when the work ships, not on a schedule.

Spot something that changed and isn’t here, or broke and isn’t owned up to? Tell Sig: sig@farmers1st.com.