emberfi
← All releases

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.

Beta

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

Fixes