Week of June 22, 2026
Pending charges, a tighter ledger, and full keyboard reach
Charges your bank has authorized but not yet posted now appear in the register without becoming entries you have to clean up later, the ledger runs edge to edge with a single amount column, and every control in it can be reached, and seen, from the keyboard.
Ember is in private beta and under active development. These are the changes made during that week of building and testing.
Pending charges show up before they post
A charge your bank has authorized but not yet posted now appears in the register's Pending group as bank information rather than as a transaction. It's read-only, it counts toward no balance and no reconciliation total, and it turns into a real entry only once the charge posts, matched against whatever you'd already recorded for it. If you'd rather have it in the ledger straight away, Enter now creates the entry and the posted charge reconciles against it when it arrives.
The practical effect is that pending charges stop leaving debris behind. A pending charge used to become a ledger row, so when your bank dropped it on the way to posting you were left with a duplicate marked "removed by bank" to sort out. That label now means only what it says: the bank reversed something it had actually posted.
Pending opens folded, next to Scheduled, so the register still opens straight onto posted rows.
A ledger that runs edge to edge
The register lost its outer gutter, its floating cards, and the gaps between its bands. Sections are separated by hairlines now, and the table scrolls to the edges of the window, which buys back a visible amount of room for rows.
The Amount column is a single accounting column at every window width. It used to split into separate Outflow and Inflow columns when there was space and recombine when there wasn't, which meant the table rearranged itself as you resized. Direction is now a thin green or red bar along the row's right edge, paired with the accounting parentheses, so it never depends on color alone.
Three smaller changes to the same surface: the arrow at the end of every row is gone and Open details moved to the top of the right-click menu, the tags column moved to the left of the account name, and the default order is newest first with the largest amounts leading each day. Menus, pickers, and row popovers now stay inside the window when you open one near an edge, and the selection pill no longer sits on top of the last row or two.
Investment rows say what you can change
The brokerage ledger showed a lot of editable values that looked inert. The Type label, the shares-and-price figure, and the amount are all click-to-edit, and they now say so on hover, and clicking the shares-and-price figure lands on the quantity rather than dropping you into the memo beside it. Clicking the dash in the Category column opens the Type picker, which is where an investment row classifies itself.
When a save is blocked, the editor names and marks the field that's blocking it instead of listing every field the row might need. A trade you parked with its quantity and price blank reads as a draft rather than as a real "0 sh @ $0.00" trade. A market-change override accepts a typed value directly and accepts a leading minus for a decline on a phone keypad, and the row's own tooltips stop describing a quantity-times-price calculation on the row types that don't run one.
Sort, select, and approve without the mouse
The ledger's column headers can be sorted from the keyboard. It was the only major table in the app that couldn't be. The Tags and Cleared columns became sortable at all, the Tax Lots table gained sortable headers, and Holdings headers now reverse direction on a second click, so you can sort unrealized gain ascending to find losses.
Two whole classes of dead keystroke are fixed. Building a selection with the mouse used to swallow the next shortcut you pressed, so every per-row shortcut looked broken until you touched an arrow key; it doesn't now. And pressing Enter or Space on a row's cleared dot or approval badge does that one thing, instead of also promoting the row into edit mode.
Beyond that: the right-click menu takes arrow keys, Shift-arrow and Shift-click can shrink a selection instead of only growing it, the cursor stays clear of the pinned header as you arrow down, Shift-Page Up and Shift-Page Down step the date picker a full year, and closing a bulk picker hands focus back to the pill you opened it from. Roughly a dozen controls in the register that had no visible focus outline now draw the standard ring, including on the mobile review queue. Shift+E reconciles the account you're filtered to, and Shift+L links the rows you've selected.
Related transactions show you the whole group
The related-transactions popover was built only from rows the table had already loaded, so a member sitting in an account you weren't looking at was counted but never shown. It now fetches the rest of the group when you open it and lists every member. The header carries the group's net total, and the list gained a memo column and labels for its columns.
"See all related" now opens the ledger with the state filter set to All, so reconciled and removed members don't quietly drop out, and it narrows to the exact group you clicked rather than every group that happens to share a name. A tagged row shows how many transactions it's linked to instead of a bare chain symbol. Split rules can link each source charge to the inflow they generate, so the pair is related from the moment the rule runs.
Import an Ally export, take a selection out as CSV
Per-account CSV import now reads Ally Bank's plain export alongside YNAB register exports, and picks the right one from the file itself, so you just drop either. The YNAB Flag column, which people use as a free-text workflow marker, comes across as a tag on the imported row instead of being dropped.
Going the other way, select any set of rows and Export CSV in the selection pill's overflow menu downloads exactly those, across accounts and across cash and brokerage rows, with the values the register is showing. Transfers in the full account export now name the account on the other side rather than leaving the payee blank.
Improvements
- Transactions: Reconciled rows respond to the keyboard again: pressing a cell shortcut or Enter promotes them to edit, and a financial change asks you to confirm rather than refusing. Converting a reconciled row to a transfer goes through the same confirmation, on both cash and investment rows.
- Transactions: A transfer leg can be moved to a different account from the ledger. The other leg stays where it is and the pair still reads correctly.
- Transactions: When a bulk edit re-sorts the rows you just changed, the view follows them to their new position and flashes them, instead of leaving you looking at where they used to be.
- Matching: Match and Link stay visible on the selection pill whenever rows are selected, greyed out with a tooltip naming what's missing when they don't apply. A selection that cleanly forms several duplicate pairs matches all of them at once, and a matched row stays selected and open for approval.
- Matching: Two copies of the same movement that arrived through different channels (a bank sync and a CSV upload, or two uploads) can now be combined.
- Search: The typeahead recognizes month names and dates as you type and offers name matches for a numeric query, so an account named with digits is selectable. Pressing Enter to finish typing no longer rewrites your query into whatever was highlighted. Tag filtering moved into the search box's "Filter by…" menu, which was already doing the same job from two places.
- Payees: The picker pins the row's current payee at the top under "Selected" instead of burying it in the alphabetical list. Clicking the "As on statement" strip copies your bank's raw description to the clipboard, and "Manage payees" opens on the payee you were looking at.
- Bank connections: Linking an account before your bank has finished its first pull now imports all available history and anchors the opening balance to the earliest date, rather than pinning the account's start to the day you linked it and leaving you to backdate it.
- Accounts: An account can store a website address, which shows as a small external-link icon beside the account name. Detail tables keep their column headers visible while the list scrolls, and inactive accounts sit at the bottom of the rail rather than under All accounts.
- Categories: The merge and delete-with-reassign picker is searchable and matches anywhere in a category's name, so a leaf is reachable by typing its own name rather than its parent's.
- Venmo: Re-run the Venmo note parse on your own rows from the right-click menu or in bulk, instead of needing it run for you. A charge can stamp a tag on the source row as a "requested this back" marker.
- Amazon extension: Enrichment and its warnings now run only on the Amazon account, a link to your order history appears while you're viewing it, and the extension checks for its own updates and prompts you to re-download.
- Import: Hover the "possible duplicates" count in the import preview to see exactly which rows will be skipped and why. Imported rows appear in the register as soon as the import commits, without a page reload.
Fixes
- Light theme: A group of controls painted only for the dark theme were close to invisible on the default light one, and are readable again: the tag editor and its color picker, the column-header menu, the Venmo handle prompt, and the confirm button on the category delete dialog. The category merge dialog no longer shows the page through its own panel.
- Transactions: Correcting the amount on a future-dated outflow no longer flips it into an inflow.
- Transactions: Picking a payee from the dropdown with the mouse and then pressing Enter saves the edit, instead of discarding it and opening whichever row your pointer happened to be over.
- Transactions: The keyboard cursor survives converting a payee into a transfer, and a long amount that clips to an ellipsis shows in full on hover.
- Import: A single-account export containing two offsetting transfers on the same day no longer fails to import. Long imports keep the revert button in reach, and a long filename no longer bloats the file picker past the edge of the dialog.
- Investments: The sell planner tells you when a recalculation failed instead of leaving the previous plan on screen with no sign it's stale. A failed "Create ticker" reports the failure rather than appearing to do nothing.
- Reconciliation: The "pending link approval" count in the stat strip is clickable again, and the Review action on the attention banner switches the state filter to All so the filtered view matches the count it advertised.
- Related transactions: A deleted member no longer counts toward a group's size, which was making a broken group look complete.
- Payees: A payee's default category is recalculated at import time, so a category learned from imported rows sticks instead of being skipped.
- Toolbar: Clearing filters no longer jumps the page down as the refresh hint appears and disappears.
- Dashboard: Hovering an unselected net-worth range no longer makes it look like the selected one. Month-over-month change on the Net Worth report is colored again, and its account filter closes on Escape.