Skip to Content

Release Notes

A steady stream of YNAB improvements for your reading pleasure. Grab some tea. Curl up with a Snuggy® and enjoy.

YNAB Is Always Improving
YNAB Is Always Improving

Web Release Notes: August 20, 2019

Who’s ready for “Back to School?” Ready or not, It’s that time of year, so let us take you to school with some of the fixes and features that we just rolled out:

  • Transfer payee name update fix – Did you know that when you import transactions and change the payee name on one of them, all other unapproved transactions from the same imported payee name will be updated to match the new payee name? Magical, right? And it’s convenient too, because you probably want to update all those other transactions’s payees too! When updating the payee and changing it to a transfer payee, however, we were not creating the other side of the transfer, which caused transfer orphans. Not great. This is fixed now.
  • Costco CitiBank card initials removal – Really getting into the weeds with this one. When transactions were coming through to the accounts of YNABers who used their Costco CitiBank card, the cardmember’s initials were getting prepended to the payee. “Who is HW-Costco? Do I own Costco now?” Yeah. We think that looks weird too, so we put in a fix to remove those pesky prepended initials (I wish there was a “p” word for initials to complete the alliteration trifecta).
  • Wide screen budget table alignment fix – You know the feeling. You go in to reconcile and something is off. And it’s just off by a few cents. If it were off by twenty dollars, or a specific, larger amount, you could do some quick detective work and solve it. But when it’s just slightly off, it’s almost worse. The same is true for the layout of the Budget screen. What if the decimal places were off…just by a little…like so?
    Yikes! Well, this was the case for users with screens wider than 1600 pixels. But it’s not the case anymore. We reconciled the pixel differences and we’re feeling good about it now.
  • Activity modals (pop-ups) not using the same sorting method – Not sure how many of you noticed this in the past, but there were some slight inconsistencies to how some of our activity modals were sorting transactions. But we’ve now went back and made sure all activity modals are now sorting using the same order: date (descending), account name (ascending), payee name (ascending), amount (ascending), entity ID (ascending). Pay attention. This will be on the quiz later.

Web Release Notes: August 13, 2019

When looking at the code we just pushed today, it’s amazing to think that YNAB started out as an Excel spreadsheet with some fancy macros. Back then, bug fixes were probably things like, “Font testing was a bust. Reverted font-style from Comic Sans back to Arial.” But now that YNAB is loaded with features and available on Web, Android and iOS, we have to squash some super edge-casey bugs. Check out this fix that went out today:

When confirming a user’s email change, we will now automatically assign any existing, unredeemed YNAB gift subscriptions that were sent to this new email address. Complicated and confusing, no? Let’s walkthrough the scenario where this applies:

You buy your cousin, Kim, a YNAB gift subscription for her birthday and gift it to [email protected] Cool. But Kim already has a YNAB trial account under her other email: [email protected] Hmmm…well, she won’t get that gift subscription as it is tied to that other email. So, the gift subscription would just sit in gift limbo with that picnic basket you bought your newlywed friends 8 years ago. With today’s fix, when Kim goes into YNAB and changes her YNAB account email to [email protected], that gift subscription you bought her will now apply to her account and Kim will have her shiny, new YNAB subscription you gifted her.

Web Release Notes: August 8, 2019

At YNAB, we work in six week cycles, and our current cycle is about to come to an end. So this release is most likely the calm before the storm of some more major releases in the weeks to come.

We pushed out a handful of internal structural changes to support upcoming features, BUT we also pushed out a seemingly smaller fix that you might notice: YNAB will now treat “Check No.” and “Check #” the same for payees. Hopefully, you’ll have # more problems when transactions go back and forth between the two…wait…did I do that right?

API News

Our API supports Cross-Origin Resource Sharing (CORS) which means you can call the API from within a web browser directly. But, we had something misconfigured and we were not allowing PATCH requests. This has been fixed so you can now patchy patchy ’til your heart is content on the /v1/budgets/default/transactions endpoint to update transactions directly from a browser.

Web Release Notes: July 30, 2019

Summer is in full swing here at YNAB and it’s been a light week for releases! For those of you that subscribed to YNAB via Apple, we fixed a small visual issue with the trial expiration date showing incorrectly in your account sidebar. 

And that’s all she wrote, folks! We’ll see you later this week for more. ?

Web Release Notes: July 25, 2019

You’re not going to see any big changes with your eyes from today’s release, but we hope you feel it in your hearts as we just pushed a bunch of changes to keep Direct Import rockin’ in the free world.

API News

We now support Delta Requests on the /budgets/{budget_id}/scheduled_transactions endpoint.  This allows you to ask the API only for changed scheduled transactions (Deltas, if you’re nasty).

Web Release Notes: July 23, 2019

As you may have noticed, we release new code every Tuesday and Thursday. Today’s release includes a number of changes that you probably won’t see in the app, but these changes are part of the necessary maintenance and set up that we do to facilitate larger improvements to YNAB and all of its glory.

While you may not notice these changes, you may notice that during our weekly releases, we take the app into maintenance mode for around 1-2 minutes, making the app unavailable. And sure, it might only be 1-2 minutes, but think of all the money-moving, reconciling and debt-crushing that can be done in that amount of time! So, chRIS (emphasis his) one of our super rad developers, found a way to only go into maintenance mode when we absolutely need to. So, carry on, knowing that we might totally be updating YNAB right now without you even realizing it!

Web Release Notes: July 16, 2019

Today’s release includes quite a few behind-the-scenes structural changes for larger improvements we’re working on. As for changes that you will see after today’s updates, here are some of the highlights:

  • There is a famous saying in Norwegian (translated to English): “It all comes down to dollars and cents.” Except, I’m totally kidding. They don’t use dollars in Norway. It’s all about the Kroner. And it would be helpful for YNABers who use currencies with number formatting similar to the Kroner, if YNAB’s Net Worth report would show values without wrapping. So, we fixed that. We’ve added a little more width to our Net Worth Report tool tips to give a clearer picture for larger-numbered currencies (and multi-billionaires…just in case)
  • Fixed a bug in Safari that would occur when a user would hover over the “Share YNAB. Get Free YNAB” button multiple times, causing the button to turn black. It weirded us out too. But now, it’s fixed.
  • When scheduling transactions for Cash Accounts, there will never be an indicator from a bank that the transaction has cleared. So, to save you a little bit of time, YNAB will now automatically clear that scheduled transaction for you on the scheduled date (for Cash Accounts only).

Web Release Notes: July 11, 2019

  • Could you smell what the Rock was cooking? Probably not 🙁 Anyways…Updating all of the calculated values is now 2-5x faster when said calculations need to update Age of Money. This makes up about 20% of all requests. This behind-the-scenes improvement makes the web app a little snappier when adding or updating transactions. As an added bonus, it also gives our friendly database a bit more breathing room. Whew!
  • Ever go into YNAB to do a Fresh Start and get annoyed that all of the account balances are at zero? Well, we fixed that. Linked accounts now pull in account balances and the current day’s transactions. Budgeting bliss with less distractions. That’s right, Fresh Start is no longer a chore.
  • For all of our Safari 12 users out there, we fixed an issue where some of our modals (pop-ups) were not positioned correctly. What’s even more fun is that the issue was being caused by a check that we were doing for an old version of Internet Explorer. Browsers! Who knew?!
  • A little while ago we unified our login experience in the app, but, as some of you may have noticed: the option to “show” your password characters while typing was gone after that change. But, fear not! Carlos giveth and Carlos taketh away…and then Carlos addeth the “show password” feature back into the app! Also, Carlos is one of our amazing developers who made this fix possible. Obrigado, Carlos! ??

API News

  • As a developer using the YNAB API, I’m sure you’ve come across a scenario where you only want/need “read-only” access for your app. Well, now all of you API application authors have the option of using the new read-only scope for the YNAB API inside of your app.

Web Release Notes: July 9, 2019

It’s a light release today with a few verbiage changes here and there along with some code changes to the web app that you shouldn’t notice if we did everything right.

Web Release Notes: July 4, 2019

For all you YNABers in the US, Happy 4th of July! A light week around here, just a few quick updates and we’ll let you get back to barbecuing. ?

  • Age of Money could be missing or calculated incorrectly for some months if you have $0 split transactions that have sub transactions which are on budget transfers. It should fix itself the next time you add or update a transaction in the improperly calculated month. ✅
  • When exporting your budget, we used to escape double quotes ” using \” now we’re using double double quotes “”, which is more inline with these .csv standards (for those of you that might be curious).

Web Release Notes: July 2, 2019

  • Super exciting news for all you goal setters out there: Goals for Credit Card Payments (Payoff Balance by Date and Pay Specific Amount Each Month) now count balances carried over from the month before the goal is created as progress toward the goal! ?
  • We installed a few minor updates on the backend to stay on top of security patches.  ?
  • Last but not least, we added a mini power-up to search results—now when you search for payees with apostrophes, they’ll show up even if the encoding of the apostrophe is non-standard.

Web Release Notes: June 27, 2019

  • For those of you using Safari or Firefox, you may have noticed a few wonky spacing issues when scrolling in the account settings area. We tidied up the margins so you can now scroll with adequate spacing.

    PS – If you haven’t visited the settings area in a while, this could be your excuse to check it out! There’s lots of fun things to do—link your Google account, update your billing info, give the gift of YNAB, and so much more!
  • If you’ve been relying on Chrome to autofill your password, the login button would sometimes stay disabled after the email and password were autofilled, which wasn’t very helpful given that you probably set up that autofill to save yourself time! This is now fixed and you can get back to automating-all-the-things. ?

API News

We did a little bit of housekeeping on the YNAB API this week…

(actual footage from our API dev team over the last few days)
  • OAuth applications now support default budget selection so you can ask users for a default budget when authorizing and then pass in “default” in lieu of a budget_id in API endpoint calls, making things simpler in a few cases.
  • A few Delta Request improvements:
    • Delta request on /budgets/{budget_id}/accounts endpoint will now return accounts that have had balance changes
    • The /months/{month} endpoint now returns server_knowledge.
  • Marked transfer_transaction_id and matched_transaction_id as strings rather than uuid in our API spec.

Web Release Notes: June 25, 2019

  • On the Net Worth report, months far in the past could get hidden, so we added a vertical scrollbar to the report so that we aren’t hiding such valuable data anymore.
  • While using shift + arrows to select multiple transactions in the register, if you reached the bottom and hit the down arrow one more time, it used to error but now it doesn’t. We even fixed using the up arrow to unselect transactions too. We even made you a silent film to show you what we are talking about:
  • Besides the two afore-mentioned items, we merged another 10 “pull requests”/”units” of work, but they are all marked as “internal”, meaning that we don’t normally talk about them here. But the author of these release notes thinks that is selling them short, so I’m going to talk about a few of them anyway! The technical folks reading this might appreciate that we:
    • Made it easier for our support teams to map a financial institution from one aggregation provider to another.
    • Fixed grammar/punctuation on a message related to expired password tokens.
    • Disabled reCAPTCHA when running automated tests. (It was easier than trying to trick Google into thinking our automated tests were human.)
    • Removed tracing from the iOS proxy generator templates. (That sounds too cool not to include it.)
    • Upgraded to Typescript 3.5.1 and upgraded RSVP to version 4.8.5.
    • Migrated to Yarn Workspaces. (We are big fans of this approach after having only used it a few days.)
    • Fixed some issues with our Docker development environment.

Web Release Notes: June 20, 2019

  • In Firefox we were unintentionally sorting by category when you were trying to resize a category column, we fixed that.
  • We’re smarter about which default dates we recommend when your make a transaction recurring depending on the frequency.

Web Release Notes: June 18, 2019

  • When adding a transaction, if you changed your mind and clicked on some other transaction, we’d always force you to cancel adding the transaction first. Now, if you have made no changes, we’ll just dismiss without asking to cancel. Because we’re cool with changing our minds. (If you made any changes to the transaction though, we’ll still ask you to cancel, just in case.)
  • When adding a transaction, you could click the Needs Category notification icon on another transaction to begin unintentionally editing it. Oops, not anymore.
  • When searching for a sub-transaction of a split, the collapse split button will no longer appear giving you the impression you can collapse a partially shown split, because you really can’t do that.
  • Fixed a layout issue when adding accounts on large tablet screens.

Web Release Notes: June 13, 2019

  • Fixed an error that could prevent loading the app on IE11.
  • Updated some build dependencies, keeping up with the latest and greatest out there.
  • We are currently testing some under the hood changes to decrease database load and improve performance.

Web Release Notes: June 11, 2019

Lots of under the covers updates to support some upcoming new features.

API News

  • We updated our documentation to make it clear that the API doesn’t yet support creating or updating scheduled transactions.

Web Release Notes: June 6, 2019

  • We made small changes to make the overspent and underfunded category colors stand out a bit more, especially if you have a form of colorblindness.
  • But if those don’t stand out quite enough for you, we also added an option in Account Settings to switch back to the Classic colors. Now you can decide which style works best for you.

Web Release Notes: June 5, 2019

Fixed an issue with transactions for some accounts importing with payees like U S Dollar, Canadian Dollar, British Pound, and the like, in the past couple of days. You might still see some lingering imported payees like that the next time you import, but going forward they should show up correctly like they used to.

Web Release Notes: June 4, 2019

API News

  • Creating or updating splits through the API isn’t supported (yet) but you can update the parent transaction of an existing split. The only catch is you cannot change the date, amount, or category. We updated our API docs to make this a tad clearer.

Web Release Notes: May 30, 2019

  • Now as scheduled transactions become real life transactions, we will attempt to match them to any previously imported transaction. Even when using Enter Now from the Edit menu. Usually scheduled transactions will fire before their imported counterparts are imported but in some cases the imported one will beat it. This is especially true if you are using an API integration that offers near real-time importing of transactions.
  • The Underfunded Quick Budget option is now available when you’ve selected a single category that is either overspent, has a goal that hasn’t been funded yet or if you haven’t budgeted enough for an upcoming transaction.

Web Release Notes: May 28, 2019

Just one noteworthy fix. If you have ever seen a $0.00 balance with a red color pill you might have been confused. We’ve fixed this rare scenario, which was caused by some rounding issues. High fives the other JavaScript developers.

Beyond that, a lot of behind the curtain lever pulls and button pushes, preparing for some upcoming features. What kinds of buttons and levers? Well, there was 4,247 lines worth of overhauled CSS, for starters. These changes should make our future efforts easier and faster, but you won’t notice anything different just yet.

Web Release Notes: May 23, 2019

Sorry folks, more sight unseen improvements today. But, these type of changes keep YNAB running smoothly for your budgeting pleasure. Interesting fact: we removed more lines of code today than we added.

Web Release Notes: May 21, 2019

Today’s release is all sight unseen improvements. Among other (unseen) things we are releasing a change to our database that should significantly help move some database metrics in a positive direction. You likely won’t notice, but we will because it should make internal-chat messages like “Alert: 95th% Response Time High” or “Hey Taylor, are you seeing this strange behavior?” a thing of the past.

Web Release Notes: May 16, 2019

  • Fixed a login error with the latest version of Firefox.
  • These are other items to give the illusion of more going on in this release.
  • There are also maintenance and security fixes going out.
  • But we don’t usually talk about those, so mum’s the word.

Web Release Notes: May 14, 2019

  • We’ve improved the contrast on our category balance pills. With these changes, users with visual impairments will be able to use YNAB more easily. Accessibility FTW.  Read today’s blog post to learn more.

API News

  • We’ve increased the max length of the memo field from 100 to 200 when creating or updating transactions. We’ve updated the docs accordingly (be sure to click ‘Model’ under the ‘data’ section).

Web Release Notes: May 9, 2019

  • A little bit ago we regaled you with news of our unifying the login/signup flows. In our excitement we forgot to put the “keep me logged in” checkbox on the revamped login screen. If that doesn’t ring a bell, it used to be called “remember me”. Whatever you call it, it’s back where it belongs.
  • Fixed a crash when Apple subscribers try to resubscribe after their subscription has expired.

API News

  • Thanks to Andre Bocchini’s generous work we now have a Swift API client for iOS/macOS/WatchOS/tvOS. Fittingly, we’ve added it to our list of community-supported libraries.
  • The login/signup unification mentioned above accidentally broke the API OAuth Login process. This release fixes it.

Web Release Notes: May 7, 2019

Just a maintenance release today, and a small one at that. We just got back from our annual retreat yesterday (it was wonderful), so I suspect we’ll have more to talk about here later this or early next week. Hope you’re having a great week.

Web Release Notes: April 25, 2019

Only performance and security updates going out today. If it’s any consolation, I find that just as boring as you. But let’s not dwell in the past. [cue inspirational music] Let us, instead, look forward to the undiscovered wonders of next week’s release notes…

Web Release Notes: April 23, 2019

  • We’ve updated the login/signup flows, unifying the look and feel across platforms. Along with refreshing the design, we’ve improved security and prepared the code for more significant updates in the future.
  • If you tried to change a Monthly Funding goal to be Target Balance by Date, on rare occasions we would delete it instead of saving it. Fixed now.

Web Release Notes: April 18, 2019

  • If you have a javascript disabled in your browser, the app won’t work well, if at all. We’re usually pretty good at detecting when it’s disabled and showing a lovingly crafted message asking you to re-enable javascript so we can carry on. Except for some pages in the My Account area. Things would just break and look weird, with no lovingly crafted message telling you what’s going on. We’ve now extended the coverage of the twice aforementioned lovingly crafted message to include the My Account pages.
  • If you selected “Make Recurring” for the date of an existing transaction, we were so eager to create your scheduled transaction we forgot to save any changes you may have made to the transaction you just made recurring. Now we save your changes, then go about creating the scheduled transaction.
  • Improved CSS loading performance, which improves app loading performance, which improves perceived loading time. I mean, if we’re being honest.

Web Release Notes: April 16, 2019

  • We now disable the Undo/Redo buttons while you’re editing a transaction. Once you’re done editing, we reenable them.
  • When deleting a Category Group, sometimes you’d have to click Undo/Redo multiple times. Now a single click does the job.
  • Much like we reported in the critically acclaimed April 9 release notes, we found another case where the list of accounts was ordered differently in the Payee dropdown for individual transactions compared to the main list of accounts on the left. Now that one’s fixed, too.
  • Keeping with the theme… The Account list in Edit > Move to Account menu was sometimes ordered differently than the sidebar. Now they’re consistent.
  • When viewing transactions for a particular payee in the manage-payee popover, we sometimes we displayed internal, non-displayable transactions. We don’t do that any more.

API News

  • Updated docs to include validation requirements for creating/updating transactions.
  • Fixed a typo in an error message we hope you’ll never see.

Web Release Notes: April 11, 2019

A somewhat disappointing release today insofar as there is little to talk about. All internal stuff, nothing user-facing. 

In an effort to stretch it out just a little bit longer, here’s a rough breakdown of the kinds of things we shipped, along with their relative number of updates:

  • 3x internal tooling (primarily to support our beloved support folks)
  • 2x increase direct import efficiency
  • 1x shore up Apple subscription plumbing
  • 2x paying down technical debt
  • 2x performance improvements
  • 1x remove now-obsolete workarounds
  • 1x prep server for mobile bug fix
  • 1x prep for upcoming feature

Web Release Notes: April 9, 2019

  • We’ve added a “finishes” date to Target Category Balance by Date goal progress. Now you can easily see when your goal will be finished, which wasn’t quite as discoverable before.
  • In certain cases when importing large numbers of transactions, the logic could go off the rails, incorrectly matching or not matching other transactions. Fixed now.
  • In a recent change, we improved how your search is saved. This caused a new bug where the old bug would reappear if you cleared out your search, once again putting you in a situation where you could never really clear your search. We’re gonna call this one “fixed” again and hope it sticks.
  • In rare cases, the list of accounts was ordered differently in the Payee dropdown for individual transactions compared to the main list of accounts on the left. Now they are both ordered like the main list of accounts on the left.

Web Release Notes: April 5, 2019

  • If you had an account register search saved from before our April 2 release, we would reuse that search when you came back to the account register, even if you had cleared it. It might have even made you say to yourself, “wait…”. Well, fret not, it’s fixed now. Have a great weekend.

Web Release Notes: April 4, 2019

  • Scheduled split transactions comprising transfer sub-transactions needed some attention. The split side didn’t provide a link to the other side, and if you clicked on the link from the other side, it crashed. LOL. Fixed now.

Web Release Notes: April 2, 2019

What’s New

  • We now store your filter, search, and sort order settings for the “All Accounts” view on a per-budget basis. Modifying filter, search, and/or sort order settings for one budget’s “All Accounts” view won’t affect those settings in any of your other budgets.

API News

  • When responding to delta requests for /categories, we weren’t considering the server_knowledge of some of the entities related to a given category’s monthly budget. Essentially we weren’t considering changes to activity or balance amounts when deciding which categories had changed since a given last_knowledge_of_server. Now we do and you get a more accurate view of categories’ changed states.

Web Release Notes: March 28, 2019

  • For the armchair grammarians among us, we now refer to your age of money as being “1 day” instead of “1 days.” I’m not sure how it could, but if this issue resurfaces, there’s a tried and true workaround.

API News

  • Thanks to the generosity of Taryn Phrohdoh we now have an API client library written in Rust. You can check out all the client libraries—official and community-supported—in the API documentation.
  • The documentation for our response to GET /budgets requests was incomplete. Each budget summary object also includes first_month and last_month dates. Those dates represent the earliest and latest budget months, respectively. The docs now make that clear.
  • We no longer choke on unsupported Unicode escape sequences in the request payload. Now we return HTTP 400 and error detail.
  • Fixed an issue where some transaction payees were nullified when importing multiple transactions in a single API request. Moral of the story: always reset your loop variables.
  • The GET /transactions endpoint wasn’t returning split transactions that had been converted to non-splits. Now it does.

Web Release Notes: March 26, 2019

  • Creating a new category from the category field of a new or existing transaction by clicking “Add Category”, then “Save” did nothing and no new category was created. That was sub-optimal, so we fixed it. Now it creates the new category.
  • The Income v Expense Report now remembers your expanded and collapsed rows. This was our intention all along, but we wrote a bug that broke it when we converted some related code from CoffeeScript to TypeScript. To our credit, the bug was type safe.
  • If you navigated from one side of a transfer transaction to another, and that other side happened to be a collapsed split transaction, the app would hang. :sadtrombone: Now you’ll see the expanded split. :lightheartedpiccolo:

API News

  • The API Endpoints documentation has long given you the ability to quickly and easily query your data. (All you need is a simple personal access token for authentication.) We’ve tweaked the validation rules for UUIDs to prevent some false-positive validation failures. Most notably, we now support last-used for IDs, where appropriate.

Web Release Notes: March 21, 2019

  • Several behind the scenes changes today, including some preparation for an exciting new feature! Have a great end of the week.

Web Release Notes: March 19, 2019

  • When creating a category in the register, if you used the keyboard it would accidentally create the category twice. Now it only creates a single category as expected.
  • When changing a budget’s name, the browser’s title wasn’t updating. Fixed!
  • When transferring from one Budget Account to another, using tab to select a Transfer Payee was moving the cursor into the Category field. YNAB doesn’t even allow you to categorize transfers between Budget Accounts, so that wasn’t helpful. Now hitting tab will skip directly the Memo field instead.
  • Keyboard selection in the account register is back to normal, we had a bug where you couldn’t select rows across the regular transaction section and the scheduled transaction section.
  • You can now type “split” into the category dropdown to automatically select the ability to split the transaction. Or “s” or “Sp” or “sPL” or “SPLit” I think you get the point…

Web Release Notes: March 14, 2019

  • In rare cases, the columns on the account register that cannot be resized (checkbox, flag, cleared) could become smaller than they should be. Once they got out of whack, there was no way to resize them back to the size should be. They are now at the correct size no matter what you do.
  • When you first start YNAB, we will helpfully start pointing you to certain parts of the budget screen and instructing you how to budget and move money around. But as it turns out, if you collapsed Category Groups before these instructions appear, we had no idea where to point you and would end up pointing these instructions to places that didn’t make sense. It was an especially embarrassing mistake for us because if you were seeing these instructions, you were likely new to YNAB. I’m relieved to tell you that we have wiped the proverbial egg from our face and have fixed the issue.

Web Release Notes: March 12, 2019

  • Some of you might not know this, but YNAB is great at importing transaction files downloaded from your bank. This is really helpful when your bank doesn’t support directly connecting to it, or the connection is having trouble. Now that we’re all on the same page, you should know that we improved the way we import dates and times for files that end in .ofx or .qfx. Now we take the time into account and not just the date, which means that your transactions are more likely to fall on the correct date when they’re imported.
  • When linking to your bank account, we could sometimes show a really cryptic error message that started with “Missing translation” and got worse from there. No more!
  • Sometimes, when we hit a snag while importing transactions from your bank, we will keep trying in the background, and all you have to do is wait a bit for things to catch up. But when that would happen, we would previously make it look all “doom and gloom” and put an error icon in your sidebar. Now we will correctly tell you that the syncing is merely “delayed”.
  • When importing from your bank, there was a rare scenario that could cause the same transaction to get imported twice. It was confusing, so we fixed it.
  • When importing from your bank, there was a rare scenario that could cause the same transaction to get imported twice. It was confusing, so we fixed it.
  • If you’re looking at your budgets list, you can now still  create a new budget directly from the menu in the upper left corner even though there is already a “create new budget” button in the list of budgets.
  • We made some improvements to the way we tell you about your goals.
    • Added “Started” month/year
    • Added the goal type in the title so that you know what kind of goal it is.
    • We dropped the “s” from “GOALS” because that “s” was silly.
    • P.S. Indented bullet lists are difficult to format.

API News (for you developers out there):

  • You can now use insecure redirect URIs for localhost (e.g. http://localhost:3000) with your OAuth Applications using the Authorization Code Grant Flow. Previously we’d require that you redirect to https://localhost:3000 for local testing, which required a lot of annoying hoop jumping and certificate management. Hat tip to @kordonme for the request!

Web Release Notes: March 7, 2019 — 2nd edition

  • Quick update to fix some minor display issues with the last release.

Web Release Notes: March 7, 2019

  • Escaping from the transaction editor during reconciliation would flat out cancel reconciliation. Now it just closes the transaction editor, allowing reconciliation to continue apace.

Web Release Notes: March 5, 2019

  • Direct Import: We fixed an issue where some transactions from different linked accounts could incorrectly import into the account being added or linked.
  • Move Money now shows available amounts from the currently selected budget month, rather than the current calendar month.
  • The status of iTunes Subscriptions through Apple shows more accurate and detailed information under My Account. Not that it was wrong before, but it’s much richer now.
  • You can now import transactions across all your linked accounts in the web app using the notification under “All Accounts”. It will include the grand total number of transactions available to import, approve, or categorize, and clicking the notification will trigger the import of available transactions, if any, while also filtering the list to display only those transactions. You may now import with reckless abandon.
  • The Turkish Lira becomes a first-class citizen as we now use its symbol, ₺, instead of our inauspicious placeholder, TL.
  • Budget-category-group checkboxes better reflect the state of their constituent sub-categories. It’s now more obvious when you have all, some, or no sub-categories selected for a given category group, whether that group is expanded or collapsed.
  • If you had any categories selected in your budget, then expanded or collapsed their category group (or just clicked the empty space in a category group row), we mistakenly de-selected your categories. Fixed now.
  • We’re now taking a more gentle approach to notify you of new releases, this present release notwithstanding.  Going forward we’ll pop up a little message to give you the option to “refresh” your browser immediately to get the new bits, or hold off on the update so you can finish whatever task is at hand. Regardless of your choice there, we also have an easy link to these very release notes, which may be the single most important item in this entire list. You can tell because it comes at the end, when most people have already given up reading. (If you are reading this bullet point in its entirety, please read it a second time to make up for all the people that punched out early. Thx.)

API News

  • We now explicitly designate the format (int32 or int64) of integer types in our OpenAPI spec. This change to the spec has no practical implications for our Javascript SDK and Ruby SDK, neither of which needed updating subsequent to this change. However, if you’re generating your own client library and your language of choice distinguishes between integer types, it’s time to update.

Web Release Notes: February 28, 2019

Sorry, not much to report today. Just maintenance and security bits. Important, but dull. That’s it. I yield back the balance of my time to the Chair.

Web Release Notes: February 26, 2019

  • When we import transactions from your bank, the “payee” field undergoes a fair amount of processing. First, we have to clean it up from its raw form, then we apply your payee renaming rules. We show the fully processed payee (i.e. cleansed and renamed) in the register. If you mouse over that, the tooltip will show you the cleansed version. And if you really want to see the original payee as provided by your bank, you can follow the “bank import details” link at the bottom of the payees dropdown, and there, in all its unrefined glory, you’ll find your “Sale AMZN Mktp US*MI5DF8ZV1” payee.
  • We fixed the currency ISO code for the current Azerbaijan Manat (its 3rd incarnation, if you’re counting). We originally had it as AZM, but everyone knows it’s supposed to be AZN as of the beginning of 2006. Apologies to beloved Azerbaijani and Turkmen YNABers, and thanks for gently correcting us.

Web Release Notes: February 21, 2019

  • When looking at your scheduled transactions and using the ‘Enter Now’ feature, we’ll create the new transaction and shift focus to it. We used to create the transaction but maintain focus on the scheduled transaction that spawned it.
  • Mobile only: Fixed an awkwardly large scroll area at the bottom of the Add Account and connection management screens on mobile.
  • The connection status of linked accounts is now more obvious.
  • In rare situations, deleting a category would not work. You click ‘Delete’ and nothing happens. Now it will delete the category.
  • Jumping from the budget’s ‘Activity’ popup to a specific transaction in the register could cause a crash if the target transaction was a collapsed split. Now we simply expand the split.


Web Release Notes: February 19, 2019


Scheduled transactions are a great way to automate your budget. Just set and forget. Until months later when you forget that you set and transactions seem to appear mysteriously. So to improve visibility, you can now collapse your scheduled transactions:

Web Release Notes: February 14, 2019

Once again we find ourselves announcing a maintenance and security release. Not very flashy, as release notes go, but important nonetheless. Good luck with the end of the week. I hope it’s all down hill from here.

Web Release Notes: February 11, 2019

  • A lot of stuff going out today, but it’s behind-the-scenes maintenance and security stuff, so we don’t have much to talk about here. Have a great week. (We’re rooting for you!)

Web Release Notes: February 7, 2019

  • You can now collapse individual split transactions.
  • We unified the two sidebar menus. The one-menu-to-rule-them-all now lives at the top left corner.
  • Para sa aming mga kaibigan sa Pilipinas, ang aming kasanayan sa Alexa ngayon ay nagsasalita ng mga piso!
  • For our Filipino friends, our Alexa skill now speaks pesos!
  • When Fresh Starting with scheduled credit card payments, we would miscalculate “Budget for Upcoming” and not show an underfunded alert. Fixed now.
  • We figured out how to get reordering accounts in MS Edge working.

Web Release Notes: February 5, 2019

Only small internal changes today (e.g. CSS maintenance; humans.txt updates). Mostly setting the stage for future updates. Nothing else to report.

Web Release Notes: January 31, 2019

  • Chrome v72 (the latest as of this writing) choked on our pristine CSS (UI styling rules), preventing users from scrolling to the bottom of the register. Fixed now.

Web Release Notes: January 29, 2019

API News

• The endpoints to list accounts, categories, payees, and months all now support delta requests. If you’re looking for speed and efficiency, deltas are the way to go.

Web Release Notes: January 24, 2019

  • Fixed an issue where scheduled payments from one credit account to another were not correctly calculating the “Budget for Upcoming” Quick Budget amount nor properly updating the payment category Available balance warning. Again, fixed now.
  • Fixed an edge case scenario that could prevent credentials from being retrieved or submitted when troubleshooting existing Direct Import connections.

Web Release Notes: January 22, 2019

• IE11 browsers and earlier versions of Edge were choking on the Spending Totals report. As a result, we don’t display sum totals in those browsers. Recent versions of Edge handle the report well so we now show the sum totals in Edge, just like all the other browsers. Except IE11, which is still (and forever will be) broken.

API News
Delta Requests on the /budgets/{id}/transactions endpoint now include any tombstoned sub-transactions, if they were tombstoned since last_knowledge_of_server.

Web Release Notes: January 17, 2019

  • When deleting a transfer transaction with the other side being a split transaction, we failed to delete the other side’s sub-transactions. Fixed now.
  • When entering an invalid date in the register, we would continue to display the invalid value while behind the scenes we would use the last valid value. That was confusing so now we’re making it more transparent and reverting the invalid value as soon as you leave the field.

Web Release Notes: January 15, 2019

  • Page titles got some love. They’re more reflective of what’s happening on a given page (e.g. “Income v Expense Report | [Budget Name] | YNAB”). Bookmark them all, then brag to your friends.
  • We recently pushed up some changes to ‘Enter Now’ to prevent it from duplicating sub-transactions in rare situations. Unfortunately, those changes inadvertently broke Enter Now for people who had already used it for a scheduled date and later deleted the transaction. It’s now working as you would expect: If you delete a transaction created by a previous use of Enter Now, then use Enter Now again, we’ll create another transaction.
  • A while back we addressed some issues with Spending Reports, particularly how we handle net positive spending, where a category group has more inflows than outflows for a particular month. Unfortunately, we missed the mark a bit, causing some confusion. Now we plot net inflows (as negative values), and you can more clearly see how all the numbers add up.

API News

  • PATCH is now supported on the /budgets/:id/transactions collection to allow bulk updates. Also, import_id can be passed in lieu of id to update an existing transaction with that import_id.
  • Updated a few error responses for consistency.

Web Release Notes: January 10, 2019

API News

  • The API now supports matching when creating transactions. If you specify an import_id, we’ll attempt to match an existing user-entered (i.e. not imported) transaction, just like we do for Linked accounts. Woot.

Web Release Notes: January 8, 2019

  • If you used “Enter Now” for a scheduled split then changed back to the originally scheduled date, you could end up with duplicate splits in some situations. We fixed that.
  • If you tried linking the Alexa Skill from an iOS 11 device, you would end up on the My Account screen, mysteriously. That’s not right so we fixed it. It’s actually an upstream bug, but it’s relatively easy enough for us to work around in our code.
  • We used to allow imported transactions to be matched with balance adjustments and starting balance transactions. That’s wrong so we stopped doing it.
  • We fixed a bug where a scheduled transfer from a credit card account to a tracking account would not correctly show up as an upcoming transaction in the quick budget section of the budget inspector nor change the category to orange. All better now.
  • Fixed a rare issue with linking accounts and downloading transactions.

API News

  • We had some issues with how we were handling the month URL segment. It only worked when you passed in the first of the month (e.g. 2018-12-01) Otherwise, you’d get an error. Now you can pass in any valid day of the month (e.g. 2018-12-17) and we’ll handle it properly.
  • If you pass in an invalid value for the month URL segment, we’ll return a more helpful error:

HTTP 400 Bad Request
"error": {
"id": "400",
"name": "bad_request",
"detail": "invalid date"

Web Release Notes: January 3, 2019

  • Auto-categorizing to Credit Card Payment categories is no longer an option in Manage Payees. It didn’t work anyway, it just created uncategorized transactions. PSA: Categorize credit card spending to the category it was budgeted for (e.g. groceries) and we’ll automatically move money from the spending category (again, groceries) to the credit card payment category.
  • The payment recommendation text in the credit card account inspector was removed. It wasn’t very helpful. It is sorry, and will go to its room and think about what it’s done.
  • If you’re logged into YNAB and purchase a gift subscription with a different credit card than your current subscription, your upcoming renewal now shows this new card will be charged. It didn’t before, but our payment system uses the latest credit card info.

Web Release Notes: December 31, 2018


  • Big budgets (accounts with 5K+ transactions) are snappier when loading.
  • If you overspent on credit, the category tooltip could erroneously include underfunded goal amounts in its reporting of the overspent amount. It now reports only the overspent amount.

Web Release Notes: December 27, 2018

What’s New

  • On the Income vs Expense report, the “Question Mark Button” was crowding, and in some cases overlapping the table. We put a stop to that.

Web Release Notes: December 11, 2018

General Goodness

  • If you cancel your subscription after entering the dunning process, we cancel any outstanding invoices. If you don’t know what dunning is, you’re in good shape.
  • Fixed an edge-case Direct Import scenario where we’d throw an “uh-oh” error before you could re-enter account credentials when troubleshooting a connection.

API Goodness

  • GET /budgets/last-used/settings was erroneously returning HTTP 404. It now returns the settings for the 'last-used' budget, if so specified.

Web Release Notes: December 10, 2018

Not much to report

  • In some circumstances a Direct Import institution can become unavailable for a prolonged period of time. We improved connection handling for those cases so they properly reflect these unavailable statuses.

API News

  • If you attempted to create a new transaction in an account that doesn’t exist or belong to the designated budget we would return an HTTP 500 error. That made it difficult for the client to figure out how to recover. We now return HTTP 404 with appropriate error details: 'Account does not exist in this budget..

Web Release Notes: December 6, 2018

What’s new

  • Onboarding got more personalized. We now ask new folks a few questions after sign up, to help tailor support and materials to get them going.

Other stuff that’s cool but not as cool as personalized onboarding

  • We sometimes replaced well-formatted payee names with all uppercase payee names. WE ARE SORRY AND WILL NOT DO THAT AGAIN.
  • Fixed an error that could cause the screen to go blank when logging out, requiring a page reload.

Web Release Notes: December 4, 2018

Using a fork or your hands, gently split the Release Notes in half.

  • For a long time now we’ve “rolled the calculations” before the first of the month (or FOTM, affectionately) for your most frequently accessed budgets. This makes them load more quickly after the transition to the next month. We’ve now got things dialed in on the server side so we’re expanding the pre-calc behavior so it includes less frequently access budgets as well. Essentially, we pre-calc all budgets now so they’ll all load more quickly. (I suppose I could have just gone with that last sentence, but I wanted to provide context. Context makes it more interesting, right? At least it does so for writing release notes, if not reading, which ain’t nothin’.)
  • We’ve resolved a quarrelsome popover situation where two popovers could appear when editing a transaction then hovering over a Direct Import status. We all know there can be only one. DI status wins.

Web Release Note: November 29, 2018

API News

  • There was a bug in the PATCH budgets/:budget_id/months/:month/categories/:category_id endpoint. Regardless of the month designated, it would always update the current month. Fixed now.

Web Release Note: November 27, 2018

  • Fixed an edge case issue that could cause an uh-oh error when navigating and dismissing the account flow while one of the interstitial screens is loading data.

Web Release Notes: November 22, 2018

The Turkey Edition

  • We fixed a loading issue that was affecting some people when opening the app, preventing them from budgeting for the turkey. Happy Thanksgiving!

Web Release Notes: November 20, 2018

The Pre-postprandial Lethargy Edition

  • When searching or filtering transactions, clicking on the empty area underneath the checkbox next to the filter message would result in an error. That’s fixed.
  • When creating a new category from the register, the “Add Category” popup was visually separated from the nascent transaction. This was offensive to even the most liberal senses of order. Fixed now.

Web Release Notes: November 15, 2018

  • Firefox was displaying an errant “E” in empty checkboxes. Fixed.
  • Reset password flow got some design love. Now password resets are more flowy and (to bury the lede) work on mobile.

Web Release Notes: November 13, 2018

Answers to the “What Changed with YNAB” Quiz

  • We now support drag-and-drop file importing for Edge browsers. All the other browsers are happy to have Edge join the party, but if you’re going to come late, bring dessert.
  • We’ve made it more obvious how to create a new category when entering a transaction. Spoiler alert: you click the “Add Category” link that greets you when the popover opens. We used to wait until you started typing the category name before we showed the link. Now the link’s always visible.
  • When authorizing a Works with YNAB application, we now show the email address with which you are currently logged in. There’s a convenient logout link, too, if you need to switch accounts.
  • Direct Import: If there’s a known issue with your particular financial institution, we’ll display a modest “known connection issue” banner, with a link to “Show” more information. Problem was, you could click, click, clicky all day and you’d never see more information. That’s fixed now. Never seen this banner before? Cool.

Web Release Notes: November 8, 2018

Pretty quiet today.

  • Direct Import: Fixed an edge case where connection tips weren’t being displayed when troubleshooting existing connections and being asked to re-enter credentials.

Web Release Notes: November 6, 2018

Things That Are Now Slightly Different

  • Fixed an issue with extracting dates when importing OFX/QFX files that use (if not abuse) new lines.
  • Adding a new unlinked account now requires a current balance. We used to set it to zero if you left it empty, but that resulted in a bunch of mistakenly created zero-balance accounts. You still can create zero-balance accounts, you just have to be explicit about it.

Web Release Notes: October 30, 2018

Spooky News

We sent 3,744 lines of code haunting the web app to the graveyard. Paying off technical debt is almost as satisfying as paying off financial debt.

Not So Spooky API News

Learn about the YNAB API

  • Using the nifty new PATCH /budgets/{budget_id}/months/{month}/categories/{category_id} was not properly updating some behind-the-scenes data which caused some very strange things to happen with budgeted and available amounts on mobile apps. The issue didn’t always happen but when it did it was creepy.

Web Release Notes: October 25, 2018


You can now drag the lines between column headers in the register to resize the columns.

Resize Columns

Bug Fixes

  • When adding a secondary Google login we were sometimes showing that last login as the Primary one. Fixed!
  • When making a split transaction recurring, we were incorrectly focusing on the memo field instead of the date field. Fixed!
  • When editing a transaction that needs approval if you pressed Enter/Return when focused on the Approve button we were not exiting edit mode. Fixed!
  • The available column tooltip was showing encoded characters for currencies that use an apostrophe as group separator. Fixed!

API News

Learn about the YNAB API

  • Restricted Mode will now be restricted to 25 unique users, rather than 25 access tokens issued.

Web Release Notes: October 18, 2018

Improvements & Bug Fixes

  • Back in September we started opening the approval popover after the notification banner was clicked. We’ve received very constructive feedback since then and learned that flow is not ideal. We’re going back to the drawing board to create a more pleasant solution!

Web Release Notes: October 15, 2018

What We Have to Show for Our Work

  • Fixed a bug with the sorting of transfer account payees on tracking accounts.
  • We improved the performance of the YNAB 4 migration process on several fronts. Should be snappier now. (Tell me you didn’t just have the thought, “Oh, YNAB 4’s still a thing?”)
  • The edit transactions dropdown at the top of the register lists a bunch of actions you can perform on your selection. Some of those actions aren’t appropriate in some contexts, so we simply gray them out to visually *indicate* their inappropriateness for the given context and pray to all that is good that you don’t actually click on one of them. Well, after quiet reflection and careful consideration we’ve decided it makes more sense if we actually disable the buttons too. So we did. :half_heartedly_blown_birthday_horn_emoji:
  • When only some transactions are selected in the accounts page, we’re turning the check all checkbox to an uncheck all button. Handy!

API News

Learn about the YNAB API

  • The GET /budget/{budget_id}/.../transactions endpoints now support Delta Requests.
  • As a convenience, we allow you to pass in 'last-used' in lieu of an actual budget id. It’s supposed to return the budget you last used, obv. As an inconvenience, we sometimes returned deleted budgets. That’s fixed now and 'last-used' no longer considers deleted budgets.

Web Release Notes: October 4, 2018

Slow News Day

  • IE/Edge only: Fixed an issue where Payee type-ahead search for transfer accounts could throw an error.

API News

  • We’ve soft-deprecated POST /budgets/{budget_id}/transactions/bulk. It still works and we still support it, but POST /budgets/{budget_id}/transactions with a transactions array is likely the more future-proof way of creating multiple transactions.

Web Release Notes: October 2, 2018

It’s all about the API today.

  • When creating a transfer transaction, or converting an existing transaction to a transfer, we were setting the transfer transaction’s cleared attribute to match that of the source transaction. We now set the transfer transaction’s cleared attribute to 'uncleared ' to match the behavior of the mobile and web clients.
  • /budgets/:id/categories/:id/transactions, /budgets/:id/payees/:id/transactions, and /budgets/:id/accounts/:id/transactions return transactions and subtransactions that have the specified category or payee. We were erroneously including some subtransactions belonging to deleted transactions. We’ve stopped doing that.

Web Release Notes: September 27, 2018

Nothing much to talk about in this release. At least nothing specific. Sorry. OK, maybe we’ll just list a few to give the illusion of substance to this release. And fair warning, if you’ve read this far you’re in on the ruse, thus ceding the moral high ground along with the rest of us. Let’s agree not to judge each other. Anyway, here are the things going out in this release that don’t warrant mentioning:

  • More gracefully handle the scenario where the user has no budgets. You have to work to get yourself into this situation though, because we create a default budget for you when you first sign up. Not a widely encountered issue, but fixed nonetheless.
  • Round some rough edges of the account widget build script.
  • Feature-flagged features we’ll announce later, once they’re more widely released and proven effective.
  • Remove a feature flag that’s been ramped to 100%.
  • Add some preparatory Direct Import plumbing that currently does nothing but will eventually.
  • And that’s it! It looks like a big deal when you throw a lot of words at it.

Web Release Notes: September 25, 2018

Improvements & Bug Fixes

  • It’s now easier to approve or reject imported transactions. When you click the “View” button next to the the transactions-need-approval message, we now not only filter for those transactions needing approval, we walk you through each, asking if you want to approve or reject. It’s quick and reduces friction. We’ll call it a win.
  • The “% of Total” values were missing from the Spending report tooltips. Fixed.
  • We now hide the payee dropdown until you add your first payee. Not much use in showing you an empty list.
  • Fixed an issue where the month name wasn’t showing up in some of the copy in the budget header.
  • Transfer payees now respect the sort order you’ve defined.
  • Searching for “payments” or “transfers” will match the transfer payee list.

API News

  • Budgeting is now supported with the newPATCH support added to the
    /budgets/{budget_id}/months/{month}/categories/{category_id} endpoint.
    Zum Beispiel:

     curl -i -X PATCH \ \
       -H "Authorization: Bearer c1326058-972a-FAKE-64cfa9975f26" \
       -H "accept: application/json" \
       -H "Content-Type: application/json" \
       -d "{ \"month_category\": { \"budgeted\": 394595 } }"

  • The create and update transaction endpoints now support transfers by specifying a payee_id of a transfer payee (i.e. a payee with a non-null transfer_account_id).
  • For convenience, we’ve also added a new field on the Account model called transfer_payee_id, which is the payee_id to use when transferring to that account.
  • You can now create multiple transactions on the POST /budgets/{budget_id}/transactions endpoint by passing a transactions array in the payload. You can still create a single transaction with this endpoint by passing a transaction object.

Web Release Notes: September 20, 2018

[no release notes]

This one’s pretty much a maintenance release. A bit dull if we’re being honest. But today’s my IRL cake day, so I’ll take license and tell a story. [Fair warning, we’re about to go “inside baseball” so feel free to stop reading now. You won’t miss anything of import. —Ed.]

Updates to the app are made using “pull requests”, as in the author of the update is requesting these changes be pulled into main codebase (from which all the apps are built). Each pull request (commonly known as a PR) has a title, and if the author deems the update unworthy of inclusion in the release notes, s/he will append “[no release notes]” to the title. It’s one of my favorite phrases.

I love seeing [no release notes] on a PR because it means I don’t have to write anything, I can just move on, less work. Don’t get me wrong, I love writing release notes, but it’s not a task to which I ever look forward. Once I get rolling I’m fine, but I’m always resistant to start. And each PR that includes [no release notes] means I can further delay the start.

And I must admit my excitement builds as I work through each PR and each seem to include that magic phrase of reprieve: [no release notes]. But it’s a delicate balance. Ideally each release has two items I can include in the release notes, then there’s something to write, but not much. If only one item makes the cut, the release notes look anemic. If none makes it, then I’m faced with a dilemma. I could just phone it in with something along the uninspiring lines of “bug fixes and performance improvements”. Or, I could pull myself up by my professional pride and burn waaayyy to much time trying to think of something clever to write, write three drafts of it, quickly grow to dislike each, and ultimately settle for something akin to what I originally had in mind but couldn’t quite execute well enough to be grateful for not having to write release notes today.

Web Release Notes: September 18, 2018

Improvements & Bug Fixes

  • When adding a transaction to a cash account, we now default the transaction to be cleared. One less click for those of us who use cash and one more click for those with an intricate multi-wallet cash clearing system.
  • Previously in manage payees, you could auto-categorize a payee to be Inflow: To be Budgeted. We (royally) broke that in a recent update but now we (royally) have fixed that with a proper regression test.
  • If you had a transaction categorized, then hid that category, editing that transaction would recommend creating that hidden category. Now it doesn’t.
  • We now prevent an edge case scenario that triggered multiple syncs of your Direct Import connections concurrently, when (in a movie voice) there should be only one.
  • We also now prevent autofocusing on the account type when adding an unlinked account on mobile, which is a bit forced behavior on mobile since it triggers the dropdown for selection right away.

Web Release Notes: September 13, 2018

Improvements & Bug Fixes

  • If we can’t determine the date format of your file-based import file, we ask you. But we weren’t remembering your answer so you had to remind us every time you (file-based) imported. That’s fixed now.
  • We show your authorized OAuth applications on your “My Account” page. In some cases we were showing duplicates. They’ve now been removed.
  • Previously, if you typed 1*1) into the inline calculator, the browser would look incessantly for the non-existent opening parenthesis, eventually crashing from the effort. We now simply ignore the unmatched parenthesis and carry on.
  • When recording a split transaction and clicking the “Add another split” button, we now focus on the newly added split’s payee field.

Web Release Notes: September 11, 2018

Our Attempts to Delight You

  • Some time ago we added steps to help you create a goal to pay off your balance when you add a linked credit card account with a negative balance. If you happened to step backward in that process (say, to fix a typo in the account name) we’d lose the account name and you’d see a blank field instead. That’s fixed now.
  • The confirmation banners we show at the top of the screen (e.g. after confirming your email or resetting your password) now appear in front of the onboarding steps (if they’re visible, of course). They used to appear behind the onboarding steps, which is to say they didn’t appear at all. You just had to intuit the message we were conveying.
  • If you didn’t select a category in the “scheduled transaction” step of onboarding, we’d show a warning asking you to remedy the situation. But after you dutifully selected a category we failed to remove the warning. Fair is fair, and you’ve held up your end of the bargain, so we now happily remove the warning.

API News

  • Previously, we JSON-encoded validation errors before returning them in a 40X error response to the client. That didn’t work well. We now return a comma-delimited list of errors as a simple string.
  • We’ve updated our API spec to remove the “nullable” types (was: "type": ["string", "null”] ; now: "type": "string"), which are not officially supported in the Swagger 2.0 specification. We were using these mainly for some develop-time tooling support, but it caused trouble for folks using our spec in their own tooling. The API still returns null values where applicable; this just changes our spec.

Web Release Notes: September 5, 2018

This release is solely focused on sprucing up the architecture underlying trials and subscriptions. It’s been a year in the making. We’re excited, to say the least. These changes will improve performance, in general, and position us well to build out functionality in the future.

Web Release Notes: September 4, 2018

Improvements & Bug Fixes

  • Some OFX files contain odd line breaks and other unexpected formatting in the memo field. We now parse those better so File-based Importing can read those files.
  • Fixed the warning displayed when creating an account with a negative balance for an account type that normally has a positive balance.
  • The “Add another split” button was really a common web link LARPing as a button. You still had to click on the text itself to add the next split line item. Fixed now.

Web Release Notes: August 30, 2018

Improvements & Bug Fixes

  • We now display a proper minus sign (Unicode U+02212 for the pedants among us) for negative amounts. It’s longer than a hyphen, easier to see, and technically correct (again, for the pedants among us).
  • Moving a reconciled transaction to a different account can bring the reconciliation out of balance. We now show a warning before saving such changes.

API News

(Learn more about our API.)

  • Previously we re-issued existing access tokens for subsequent application/user requests. This was problematic for apps with multiple clients because once a refresh token was used by one client, all the others would no longer be able to get a new access token from the refresh token because it was now expired. This issue is fixed now, as we issue a new access token for each request.
  • If any of the current month values for a category (budgeted, activity, balance, etc.) have changed, a delta request will now include that category in the top-level categories array, provided the last_knowledge_of_server dictates the client should know of the change. Previously, only changes to the category itself would trigger its inclusion.

Web Release Notes: August 23, 2018

Improvements & Bug Fixes

  • The available balance shown in the inspector for an underfunded goal had a yellow pill with a green pill inside of it! No more!
  • In other inspector news: upcoming scheduled transactions from closed or deleted accounts are not going to show up there anymore.
  • With our continued quest to improve the register performance, we made it faster to scroll through transactions using the browser scrollbar.
  • Deleting a category just got a little bit easier: now you don’t have to click an extra confirmation modal. Not that we want you to delete all your budget categories, but simplifying things a bit always feels good.
  • Fixed a bug where clicking a credit card payment category could cause a crash if your last payment was part of a split transaction.
  • When filtering out some categories in the Spending reports, the breadcrumbs weren’t updating correctly and kept showing “All Categories”. Fixed!

API News

  • When creating or updating a transaction, we used to allow dates to be date-“ish” and attempted to parse them. However, some formats were passing this validation but resulted in a 500 server error when saving the transaction. Now, we’ll require transaction dates to be ISO formatted (2018-08-23) to keep things simple and consistent.

Web Release Notes: August 21, 2018

What’s New

If you use File-based import, your bank might be sending transactions with dates formatted in such a way that causes them to appear off by one day when imported into YNAB. We’ve added a new option called “Adjust to local time” to address this when importing a file, which converts the transaction dates to your local timezone. You’ll be able to see a preview of the effect on the transactions prior to importing when selecting this option, so you can see if it will help fix this “off-by-a-day” annoyance.

Improvements & Bug Fixes

  • When making a split transaction recurring, we weren’t honoring the order of the sub transactions. It turns out, sub transactions in random order don’t look so nice in the register, so we now preserve the original order.
  • We fixed the little dot indicator for the currently selected month on the Budget screen, it was floating around but is now back to doing the work it’s meant to.
  • Fixed some styling for the Activity and Available amounts of the Hidden Categories. Now they look like all the other categories.
  • Another small tweak to our login page that should help password managers fill & submit the form.

Web Release Notes: August 16, 2018

Improvements & Bug Fixes

  • Keyboard shortcuts FTW. You can now navigate the “move money” and “cover overspending” popovers using the <enter> key. Pressing <enter> will move to the next field, or save when all fields are valid.
  • We now show pretty institution logos on the list of popular institutions when adding a linked account.
  • Marginally improved category deletion performance and made it easier to select a category you want to re-categorize.
  • When deleting a payee and choosing a new payee to change the old transactions, you now have the joy of a plain old select dropdown, rather than the functionally decayed dropdown we had before. Same for choosing an account and date format during file based imports. (I wish I could take credit for the deliciously evocative “functionally decayed” phrasing, but that’s all Chris. Ed.)
  • We fixed an issue with the date filters in the register where switching between a custom date range and a suggested one was not working correctly.

Web Release Notes: August 14, 2018


You can now use your Google account to sign up and log in to YNAB. This can be in addition to or instead of your email/password combo; both login methods will continue to work. Impress your friends by switching between the two with an air of nonchalance.

Improvements & Bug Fixes

  • Register scrolling performance got a huge boost. And that’s an understatement.
  • General performance improvement across the app (thanks to an upgrade to Ember v2.9).
  • We tweaked the login and signup forms to play nicer with password managers.
  • Imagine you’ve activated a filter on the accounts page (e.g. to show only transactions from “This Year”). If you then searched your transactions, we’d actually clear the filter so it wouldn’t interfere with the search results. Then if you cleared the search, we’d restore the previously active filter. And we did, for the most part. Except if you cleared the search term using the <delete> key we wouldn’t restore your filter. Or if you used multiple search terms and tried to clear the search by clicking on the little X icon. So when I wrote “we’d restore the previously active filter,” maybe I was speaking more aspirationally. Regardless, however you choose to clear the search, we’ll restore any previously active filters.
  • On some budgets, filtering by a date range other than “All Dates” wasn’t returning the proper results. Fixed.
  • Closed tracking accounts will no longer appear in the spending report.
  • Clicking on different Credit Card Payments categories was not updating the “last payment” section in the inspector. That’s fixed.
  • We recently made a change to focus on the outflow field when pressing <enter> on the memo field instead of saving the transaction. We’ve now reverted that change so pressing <enter> saves the transaction. Also, pressing <enter> on a selected transaction will activate edit mode, which sounds cooler than it probably is.
  • Our messaging was slightly off after you confirmed an email address change. The change went through OK, but the copy we displayed didn’t exactly jibe. That’s fixed now.

API Goodness

  • You can now pass in the pseudo-budget-id 'last-used' instead of an actual budget id, to specify the last-used budget. So instead of using something like, you could simply use It’s especially convenient if you only ever work with one budget.
  • If you specified a payee_id or category_id as an empty string (i.e. ""), we would return a 500 error. Not particularly helpful. Now, we’ll return a 400 error with a message indicating that “a valid UUID must be specified”. Use null if you don’t want to stipulate a payee_id or category_id. For example, for an uncategorized transaction you should specify "category_id": null.
  • OAuth refresh tokens can only be used once. If you obtain a new access token using a refresh token, you will be given a new refresh token that should then be used for the next refresh. We’ve clarified this in the docs.

Web Release Notes: August 9, 2018

A few release note poems for your enjoyment,
to go along with today’s deployment:

Improvements & Bug Fixes

  • When reordering your budget categories in Safari,
    dragging it out of view didn’t scroll, sorry.
    Now as you drag your category to the bottom or top,
    your categories will scroll so you can choose where to drop.
  • In Safari the keyboard shortcut Cmd + Shift + N,
    opens a new private window so your internet adventure can begin.
    We used to take over that shortcut to add a new transaction,
    now instead Ctrl + Shift + N or more simply Ctrl + N will handle that action.
  • Clicking the status icon of a linked account,
    no longer causes the information popover to dismount.
    Also while that popover is shown,
    pressing escape will make it leave you alone.

Web Release Notes: August 7, 2018

Improvements & Bug Fixes

  • If viewing a category in a month before a goal was created, we used to show a goal progress indicator that was blank. And no progress could be made because you were in a month before the goal was created. Now, we’ll display the category as if a goal hadn’t been created (because it hasn’t, at least not in the prior month).
  • Also, our new shiny available amount goal progress indicators were incorrectly showing on categories in months before any goal was created. Now they will not show in previous months. Kind of like finally fixing that mystery light in your car’s dashboard.
  • Fixed an issue where the categories dropdown would highlight multiple categories, no big deal.
  • If you imported a transaction, split it and then later matched it to a manually entered transaction (phew!), the splits from that imported transaction would forget to take that left turn at Albuquerque and show up in the activity for a category. We gave it better directions and a few carrots for the road.
  • Shifting gears to the register, holding down shift and pressing up/down let’s you select mutliple transactions. This used to work but we broke it but now it’s back. By the way, how do you say “mea culpa” if it’s more than one person’s fault? Wea culpa?
  • While the register hood was open, when selecting a transaction other than the first transaction, then holding down shift and selecting a transaction further down on the list to accomplish multi-select, all transactions from the first row would be selected rather than only those starting from the row you initially clicked. Fixed.
  • shift+click for transaction multi-select would not work if you held down shift and clicked another transaction checkbox. It would work if you clicked on another transaction row but if you clicked on the checkbox of a transaction, it would not multi-select. Fixed. Try not to wear out your shift key trying out all these shift key fixes.
  • Fixed an incorrect back navigation that was available when linking an account or managing connections, and no connections were available yet because nobody wants to back into that.
  • If you updated a budgeted amount and then pressed up, down or tab we would move the focus to an adjacent category but not update the budgeted amount. The available amount would update and navigating back would show the update so it was being saved but it was a display glitch.

API News

  • If using PUT or POST on /budgets/{id}/transactions to create or update a transaction and you specified an import_id (to mark it as imported), we will now return a 409 status code if another transaction with the same import_id already exists on the target account. Previously we would return a 400 error but hey, at least it wasn’t a 418 error because seriously, have you ever tried brewing coffee in a teapot?

Web Release Notes: August 2, 2018


  • When adding or editing a transaction, if you opened the Manage Payees window and changed the “Automatically categorize payee” option, we’ll go ahead and update the transaction you are working with because that’s probably why you updated the setting in the first place.
  • Credit Card Payment categories can now show underfunded warnings for scheduled credit card payments. That means if you have a credit card payment scheduled in your credit card account, you’ll see a warning on the budget screen if your payment category doesn’t have enough money! (This will only apply for new or newly updated scheduled payments so if you want these warnings to start showing up on your budget, deleting and recreating the scheduled payment is your ticket.)
  • More hotness for Credit Card Payment Categories: We’ve significantly improved the performance when clicking on a Credit Card Payment Category where the corresponding account has many transactions.
  • When hovering over the Available amount of a category with a “Target Balance by Date” goal, we would show a helpful tooltip explaining the progress of your goal but we were showing some <notsohelpful/> characters too. No more!
  • We fixed a minor alignment issue on the inflow/outflow inputs when editing a transaction. It was only happening on Internet Explorer 11 and Safari and fairly difficult to notice, but our keenly observant users are the best. We’re going for pixel perfection here folks.
  • We have added reCAPTCHA when connecting to an institution as an added layer of security and to make sure you are a real, living, breathing, human being.


The “Internal Master Category” category group contains categories that are not displayed on the budget directly. Two of these have been renamed for clarity:

  • Immediate Income -> “To be Budgeted”
  • “None” -> “Uncategorized”

Web Release Notes: July 31, 2018


  • Let’s say that this morning your Linked Account was having a temporary issue contacting your bank, so you dutifully used File-based importing to bring in your latest transactions. But, you changed your mind and clicked ‘Undo’. At this point, you would rightfully expect things to be just the way they were before you imported, but instead you see 3 transactions pending import on the account. Now, Undo will really undo that File-based import on a Linked Account.
  • Tabbing to the inflow and outflow fields on Internet Explorer 11 was incorrectly landing on the calculator icon, rather than the input box. Oh, IE, how we love you.
  • Navigating in the date picker with arrow keys was just not working on Internet Explorer 11. Oh, IE, didn’t we say we loved you?
  • When editing a transaction, clicking on a date (that was not a future date) was not advancing the focus to the next field. Now it will take you to the Payee field and you’ll be on your way.
  • For categories with a Target Balance or Target Balance by Date goal, we used to show the total amount that had been budgeted towards the goal (since it was created) in the inspector. This was meant to explain the goal progress but since these goal types are based on the current Available amount for a category, this was confusing. Now, we’ll show the current Available amount right next to the goal Target amount, so you can see where you stand. Unfortunately this change will not effect your actual goal progress.
  • When trying to sign up with an already registered email (you know who you are) we’ll show a friendlier message and give you a link (nudge) to the forgot password screen.


Have you heard about our new Public API? We’ve made a few improvements to it in this release:

  • We’ve added income, budgeted, and activity aggregate values to endpoints that return budget month data (like /budgets/:id/months).
  • If flag_name or cleared fields were specified as numeric values when saving a transaction, a 500 server error would be returned rather than a 400 error. Fixed!

Web Release Notes: July 26, 2018

Improvements & Bug Fixes

  • On the log in, sign up, and forgot password forms, we turned off spellchecker for the email field. We probably should have done that from the get-go. Actually, we did, but we got the syntax wrong (spellcheck="false" vs. spellcheck=false), so it doesn’t really count.
  • We fixed a number-formatting bug for budgets with number formats that use apostrophes. We were displaying the character code (&#x27;) instead of the apostrophe character itself. LOL
  • For Safari we fixed an issue where pressing the <enter> key on a budget field would correctly exit the field but not remove its calculator icon. Now we exit the field and remove the icon. Well, it’s not really removed so much as returned to the pile of unused calculator icons we keep off to the side, just out of view of your browser. It would be wasteful to throw them away. Calculator icons don&#x27;t just grow on trees.

Web Release Notes: July 24, 2018


  • If you want to budget in Tanzanian Shillings, Barbadian Dollars, Cayman Islands Dollars, West African CFA franc, or Central African CFA franc then this is your lucky day since we now support those currencies.
  • Have you ever wondered “why is this Available amount all orange?” We’re adding some cool icons that will explain it!
  • We also added an icon that shows your goal progress at a glance. More clarity, less clicking!
  • We fixed a problem that caused us not to be able to show the emergency maintenance page if we needed to take our servers offline unexpectedly. (Instead it would show you an error, which is exactly what we were trying to avoid by showing you a beautiful maintenance page).
  • When editing or adding a transaction, pressing the Enter key on the memo field used to save the transaction. Not anymore, since now it will take you to the next field which we think makes more sense.
  • We’ll now hide the “Budget for Upcoming” button in the Quick Budget section if your scheduled transactions add up to a positive amount (or an inflow, if you will). Previously in those circumstances, that button would cause it to budget a negative value, which was weird.
  • When direct importing transactions, we used to only allow transactions starting from the last transaction reconciled date. That caused some issues with possible transactions posting with a date a few days prior to the reconciliation date, which can be common with some credit cards, so now we’ll allow a few extra days past the last transaction reconciled date to account for that.

Bug Fixes

  • Are you a Safari Full Screen mode user on macOS? Then pressing the Escape key while budgeting or entering transactions will no longer take you out of Full Screen mode.
  • We fixed a small misalignment in the inflow and outflow fields that was only visible in Firefox.
  • If you clicked the “You can fix this in your budget!” button on an overspent credit card then the app was throwing an error, this wasn’t nice so we fixed it.

Web Release Notes: July 20, 2018


  • We fixed a crash in Internet Explorer 11 in when viewing the Net Worth Report.

Web Release Notes: July 19, 2018

API News

  • For those of you developers using our API, we now return a friendlier error message if you submit a transaction entity with its account_id, payee_id, or category_id properties set to anything other than null or a valid UUID.

Web Release Notes: July 18, 2018


  • We improved scrolling performance of the Income vs Expense report for newer browsers.
  • When a category has net positive spending, meaning the total amount of spending in the category is actually a positive amount (e.g. spent $100, got $150 in refunds), we now ignore it on the Spending Reports and don’t include it in the totals/averages in the inspector. We still show it in the list of category totals in the inspector, though.
  • In the spending totals/trends transaction list, if a sub-transaction doesn’t have a payee, we default it to the parent transaction’s payee.

Bug Fix

  • We fixed a rare issue when troubleshooting Direct Import connections where we would incorrectly display a “missing translation” message at the top of the the credentials or challenges screen.

API News

  • Goal data is now returned from endpoints that include categories. Fields include: goal_type, goal_creation_month, goal_target, goal_target_month, and goal_percentage_complete.

Web Release Notes: July 12, 2018

API News

  • If you don’t include a Content-Type: application/json header when you POST or PUT, we’ll respond with a helpful error message. Previously the error message was a bit cryptic.
  • If you received an access token via the OAuth flow then subsequently visited the OAuth Authorized page and did not click ‘Authorize’ (just visited), we would revoke all existing tokens. Now, we’ll only do this when authorizing the Alexa Skill.
  • Restricted Mode will not be enforced when authorizing an OAuth application you own.
  • The docs now correctly indicate that access tokens created using the Implicit Grant Flow in OAuth will expire 2 hours after creation.

Bug Fixes

  • If you deleted a payee with a renaming rule, then created a new payee and assigned it an identical renaming rule, the rule wouldn’t work for the new payee. Fixed now.
  • When creating a new payee on a different client (i.e. mobile) we weren’t adding it to the Manage Payees payee list on web. You had to refresh the page in your browser to see it. That’s suboptimal, so we fixed it.

Web Release Notes: July 10, 2018

Bug Fixes

  • When deleting an account while looking at “All Accounts”, we weren’t automatically closing the popover. That’s fixed now.
  • On very small screens, the register dropdown options could sometimes block the input. Fixed.
  • Ignoring the obvious question of why? for the time being, if you create a $0 goal target, we’ll now display the goal as 100% complete. This also fixes a edge-case issue with “Payoff balance by date” goals on credit card payment categories where they were showing 0% after you made a payment on the card.
  • If you imported a transaction, reconciled it, then manually matched it to a manually-entered transaction that was not reconciled [you still with me? – ed.], the resulting matching transaction would not be reconciled. Now, if either the manually-entered or imported transaction is reconciled, the matched transaction will also be reconciled.

Web Release Notes: July 5, 2018


  • Previously when jumping to a transaction in the register, if your filters hid that transaction we would display a message with the option to turn off the filters. Nine times out of 10 if you’re jumping to a transaction in the register, you want to see that transaction. Now we automatically turn off the filters and display a message letting you know we’ve done so.

Bug Fix

  • Fixed an issue displaying image challenges for a couple of institutions when connecting accounts for direct import.

API News

  • All API endpoints that return categories now include an original_category_group_id field. That field will be populated for hidden categories and will contain the id of the original category group, before it was hidden.
  • We now support urn:ietf:wg:oauth:2.0:oob as the redirect URI for the Authorization Code Grant flow in OAuth. We used to return HTTP 401. Sorry about that.

Web Release Notes: July 3, 2018

What’s New

  • You can now manage renaming rules for transfer payees in Manage Payees. (That’s actually a lot cooler than it sounds.)


  • The Direct Import add-account flow got assorted fixes/tweaks/improvements to its layout and navigation.
  • And the alert we show during that flow when there’s an active incident with your institution got some big design love. I hope you never see it.

Bug Fixes

  • Sometimes clicking a register checkbox in just the wrong (right) spot would deselect all previously selected transactions. Now those previous selections persist.
  • With the “Show Scheduled Transactions” filter turned on, if you clicked on the “1 transaction needs to be approved or categorized” notification (which kicks off an “Is: Unapproved or Needs Category” search) then cleared that search, all your scheduled transactions disappeared (from sight, not existence). That no longer happens.

API News

  • The new /budgets/:id/settings endpoint allows you to get budget settings for a single budget. If you’re just looking for the date and/or currency settings for a single budget, this is your endpoint. Hitting /budgets/:id would be overkill in this case since it pulls down the entire budget.

Web Release Notes: June 28, 2018


  • When adding or troubleshooting a Direct Import connection and the connection is blocked, we often need to ask you to re-enter your  credentials in order to resume the process. Now, in a few of these scenarios, we will be able to restart the process by just asking you to retry, so you don’t need to re-type that random 30-characters password so often.
  • The Direct Import connection tips we released last week got some design love. Same information, just easier on the eyes.
  • We used to ignore payee rename rules for those payees you didn’t “Include on Payee List” (on the Manage Payees popover) for reasons. Now that you can manage these hidden payees from the Manage Payees popover, it’s reasonable to expect the rename rules are always enforced, so now we always enforce them.

Bug Fixes

  • Fixed a rare Direct Import scenario where responding to a real-time code challenge while adding a bank connection could result in an error, even though the connection continued to process in the background.

API News

Web Release Notes: June 26, 2018

The API, nascent as it is, needs a little polishing. Sorry if you’re not that interested in API news. You can feel good for the people who are though. They’re having a good day.

API Improvements

  • For the /budgets/:id endpoint, the API now sorts categories and category_groups the same as on web and mobile.
  • We improved the styling of the API documentation when being viewed on smaller devices.

Web Release Notes: June 22, 2018

What’s New

Thanks to many of you, the YNAB support team has collected “connection tips” for lots of different financial institutions. Now we display those tips right on the account credentials screen. So, if you’re about to connect to Capital One 360, we’ll tell you where to get that 12-digit access code* you’ll need. We’ll also give you a heads up if your financial institution will frequently prompt you to re-authenticate the connection (confirm you’re you) before importing transactions.

*In your Capital One 360 account, go to Settings > Privacy.

Web Release Notes: June 19, 2018

What’s New

The big news for this release is PAPI going live! What’s PAPI, you say? It’s our public API, so named because we were already in the habit of refering to our internal API as “API” and we needed to distinguish the public bits from the not public bits. If it helps, you can consider PAPI to be the beloved grandfather of public-budgeting-API world: always there to help, not the least bit judgmental, and thinks the world of you. Read more about it in the blog post.

Bug Fix

  • Checkboxes for empty category groups on the budget now behave as expected.

Web Release Notes: June 14, 2018

All internal stuff going out today, and rather pedestrian at that: a job to migrate deprecated account types and some PAPI detail work. Underwhelming, I know. Maybe the next release will bring more exciting news. Fingers crossed.

Web Release Notes: June 12, 2018


  • In the Manage Payees popover, we fixed an issue so now clicking a given payee’s name displays its details on the right.

Bug Fix

  • Direct Import: Fixed an issue where we displayed escaped characters in some institution credential labels.

Web Release Notes: June 7, 2018


  • Last week we had an issue with one of our Direct Import providers that caused them (and subsequently us) to import batches of older transactions to some customers’ accounts. We’ve now added some extra checks to prevent this from happening in the future.
  • We’ve simplified the Account Types list on the Add Account popover. Less noise.
  • We sort transactions by date, most recent first. If two are on the same date, we sort by amount, largest to smallest. Now if you click the Date header cell to reverse the sort order, so you see oldest transactions first, we also invert the secondary sort to show smallest amounts first. Simple, right?

Web Release Notes: June 5, 2018

Today’s release notes are narrated by Owen Meany. Use the voice you heard in your head when you read the book, as opposed to Simon Birch’s. And the hard-core among you will wish these notes were written in Owen’s shrill, ALL-CAP STYLE, but I just couldn’t bring myself to do it. I mean we have standards. We can only take things so far in the name of fading literary references.

What’s New

  • We’ve added an indicator to the status bar for Direct-Import-connected accounts, showing the current state of the connection: good, error, delayed, or maintenance. Hovering over the icon will display a popover with more detailed information about the status, such as the time of the last successful aggregation or details of any errors. This feature is presently being rolled out and we plan to make it available to everyone by week’s end.


  • Displaying the list of connections when adding or connecting an account, or managing your connections just got a little bit faster.

Bug Fixes

  • We no longer show weird characters in the spending and net worth reports when using a currency with apostrophes in it.
  • The deselection of “Automatically categorize payee” in the Manage Payees popover wasn’t being persisted. Now that change persists.

Web Release Notes: May 31, 2018

Today’s release notes are narrated by the inimitable Armstrong Wedgewood.


  • We moved the position of the “Record Payment” button so it’s more difficult to click it when you meant to click the “Edit” or “Import” buttons instead.
  • We added some more generic payee names to the list of those we ignore when automatically renaming payees after direct-importing transactions or importing from a file.

Bug Fix

  • If you clicked outside of the “New Category Group” popup after typing a name we’d create the category instead of canceling the popup. It’s fixed now so we just cancel the popup without creating the new category.

Web Release Notes: May 30, 2018


  • From the Chicken Little Department: When editing a transfer with the other side reconciled, we show a message warning about the possibility this edit could bring your reconciliation out of balance. We were showing this message even if you innocuously changed the memo. We now only show the warning if you change the amount.
  • Date fields in the register were reportedly feeling claustrophobic so we added more space to let them breathe a little.
  • If a cash account was inadvertently linked to a bank, you can now disconnect it from the bank.

Bug Fixes

  • We fixed a currency-setting issue when adding a manual account or creating a credit-card goal in mobile.
  • Fixed a regression with adding/subtracting decimals that don’t start with a “0.”.

UPDATE: The inflow and outflow fields in IE were unresponsive after this morning’s release. Fixed.

Web Release Notes: May 24, 2018

What’s New

  • As part of our ongoing EU General Data Protection Regulation (GDPR) compliance efforts, we now require users to explicitly agree to our Terms of Service and Privacy Policy before creating an account.


  • If you’re adding transactions with your window sized very small, the transaction dropdowns do their best to stay within the window. But sometimes they can cover up the very inputs they’re supposed to be assisting. Now if there isn’t enough room, they’ll go outside the window.

Bug Fixes

  • Fixed an issue where visible scrollbars would knock some UI elements out of alignment.
  • Searching your account register for the word “payment” failed to return any credit card payment transactions. Fixed.
  • Onboarding fixes:
    • The “set a goal” step automatically scrolls the budget on small screens so the category appears in the middle.
    • On the “schedule transaction” step the register fields stopped working if a category was left empty. Silly mistake.
    • Also on the “schedule transaction” step, we now mark the step as complete as you create a transfer transaction. Gotta give credit where credit is due.
    • On the “budget” and “schedule transaction” steps the calculator popover was hiding behind the overlay. No need to be shy, little fella’, you’re among friends here.
  • When creating a new category from the register, the Cancel and Create buttons could break alignment. Quoth the Raven “Nevermore.”

Web Release Notes: May 22, 2018

What’s New

  • File-based Import (affectionately known as FBI to YNABers the world over) is a decent alternative to Direct Import. Sure, it requires a little more hand-holding, but it gets the job done. Unfortunately, some banks play fast and loose with the OFX spec, which means your debits could come across as credits during the import. We’ve added a “Swap Inflow and Outflow” option to the FBI flow for such situations. You can toggle it on and off to preview the effect. Not a bad way to start a random Tuesday in late May.


  • When editing the other, non-reconciled side of a reconciled transfer transaction, we now show a warning pop-over, explaining that editing the amount will render out-of-balance the reconciliation of your other account. Tread lightly.
  • Inline calculators now respect parenthesis. 1.20 * ($10 + $20) now equals 36 instead of 32. All is right with the world.

Bug Fix

  • In other OFX-related news, we now handle multiple credit card accounts properly during the import. Prior to this fix we’d attribute all transactions to a single card. Now we spread the love appropriately.

Web Release Notes: May 10, 2018


  • When viewing transactions on the Spending Totals/Trends reports, we now sort first by descending date, then payee name.

Bug Fixes

  • In some cases, the sidebar UI truncated account balances erratically. Fixed.
  • A few months back we stopped allowing the creation differently-cased-but-otherwise-identically-named payees. That was an unintended consequence of other decisions we’ve made, and after careful reconsideration we’ve decided to allow it again. So if you have a BOOKSTORE payee, you can create a separate Bookstore one. Advanced budgeters may even want to experiment with a new bOOkstOre payee, but caution is advised.
  • The Spending Totals/Trends reports’ tooltips were cutting off letter descenders (e.g. y, p, g, etc.). Fixed.

Web Release Notes: May 8, 2018

Bug Fixes

  • In Firefox the inflow and outflow input boxes were out of alignment with their siblings, as if on tippy-toe. They are now back in proper rank.
  • In IE 11, payees were right aligned when they should be left aligned. Fixed.
  • If you select a future date when adding a transaction, the date picker (calendar) should stay open to give you the opportunity to select a frequency for the scheduled transaction you’re likely setting up. It wasn’t staying open. It is now.

Web Release Notes: May 3, 2018


  • When exporting a Spending Totals report, we now order your categories the same as they appear in your budget.

Bug Fixes

  • We’re supposed to show a warning when you delete a transfer with only the other side reconciled. You would see the warning if you were deleting via the “Edit” menu, but not if you used the delete key. Now you’ll see the warning regardless of how you initiate the deletion.
  • When moving money or editing a budgeted amount, the totals on the move money dropdowns didn’t update accordingly. They do now.
  • If you used quick budget with a given category, clicked on a different category then back to the original, the value would revert to the old budgeted amount. Similarly, if you added or edited a budgeted column, then used undo and clicked on the same budgeted column, the value would revert to it pre-undo value. Both are fixed now, so they retain the proper value.

Web Release Notes: May 1, 2018


  • Budget and category editing got a nice performance boost.
  • We now show the calculator icon on hover.
  • We upgraded our database (to PostgreSQL v10.3) and updated some of our database procedures to take advantage of some improvements in the new version. In a nutshell: our pretty fast database got pretty faster(er).

Bug Fixes

  • If you moved a categorized transaction to an off-budget account then tried to delete one of the related categories, it didn’t work. Now it does.
  • We fixed an issue where some hidden categories were terminally hidden, never to be seen on the “click to unhide a category” list. Now that list shows all hidden categories.
  • If you were looking at a split transaction and clicked “Make Recurring”, we’d create the scheduled split, but we’d also include any previously deleted sub-transactions. Not good, so we fixed it.
  • In the last step of adding a Credit Card account with a goal to pay it off over time, mobile apps were displaying a blank screen. Fixed!

Web Release Notes: April 26, 2018

Bug Fixes

  • The register numbers (i.e. “Working Balance” and friends) were not being updated properly when adding a new account, nor would they be updated for any change on the new account. A simple browser refresh fixed the issue, but we’ve now fixed it for good.
  • Fixed a bunch of small, edge-casey errors from the move to Ember v2.4.

Web Release Notes: April 24, 2018

What’s New

  • You can now type to search categories when auto-assigning a category in manage payees.

Bug Fix

  • Fixed a timing issue for rendering and resizing elements, which will fix some rare issues with modals not displaying correctly.

Web Release Notes: April 19, 2018


  • We upgraded our web framework, Ember, to v2.4. This speeds up the budget screen by about 10% and the register by some 33%. Not too shabby.

UPDATE: Part of today’s release broke some things. They’re fixed now:

  • We fixed an issue deleting account.
  • We fixed an issue resetting passwords.

Web Release Notes: April 17, 2018

Bug Fixes

  • When manually matching two categorized split transactions, we weren’t updating category activity and balance immediately. They would eventually get updated, just belatedly. Fixed now.
  • Register payee search for single-character payees was wonky. It’s no longer wonky.
  • If you manually entered a transfer, then manually matched an imported transaction with one side of that transfer, we weren’t properly updating the other side of the original user-entered transaction. This would result in mismatched amounts on either side of the transfer. Fixed now.

Web Release Notes: April 12, 2018

Bug Fix

  • For a vanishingly small number of budgets, unhiding categories would throw an error. Now it just unhides the categories.

Web Release Notes: April 10, 2018

Bug Fix

  • Refactor some internal navigation logic to fix an “uh oh” error commonly encountered when using the unofficial toolkit extension and possible edge-case routing scenarios.

UPDATE: Part of our release today completely borked the links to switch between the spending totals and trends reports. We’ve now pushed out a fix for those links. We sincerely hope this doesn’t become a trend.

Web Release Notes: April 5, 2018

Bug Fixes

  • Some browsers were retaining the sign in screen background color so when the register loaded, its background appeared blue. Buck up, little register screen, we’ve chased those blues away.
  • Fixed a rare bug where a fresh-started budget would get wonky when adding transactions on a credit account, but only if the new transaction caused the account balance from negative to positive. Fixed now.

Web Release Notes: April 3, 2018

Another release with nothing much to report. Just some security-related updates, but nothing we tend to talk about in detail.

Web Release Notes: March 29, 2018

We’ve got nothing to report for this release. It’s all internal stuff. And mostly boring (e.g. “Install Postgres 10.3 as part of provisioning” and “Improvements to test account creation”). I suppose we could just trot out the old and well-worn “bug fixes and performance improvements” trope, but that would be lazy and shameful. And I feel we owe you more than that since we likely just interrupted your flow with our bittersweet “refresh to get the new hotness” message and you were kind enough to click through to read these very release notes. How could we let you down after all that? We couldn’t, of course. So go forth and budget, bolstered by the knowledge that test account creation is less hateful than it used to be.

Web Release Notes: March 27, 2018

What’s New

  • We now include hidden categories when exporting a budget to CSV.


  • We now prevent the Manage Payees sidebar from scrolling when toggling multiple payees.

Bug Fixes

    • After using a math operator in the budget and navigating away from the field using an arrow key, the input was being left in an active state. Fixed now.
    • We fixed a layout issue when displaying Direct Import challenge options with longer labels.
  • When changing an account name while on the Reports page, the accounts filter was not updated with the new name. Fixed.

Web Release Notes: March 22, 2018

What’s New

  • We updated the icons in the sidebar navigation to match mobile and further reduce visual complexity.


  • Connecting to a financial institution for Direct Import can take some time. To help in those cases, we’ve increased the timeout before aborting the connection attempt.
  • We tweaked the Direct Import messaging when our provider goes into scheduled maintenance or their service becomes temporarily unavailable.

Bug Fix

  • When editing a transaction and clicking ‘Manage Payees’, the given payee should be automatically selected. Sometimes that wasn’t the case. Now we select the correct payee every time.

Web Release Notes: March 20, 2018

What’s New

  • We added renaming rules to ‘manage payees’ so you can now automate how your payees are renamed as they are imported.


Bug Fixes

  • Credit Card Payment categories in the ‘move money’ popover were always listed at the top instead of being in the same position as in your budget. Fixed now.
  • In the register:
    • Clicking the checkbox when editing a transaction no longer causes the edit button to enable/disable.
    • Overflow text no longer gets unceremoniously cut off. We add an ellipsis to soften the blow.
    • The placeholder on the memo input in splits has returned. We didn’t ask where it was, and it didn’t offer any explanation. We’re just going to leave it at that. No matter, we’re just happy it’s home.
    • When split amounts were mismatched, hitting escape would erase your work on the transaction. Now it just closes the warning, a slightly less obtrusive response.

Web Release Notes: March 16, 2018

Bug Fixes

  • Removing all data from the first month in the budget caused ‘To be Budgeted’ to be off for that month.
  • Yesterday’s release quietly introduced a bug with Direct Import failing to display the proper message when adding or troubleshooting a connection. Fixed!

Web Release Notes: March 15, 2018

Bug Fixes

  • Bipartisan mobile fix: On both Android and iOS, the ‘Subscribe Now’ button was interminably disabled. It now behaves like the desktop, only disabled when one or more fields is invalid.
  • In the cover overspending popover, you could use the keyboard to select a category group, causing an error. We no longer allow the selection of category groups via keyboard or otherwise. /ht Josh Madewell, toolkit dev, for the the heads-up!

Web Release Notes: March 13, 2018

Bug Fixes

  • In some cases, after fresh starting your budget you might have seen pre-fresh-start data on post-fresh-start reports. We’ve renamed the feature to “Mostly Fresh Start”. Kidding, of course. It’s fixed now.
  • Fixed an IE 11 issue when miss-clicking on the calculator (e.g. clicking between calculator buttons).