A wage card now promotes into the agreement you pick
Uploading a union wage card reads it, shows you what changed against the rates you already hold, and — once you promote — writes those rates onto a labor agreement. Which agreement was the part nobody was asked about: it was matched by the name the parser read off the PDF.
When that name matched, fine. When it missed by a character — an em dash where you'd typed a hyphen, "Northern CA" against "Northern California", a "(FINAL)" the union added to this year's card — a second agreement appeared, and from then on the trade's rates lived in two places. Estimating picked one. Nothing said anything.
Each wage area on the review screen now carries a Promote into picker listing the agreements you actually hold. Choose the one this area updates, or choose to create a new one. Promote is disabled until every area has an answer — there is no default and no guess.
The picker also tells you what your choice will do before you make it: which agreement gets the rates, its trade and term, and — when you're creating a new agreement whose name is one punctuation mark away from one you already have — a note saying so with a button to point at the existing one instead.
Promoting into an existing agreement no longer touches its name, trade or effective date. Those are yours. The card supplies rates, and it can fill in a region, local number or expiry you hadn't recorded, but it can't rename an agreement your estimates and timecards already point at, and it can't blank a value by staying silent about it. The agreement history shows exactly which fields a card changed.
One thing the review screen is now explicit about: the "against what you hold" comparison at the top is computed when the PDF is parsed, by name, before you've picked anything. It describes the agreement whose name matched — not necessarily the one you promote into.