Banktivity, or what was known as iBank until recently, has been a personal labor of love of mine for over 13 years. It started as a simple app designed to track basic finances. Slowly over time it gained in popularity and became the core business of IGG Software. (In case you haven’t guessed, IGG are my initials.) The next two blog posts are going to be entirely dedicated to Banktivity, especially Banktivity for Mac. I wanted to write these posts to give a good overview so people can understand how far it has come and where it’s headed. This first post will focus on the history of iBank and Banktivity by going back to the beginning. The next post, to be published at a future date, will focus on where we are now and what lies ahead.
For this post I go behind the scenes and expose some of the internal workings and decisions we made at IGG. In my attempt to “pull the back the curtain” you will see that software development is rarely a linear process as external forces are always at play. We make decisions in lots of different ways and we’re still learning what works best for us and our customers. Sometimes the decision is weighed most by customer feedback and sometimes it is weighed more by where we need to be in the very long term. Either way, looking back is always 20:20. I personally find the journey fascinating, challenging and rewarding. Enjoy this post, as it explores the history of Banktivity from behind the scenes.
A History of Banktivity and iBank
I had no intention of going into software development and running a company. I’m a botanist by training, but have always dabbled in computers, computational modeling and programming. The story of how I started IGG might be a good topic for another post, but for this one, let’s just skip ahead to iBank 1, which was first released in 2003.
I wrote iBank 1 out of a dislike for Quicken and because it sounded like a good challenge. At the time, I didn’t know nearly as much as I do now about software development. I was young, naive, and full of energy. While iBank 1 was good for what it did, I look back now and say, “Wow, I can’t believe I wrote that. If I were to do it over, I would do this and that and….” Two years after iBank 1 was released, iBank 2 came out, which was a complete rewrite.
iBank 3 was released in 2008 and it was at this time in the company’s history, where we were finally making enough money to offer my brother a position as CTO and parter in the business. Up until this time, I was the sole engineer for iBank (and iBiz for that matter, but that app is another story). My brother, James, is an exceptional software engineer and I always wanted him to work with me at IGG. He has a truly uncanny ability to take a real world problem and model and solve it with software. He helped our Dad write software to run and model particle accelerators when he was in college. My Dad’s company, although winding down because he’s retiring, still uses the code foundation James wrote. (James is pretty humble so he’ll probably object to this part of the blog post.) In October 2008, I was finally able to convince James to leave Intuit and come work with me. (While at Intuit, James didn’t work on Quicken, he worked on a precursor to Quicken Loans, TurboTax Online and TurboTax for Mac.)
When James got to IGG, we both knew we had a lot of work to keep our products on a trajectory of incremental improvements. We started to develop a roadmap of where iBank (and iBiz) needed to go, but developing apps isn’t always a simple linear process. New technologies get released, Apple might encourage you to implement certain new features and general disruptions can jump out at anytime.
If you’ll recall, the big disruption in 2008 was Apple’s release of a real SDK for the iPhone. It became clear that the first task for my brother was to develop iBank Mobile. We had to build this app from scratch, as the finance engine in iBank 3 at the time was not compatible with the iPhone (because the iPhone didn’t have Core Data yet!). Less than a year later, we released iBank Mobile and iBank 3.5 with WiFi and .Mac syncing (anyone remember that!?). It was a big undertaking and it was great to have an iPhone app.
After iBank Mobile and iBank 3.5 had been out for a while, we turned our focus on iBank 4 and developing a longer range roadmap for the company. We knew we needed a cross-platform set of code that could carry all of our products into the future. The problem was, the existing iBank finance engine wasn’t the code to do that. It had been built for single-processor computers. Sure, we could have used it as the foundation, but it would have been a move that haunted us for a long, long time. It would have essentially forced us to always feel like we were paddling upstream. We knew we needed a clean set of code that was built to be multi-threaded and cross-platform from the ground up. This new code, which didn’t exist yet, would be called the “Accounting Engine”.
However, it wasn’t time to start on the Accounting Engine just yet. We needed to ship iBank 4 with reports, better transaction editing, envelope budgeting and templates. (iBank 3 had something called “reports”, but it was a simple graphical view and table with numbers.) So we went to work on that, including updating the existing core code from iBank 3 to allow version 4 to handle some multi-threaded tasks and the latest version of Mac OS X, which at the time was OS X 10.5 Leopard.
Once James did most of the backend work for iBank 4 and the “transaction editor”, he finally went to work on the Accounting Engine, while I worked on putting in the other new features. During this development cycle, Apple dropped a small bomb, the iPad. It was at this time we decided that iBank for iPad would be the first app to use the Accounting Engine.
iBank 4 shipped in September of 2010. Fortunately, the company was doing well enough and we were able to hire another talented engineer from Intuit, Aaron. Aaron worked with James on TurboTax and is actually an old friend of his from college. As more resources started to go into iBank for iPad, there was one big feature behind the scenes we had just started to work on – Direct Access. We put Aaron on this full-time so that it could make its debut in iBank for iPad 1.0. To this day, Aaron still “owns” all of the server-side and much of the client-side Direct Access code.
I’ll take a moment here to let you know that Direct Access was a big undertaking. Not only was it our first “service”, but it also required a lot of supporting pieces. For example, we had to create our authentication service, or as our customers know it: Banktivity/iBank ID. Similarly, we needed to write our own system for chaining together account setup screens, we ended up calling this the Assistant State Machine. Last, but certainly not least, we had to contract out third party security audits. And while it made its debut on iPad, from the beginning we knew that Direct Access would end up in iBank for Mac, still our most popular product.
Now some people might be asking, why did you develop Direct Access? iBank already could connect to my bank using Direct Download (OFX). Well, there are two reasons, the biggest being that customers kept wanting to be able to download from more banks than just the ones that supported OFX. We also realized we could offer the Direct Access service for *less* than what most bank’s charge for OFX downloads. So this was clearly a win, win: we implement a highly requested feature and provide a very good value for a great service.
In the summer of 2011 we started to plan what big enhancements would be in iBank 5. So we just randomly thought up some features we thought people would like and started writing code. Just kidding! We looked at our feature request tracking software and there, at the top of the list, by a large margin was…bill pay. Since we already had an OFX implementation and were familiar with the protocol, we knew this feature would make it into version 5. Second on the list was a revamp of budgets, as we felt like we really didn’t get them right with iBank 4. The biggest change to budgeting in iBank 5 was automatically incorporating bills and tracking the historical changes to budgets with the ability to navigate forward and backward in time. We also made it easy for people to see a year overview and other summaries. It was also now time to incorporate Direct Access into iBank 5. So we brought over the Assistant State Machine and implemented not just Direct Access, but redid almost every “assistant” to use the this new backend and offer a more professional and consistent experience in the app. (Can you find the two assistants in iBank 5 that don’t use the new state machine/assistant?) The other big feature we put in was one-button updating. It was getting too kludgy to initiate a sync, update accounts, then download security prices, then tell it to sync again so new changes would get synchronized. This feature sought to make it easier for new customers and provide a better experience for our upgrading customers. Implementing this required a surprising amount of code, because it all runs on background threads and newly imported transactions just get inserted automatically. There were several other big changes in iBank 5 as well: new import rules using regular expressions, automatically matching imported transactions, auto linking of transfers, Resolve View, toolbar status view, completely new loan setup and backend model, transaction filtering, investment transaction categorization and so on.
Then the big question came up, should iBank 5 use the new Accounting Engine? We spent some time thinking about what it would mean to incorporate it and unfortunately it didn’t mean we could just side-load it. Almost every single part of the app would get touched and there were even a few things that the new Accounting Engine didn’t have at the time, like reports (notice how reports, as they are on the Mac, don’t exist in iPad…yet?) After much deliberation, we decided that we should revamp the existing core code in iBank 5 to support the new budgets and other new features, e.g. better bond support and categorizing investment transactions, so that we could ship iBank 5 in a reasonable amount of time. Even without putting in the Accounting Engine it shipped almost three years after iBank 4.
While iBank 5 was under full development, we also had another big piece of work hanging over us – by the time iBank 5 would ship, iBank Mobile would be 5 years old. Now, I don’t have a problem with age per se, but code age and iOS don’t go well together. iBank Mobile was using too much code from the early days that was getting harder and harder to maintain with each new iOS release. So we put a new hire, Dave, to work on iBank for iPhone 2. Not coincidentally, Dave is another very talented engineer and also came over from Intuit where he worked with both James and Aaron. (Please note that there are other employees at IGG Software besides myself and the three relatively new hires from Intuit.)
iBank 5.0 shipped in November 2013. Once it shipped, James and Aaron immediately started working on another big undertaking, Cloud Sync. We actually had decided on implementing cloud sync many months before, but other priorities needed to be taken care of first. We did some initial exploration of how we would implement it, but we didn’t start writing code for it until after iBank 5 was released. Meanwhile Dave worked on iBank for iPhone 2, which shipped in October 2014. We were finally able to retire iBank Mobile, which at that point was almost six years old!
Syncing is really hard. It was no small undertaking to bring cloud sync to iBank for iPad, what would soon be iBank for iPhone 3 and iBank 5.5 for Mac. Not only did we have to write a lot of client side code, but we also had to develop a completely new server structure. Of course our current hosting company couldn’t provide what we needed, so it also meant moving to a new host. So after about a year of development and testing, we finally released our private Cloud Sync in January of 2015 (the beta came out several months before that).
Now we are almost up to the present. Cloud Sync is done and working great. iBank for iPad and iPhone are at version 3 working with our Cloud Sync and iBank 5.5 fits right in. But with software development you rarely have time to rest.
Stay tuned for the next post, which will touch on the name change from iBank to Banktivity and what features we’ve been working on.
- Banktivity 9 Public Beta Now Available - April 5, 2023
- Return of the single-line register - October 25, 2022
- Let’s look at the reports - August 24, 2022
57 comments on “State of Banktivity: Part 1 Origins”
To post a retrospect and prospect as topics for the blog is a welcome idea. This is a good place for me to add my liking for Cloud Sync. Besides keeping the devices in sync (Mac, iPad, iPhone), it’s a fine off-site backup.
Thank you for the backstory of how you have all made it to this point. I’ve been using iBank (and now Banktivity) since version 2 and, although it was basic back then, the regular updates and excellent support instilled confidence in me that this was going to only get better.
Now, at version 5, with Direct Access (something that works Australian banks!) and cloud sync (99.9% perfect) I’m very happy.
The main thing holding back iBank for me personally is the reporting, charting & exporting components but now that you’ve explained *why* this part of Banktivity appears to have been neglected, it all makes sense…. and I’m happy to await what you and your team have in the works.
I regularly recommend iBank to my friends and colleagues (and I encourage them to use DA & Cloud Sync – using 1Password to remember their complicated, rather than easy to guess password) and will continue to do so.
Keep up the great work. I’m looking forward to (presumably) Banktivity 6 later this year! 😉
Oh my god, I’m so glad you posted this. Somehow I missed that you had introduced Cloud Sync. Feel like an idiot right now. Is there a handy page on the site that spells out how to set it up?
We have an article explaining how to get going with Cloud Sync: https://www.iggsoftware.com/support/articles/ibank-5/how-do-i-use-ibank-cloud-sync-to-share-documents-between-my-devices/
That was a very pleasant read from a relatively new ( two years ) user. I am always excited about future updates and look forward to each new iteration of Banktivity.
This Software is working “excellent” for my needs !!!
Fantastic that you posted this! You know, one reason that I abandoned Quicken, aside from its unpredictable levels of Mac support and features, was that Intuit felt very much like a faceless corporate entity, hiring and letting go developer teams, not really looking out for the end users who invested in their software. (Of course I’m an outsider; no idea what their corporate culture was really like.) iBank/Bankivity is the perfect antidote to this. Reading your origin story only reinforces that perception!
Ian, a very interesting post that reinforces the pleasure I had in migrating from Quicken to Banktivity. I’m also pleased that there doesn’t appear to be any intent on your part to divest yourself of Banktivity, unlike Intuit plan to unload Quicken.
Here Here !!! HB Guy…. well said
Thanks Ian! That was interesting…you guys have put in some hard work. Put me down as someone who really appreciates cloud sync. Indispensable for me!
I have been a loyal customer for several year now, and came over to ibank after growing increasingly frustrated with how bad quicken for mac was. But now I am INCREDIBLY disappointed by the way the new version — which I “upgraded” to — handles scheduled transactions. In the prior version of the software, it was easy to set a scheduled transaction so that it would automatically post the relevant account — just set the reminder to “none”. But now, in this “improved” version, if you set the reminder to “none” then the transaction just sits there. It never gets posted and there is no way to “confirm” it to cause it to post. No explanation, by the way. I had to go onto customer service chat and have this explained to me by the support rep. And there is no workaround. So, this morning I am going to go back to check out quicken to see if they have improved, and if not, I’ll be looking around for other options.
We understand people want this behavior back.
“Scheduled Transactions” are 110% the reason I use “Banktivity”…… I would love to have this feature back !!!!
thank you for adding variable month budgeting in Banktivity 5.5. I’ve been testing it out though, and I know I’m not as smart as I used to be, but I can’t figure it out and I can’t find an example in the User Guide. (It makes me feel like this is only a feature for brilliant people.)
I’m trying to record some coaching revenue on the side. I want to budget $60/month except for April will be 0 and February, July, and November will be $360. How can I do this?
Sorry for the confusion — I traded notes with the Support team recently and learned what you’ve called variable budgeting isn’t the same as the variable budgeting that we’ve been asking for and describing. Hopefully that’s coming in version the next version (though that’s what we’ve said since version 3).
Whenever you edit the budget it is done relative to the date period you are viewing. You can move forward/backward in time while viewing the budget. So you will want to move forward to April, then edit the budgeted amount for whatever category you want to change. It will then apply that amount for April and going forward. Please feel free to come to our support for additional help: http://www.iggsoftware.com/support
Like many iBank users, I moved across from MS Money when it was withdrawn, and so my data goes back to 1997. I’ve always been impressed with how efficient the code is when handling 85MB of transactions and how friendly the UI is. However, the way Banktivity handles stocks is still quite primitive by comparison to Money and hasn’t improved much over all the versions outlined above. Improvements would really make it an all-round winner.
Thanks for the feedback on improvement investment tracking.
I agree, stocks handling is not sufficient. MS Money was great at this. Investment transactions still cannot be imported from csv. I had to write a simple converter from csv to qfx. Also, integration with 1Password would be a great addition.
Same here – MS Money and Quicken user since the mid-90s. I was very pleasantly surprised at how the date is managed. I’m still on iBank 4 because I am lazy to learn the changes, but could sync might be just the nudge I need. I would love to access the same data on my iPad.
Thanks for the post. I understand both small company cash flow and growing slowly. Reading this post validates what I’ve sensed: IGG needs 50% more engineer capacity than it has had at most points in its history. There are features that people have been requesting for YEARS that still aren’t implemented (e.g, better reporting, like Quicken 2007). It appears engineering bandwidth is a major reason for lack of features and customer support. Curious if I’m reading into the post incorrectly.
Are you ever going to fix the transaction “types” in the iPhone and iPad apps to match them with the Mac App??? You had them in previous versions “BEFORE”!!! It’s not that hard!!
Why you don’t have them match the Mac app makes ZERO sense.
I would like to see more consistency here.
Meaning, I think it makes sense for these to merge, but I can’t provide a timeframe. It is important to remember too, that the transaction types in many ways are just for show. They don’t affect account balances.
I think we’re missing the point and I understand basic math. The fact is that in previous versions of the iPhone App the files were there. When you went to the stand alone versions you removed it so that is an issue as far as I’m concerned. After 8 years of use and now paying the annual fee to boot I think it is not too much to ask that the features that were “previously in” the mobile apps be returned.
Ian, thanks for the blog post and I look forward to the future ones as your time allows (I’ve still got a short list of small convenience tweaks I’d like to see in Banktivity but I’ll hold off until I see what you’ve already got planned).
I jumped to iBank 4 from Quicken when we converted to an all-Mac household in 2010 and have been quite pleased. We all know the Intuit/Quicken/Mac history most of us have shared and we’ll leave it at that (although TurboTax for Mac has been flawless for me year over year). Keep up the great work.
Just FYI I just started using your Cloud Sync simply as an off-site back up in addition to my other backup practices and to gain familiarity with it. It seems to be working well. My wife has her own Mac in our home office and we now plan to get a copy of Banktivity for her Mac as well so she can start doing some of our financial record keeping with the program. Sync appears as though it will be perfect for us to share the data file. Maybe we’ll get one for our Mac laptop as well for when we are traveling! Good luck!
Thanks for this blog Ian – I found it most interesting to help understand the personal side of a software application. Like many I’m an ex-Quicken Windows user. I ran out of patience for both the OS and the finance application, and am now a very happy Mac and iOS user. I have Banktivity on my desktop, my iPhone and iPad, and happy with all of them. However there are/were two features of Quicken which I liked very much. The first was a calendar view within which – based on scheduled transactions and current account status – I could project the state of finances into the future; and the second was a forecasting view. Not the same as the first, but one in which I could model ‘what-ifs’ to see the results of financial decisions. Neither of these were implemented perfectly in Quicken, but nonetheless they were excellent features (and the calendar one was actually critical to me during some financial crisis management a few years back). Do you have any plans to introduce such tools in the future? Cheers.
I really, really, really would like this also……. This feature in my mind, is the most important reason for me, to use a Finance program like Banktivity. I have had success doing this using “Scheduled Transactions”, but a “Calendar” view would take the Software over the top.
I was an extremely happy user of iBank 5 up until March 3, as Direct Access is no longer supported. I get the message that I need to update (free) to Banktivity. I downloaded and on the install launch I get the unfortunate message that the update now requires at least OS X 10.9.
This is a major problem for me as I’m running a recording studio on the very same computer that is quite happy with the QuadCore and 10.8.5. An upgrade to El Cap would mean about a week or so of software re-authorizations, paths, etc. of dozens of apps and plugins.
If 10.9 was still available, I might risk that bump, but it’s not.
My only option, it appears, other than again BEGGING for 10.8.5 DA compatibility, is to either buy and install another HD and designate it as a optional startup drive with El Cap just to run iBank. Or, spend around $600.00 for a MacBook Air and install El Cap on it and Banktivity 5. That ain’t gonna happen.
Now I’m unhappy…
Direct Access hasn’t changed between iBank or Banktivity. But yes, 10.8 isn’t supported after iBank/Banktivity 5.5.
Any plans for adding the envelope budget feature to Banktivity for iPhone?
It’s on our “to do” list. But it isn’t scheduled for a specific release right now, so I can’t give an ETA. Quick question, would it be helpful for you if you could see your envelope amount on iPhone, but would be read-only (you couldn’t edit it on iPhone)?
My use case is to check, at the point of sale, whether I can afford a certain impulse purchase. Much as I’d like to update my envelopes on the fly, I can postpone that for later when I’m back at the computer. Just being able to check the envelope amount would already be very helpful.
Ian. Great blog. I have been using Banktivity for around 4 years and absolutely love it. I too have suggested envelope banking for iPhone. Read-only envelope banking on iPhone would be just fine.
Without individual lot tracking for investments, sales, cost bases, long and short capital gains, total return (positive or negative appreciation plus dividends) and yearly tax return information are useless. The most glaring shortcoming of Banktivity compared to previous versions of Quickenis its lack of function for even the casual investor.
Banktivity does everything in your list Mike except track individual lots. We know people want this. I think it definitely is sufficient for a “casual investor”.
Thanks for your response.
While Banktivity does technically perform calculations like long and short capital gains and total return, the inability to select which shares I am buying or selling in a given tax year negates those functions.
Anyone who buys shares of one or more companies more than once, and then at some point wishes to sell some but not all shares to minimize taxable gains does not have a true tax accounting in Banktivity due to the lack of individual lot selection. Nor do they have a correct remaining cost basis carrying forward without keeping track manually. Banktivity sells the first shares acquired (which, if we’re doing a decent job of investing, may well have the highest taxable gain.) I’m not trying to be argumentative, but I think buying a few shares a few times, and selling a few shares a few other times falls well within my definition of casual investing. I would love to see you add individual lot identification to your many other appealing functions. Thanks.
+1 for individual lot identification for investments in stock
Only a Vermonter would be willing to get so “up close and Personal”. Thanks.
That said, there are three things which prevent Banktivity from being perfect in my eyes. (1) Though I no longer print many checks, it sure would be nice to have a print icon in the tool bar (2) It would be vary handy in the reports area to be able to compare two blocks of time (3) I really wish the Vermont part of you would improve customer support. Chatting is a time waster and too much gets lost in the translation. Also, when you support team asks us to send a data file for their review, it might be nice for them to get back to us some time.
If you sent in a file and did not year back, please come to our live chat as soon as possible. I don’t see any recent communication with you in our support archives for about 1 year.
It’s no longer recent, and the issues (small though they were) were never resolved. At tis point it may be more than a year.
I would be happy with read-only envelope budget on the iPhone. I would really be happy if you had a summary or overview on the iPhone to go with it. Similar to the iPad and overview page of Banktivity for Mac.
I’ll second the request for the overview page on the iPhone. But ranking the features, envelope budgeting is still higher on my list.
I’ll also second, or third, the need for an overview, net worth summary or simply account totals on the iPhone version, similar to what Mint or Betterment provide on their app.
The iPad version already has a nice overview/summary in the upper left of the home screen/page which would be great on the iPhone, albeit in a slightly different format.
Also, could you please improve the text on the iPhone version by enlarging, bolding or more use of color? The current screens are difficult to read and a larger font would be very helpful.
Where is part 2?
We have a draft, it’s coming…
Great Blog – thanks!
Is there an RSS feed for this?
Yes we do, https://www.iggsoftware.com/blog/feed/
Even though it isn’t there, lots of people are waiting for Tags. Please, can you give us an idea on when that might be released in the future? I have 20+ years of quicken data (yes, I still refer to old stuff) to import, and I hate to lose all my Tags.
(By the way, I am an ex-Chipsoft/Intuit employee, I used to run their internal IT department before they sent everything overseas)
Thanks for the feedback on improvement investment tracking.
Thanks for this blog post, Ian, and thanks for Banktivity! Banktivity is a great product. When I switched from Windows to Linux for my daily OS, I couldn’t give up Microsoft Money. For years, I had an XP VM just for using it. When I switched to MacOS, the VM stayed. I tried multiple products, Banktivity (then iBank) was the only one that “felt” right. The newfangled money management that the kids are in to these days just doesn’t do it for me. Thank you for creating this software and saving me from continuing to use a clunky VM setup 🙂
WOW! Great story and thanks for sharing!
I also discovered iBank when looking for a Quicken replacement (needed a native app for my finance), I have journeyed this almost as much as you have and now I have a greater understanding of what has been happening behind the scenes.
Didn’t know Cloud Sync was such a big deal behind the scenes, yet it would be one of the most important parts of the BES (Banktivity Eco System)
I could not live without Cloud Sync today!
Keep up the great work!
Is there a good reason why Banktivity minimizes on my computer whenever it loses focus? When trying to compare with my bank statement on my web browser, it’s annoying to have Banktivity disappear when I click on my web browser taking the focus off Banktivity on my mac.
I really like Banktivity, I am slowly considering other software due to annual fees for direct download. It is almost the cost of the software per year.
Just came across this on Facebook. I too truly dislike Quicken, and have been looking for a replacement for years – the more so since recent releases seem to have totally broken online banking (and judging from comments on Quicken’s own support site, LOTS of people are completely fed up.)
The thing that remains a stumbling block is online payment. Having to change banks, to one of the few that supports OFX for payments, is simply too big an obstacle. It used to be that Checkfree was an option (like Quickenbillpay is for Quicken) – but no longer.
You’d probably have a fairly large number of instant converts if you worked out a deal with Checkfree, or some other service provider (or start one) – to seamlessly integrate bill paying into Banktivity, without requiring a change in banks.