Revit's keynotes live in a bare .txt file nobody dares touch — edited in Notepad, broken on sheets, full of entries no one uses. Ledger puts a real manager over it: see what's actually used, fix what prints as ?, and take the whole library to Excel and back — with nothing written until you've seen the change.
Revit gives keynotes one dialog and no answers: no usage, no history, no safe way to edit. So the .txt gets edited raw — and the mistakes surface on printed sheets, as a ?.
Ledger reads the model's linked keynote file and holds every edit as a draft — the .txt is written once, when you say so, and Revit's keynote table reloads in the same gesture.
Ledger opens on the linked keynote file as a tree. Green: a keynote tag is placed. Amber: elements carry the key, but no tag yet. Grey: never used in this model. A category's dot and counts roll up its branch, and expanding a keynote shows the evidence — which views tag it, which family types and materials carry it; views and family types each with a button to go and look. Search by code or text; the filter chips are the same filters as the typed search tokens.
A card at the top lists every placed keynote tag with no key, and every tag showing a key the file no longer has. It says how many are on a sheet right now — those print as ? for the client — opens the view each one lives in, and bulk-deletes the ticked strays. The library itself is untouched; this is tag surgery, not file surgery.
New categories and keynotes, edits, deletes, drag onto another entry to re-parent — Tab and Shift+Tab do it from the keyboard. Every change is a draft: a banner flags them, Save to file writes the .txt once and reloads Revit's keynote table in the same gesture, Reload throws the drafts away. And Rename key… rewrites the model's tags and elements along with the key, so nothing is left pointing at a code that no longer exists.
Export the library, renumber and rewrite it comfortably in Excel, and import it back: Ledger shows every add, change and delete before the file is touched. Broken rows block the commit; repaired ones are noted rather than refused; and deleting a keynote still shown by placed tags demands an explicit tick. Ledger also remembers every workbook it exported — Up to date, Library changed, Excel pending, Conflict or File missing.
Compare the project's library against the office master keynote file — read-only by construction, and the window says so. Tick what to bring in, with a warning wherever a pulled change rewrites text already placed on sheets, and a confirm gate before anything placed is rewritten. Prune reviews the never-used entries the same way.
History shows every change committed through Ledger, and the net difference between any two days. Edits made to the .txt outside Ledger are detected against the copy the model keeps, and recorded too. That same copy keeps you working when the network drive is down — the save simply waits for the file to come back. And one button exports a self-contained HTML report: summary, integrity audit, recent changes and the full library with its dots, openable on any laptop without Revit.
Ledger ships on the Data panel of the BIMIO tab. Open the library, see what's really used, and never let a ? reach a printed sheet again. Revit 2024–2027, full trial, no card.