All Articles

Balance, a sustainable personal finance app

cover iamge

A few months back, I took some time to explore a product idea that had been in the back of my head for a while, looking at a problem that is dear to my heart: climate change. I spend a few months exploring it, working on the business model, talking to potential users, and building out a technical POC to de-risk some of the core mechanics behind the product design. I learned a lot and I think it’s worthwhile to document where I got while it’s all fresh in memory.

The question we’re trying to answer is if we wanted to help individuals make meaningful long term behavior changes to lower their carbon footprint, how could we do it?

The rest of this post will take you through a video demo, the pitch, as well as details on the mechanics behind the product design. I won’t be touching on the business model in this post.

Before we start, a few words on the current context

While this post is being published as the western world is slowly reopening, most of the work I’ll talk about was all done near the end of 2019, in a pre-COVID world. I think COVID-19 has been very interesting in observing some of the same forces that are at play in the climate change debate, but in a compressed time-frame. (for instance, or this) As difficult a period as it has been, at some point in the future, COVID-19 will be behind us. But climate change isn’t going away.

i3m38xj3c7s41 1024x815 “Statisticallycartoon” on Instagram

This was also written in the mists of the protests around the horrific murder of George Floyd. As a white dude, I probably don’t know what I’m talking about, but I feel to my core racism is deeply wrong. Systemic racism is expressed though many forms of inequalities: social, economic… The racial wage gap is a reality. And despite some deluding themselves in thinking that COVID-19 was the great equalizer, that it would affect the rich and the poor, that’s simply not the case. Black people are 4 times more likely to die from COVID-19 than white people. It’s probably due to the systemic inequalities that is putting economic pressure on black people, and on many minorities. And it will be the same with climate change: it will disproportionately affect the poorest, especially in the short to medium term. So it’s just another reason why this matters so much.


The following demo was recorded for an innovation competition, and shows a walk-though of the features of Balance. The app prototype is fully functional and powered by real environmental data, so almost everything you’ll see is real.

The pitch

balance ad small 276x300 Balance’s website:

More and more people are realizing that climate change is the biggest challenge of our generation. But even though they want to do something about it, they don’t really know what to do, what not to do. We hear things like stop taking the plane, or stop eating red meat. But it’s all somewhat abstract; it’s hard to truly understand the absolute and relative impact of each action we take, of each choice we make. It’s as if we’re trying to loose weight, but don’t have a scale. And we don’t have the nutritional label on the side of that chocolate bar we’re craving to eat.

We solve this problem with Balance, an app that allows users to manage both their finances and their environmental impact together. The product is a full featured budgeting and personal finance app that allows users to track their spending, investments and debt, create budgets, etc.

But every feature has been redesigned to also consider the environmental impact of transactions. The simplest way to think about it would be as if you’re adding an extra column to a credit card statement next to the dollar amount that indicates how much impact each transaction had.

When looking at a categorical breakdown of your spending, you can now sort by impact, and see concretely in a very personalized way where your emissions came from. On top of awareness, this allows users to easily offset, directly within the app, some of the emissions the user can’t reduce through behavior change alone.

While offsetting is great, preventing emissions in the first place is really what needs to happen. What we did to enable that is what makes Balance unique. We’re allowing users to dive into transactions, to track things at the product category level. Within a financial transaction, users can capture the products they purchased, simply by taking a picture of their receipt. We then provide reports showing how environmentally friendly each product category was.

Users can get the same high level reports on product spending and impact as they can get for transactions.

To help users learn about possible changes they could chose to make, we provide alternative sustainable product recommendations. We show the emissions savings as well as the average difference in price.

Alternative products from partnering local merchants can be highlighted. This is a great way to encourage consumers to buy local products by giving them visibility and highlighting the potential emissions savings.

This all comes together with the budgeting feature, where users can set goals for themselves. This works just like you would expect in a standard budgeting app, but with the added ability to set an eco-budget as well as a financial budget, and to set budgets for specific product categories. A user might want to have a spend budget for groceries, and an eco-budget specifically for red meat if it’s something the user wants to keep track of.

One of the key aspects of the design is the understanding and respect of the fact that everyone is different, has a different situation and a different starting point. Whether the user is a single parent with 3 kids, a university student or an empty nester who just retired, the persona’s beliefs, ability to pay more, etc, will be different. Our goal is to take any user, wherever they currently are in terms of footprint, and help them become maybe 5, or 10% better; focusing first on what the potential low hanging fruits are for the persona.

Product design considerations

Positioning as a finance app

Positioning Balance as a personal finance app, instead of an eco-app, serves different purposes. First, most of the actions we take that have an environmental impact are tied to an economic decision, a financial transaction. So a lot of the choices and actions we’d like to track are already captured in our different bank statements. Also, many people are also already used to look at their financial statements, and budget, so we’re not creating completely new habits.

What we’re doing is saying that this is the way personal finance should be moving forward. Since the environmental impact is not currently really captured in the price of goods and services, if a user cares about the environment, the user is making financial decisions based on an incomplete picture. This might give Balance broader appeal, because it’s not only an eco-app; it’s a personal finance app that is built the way they should be in 2020.

Calculating the impact

The science behind all of this is life-cycle analysis (LCA), which is, according to the linked Wikipedia article, ”a methodology for assessing environmental impacts associated with all the stages of the life-cycle of a commercial product, process, or service. For instance, in the case of a manufactured product, environmental impacts are assessed from raw material extraction and processing (cradle), through the product’s manufacture, distribution and use, to the recycling or final disposal of the materials composing it (grave).” The goal is not be an authority on the topic, because I’m not :). Rather, the service we want to offer our users is to easily map their economic actions to their associated impact; the impact being the LCA numbers from credible sources. This really is at the core of the value proposition. It’s like providing users with “nutritional label” for impact of each of their action.

Remember that we’re looking at transactions because we’re using them as a proxy to decisions. To understand the impact of some transactions, like a flight, you’d ideally need to know details about the flight (type of plane, how full it was, the distance of the flight (shorter ones pollute less), etc). But it’s fundamentally a one-to-one mapping between transaction and decision. For others, like a trip to the grocery store, one transaction actually represents many decisions: each of those decisions are each of the products the user purchased. So for those, if we want to understand the decisions that make up that transaction, and then give recommendations, we’re going to want to look at individual products.

The next sections breaks down how I went about that.

Impact for transactions

Technically speaking, capturing financial transactions to report on impact wasn’t the hard part. Oroeco, a startup that looks like they’re not really operating anymore, had done it about 6 years ago. They are the oldest startup I found that tried to do something like this. They were piggy backing on, who themselves were an early player in making financial aggregation mainstream. But now, startups like Plaid or Flinks have made that a commodity, giving us a very easy way to have access to a user’s financial transactions.

You can then get approximate average environmental impact per-dollar for credit card transaction categories, most notably through the Aland Index. Simply speaking, they’ll take the total worldwide emissions for each type of industry as well as the total amount of spend, and calculate that down to an average impact per dollar. Some transactions that would fit in this category would be transportation, financial transactions, etc. There are various startups doing this right now.

Impact of products within transactions

Like I mentioned before, using only the category of a transaction will sometimes give you very wrong numbers. This can happen when a transaction is made up of many different decisions, where individual decisions can have a big difference in impact. A good example is a 25$ grocery purchase: was it 25$ or meat or 25$ of tofu? You can’t know from just the transaction. Some apps ask their users to answer surveys so they know, on average, how much each user usually purchases of each type of product, and they can extrapolate from that. The massive downside from that approach is if you’re trying to help people to change their behavior, you’ve got no way of tracking how they’re progressing. The only way to build an engaging experience and to understand how people are gradually making changes is by building a dynamic system that is as responsive as possible; not a static one backed by a survey.

Getting this to actually work was probably the trickiest part of the whole project. The transaction category I decided to tackle first was groceries. The reasons were:

  • we make frequent grocery purchases (every week), so it’s possible to have a tight feedback loop of measure, recommend, measure, etc.
  • it represents a large portion of a person’s impact
  • there are lots of varieties in terms of product alternatives

I decided to do it at the product-category level, and not at the SKU level, because environmental impact data at the SKU level just doesn’t exist for the majority of products (although there are some exceptions in electronics, or in food).

The product-category level data for groceries that we use comes from peer-reviewed LCA studies, like for instance Systematic review of greenhouse gas emissions for different fresh food categories (PDF). What you get is an average kg CO2 eq. / kg of produce. Depending on which study the data comes from, the numbers will be provided in different ways: global average VS per country of origin, including transport VS excluding transport, etc. The devil is in the details and getting accurate numbers is very challenging.

Systematic review of greenhouse gas emissions for different fresh food categories

Example data from the paper “Systematic review of greenhouse gas emissions for different fresh food categories”

The calculations we make downstream from the LCA numbers definitely have their limits, but the hope is that they are directionally correct and that they give a way to relatively compare different types of food (ex.: tofu vs beef). The goal is not to be exact; the goal is to be useful and actionable while being exact enough to not be misleading. A good example of where we could be a bit imprecise is highlighted by fresh asparagus; they have one of the biggest impact of vegetables. That is because for example in Canada, some of it is imported, and it has to be flown over because it would go bad if taking a slower mode of transport. So in the case of imported asparagus, the largest impact is from air freight. But what if the user bought locally grown asparagus? So again, I recognize the imprecision of the approach but still believe it can help bring awareness to the relative differences between types of produce.

Capturing product purchases and calculating the impact

As a user, how do I input the products I purchase? Certainly not manually. While we could rely on bank integrations to automatically download transactions, this isn’t the case for individual products.

One way to capture the products is by having the user take a picture of the receipt for that transaction. Without going more in the weeds than I already am in this section, the task is to extract from a grocery store picture the types of product (ex.: chicken, apples, pasta, etc) along with the associated price and weight. As part of the tech-POC this wasn’t fully developed but I’m fairly confident that given we’re matching against a known ground truth (ie scraping the online store of grocery stores), by using OCR, NLP, clever heuristics and crowdsourcing, it’s a solvable problem.

Remember that the LCA impact data we get is in kg CO2 eq. / kg of produce, but for lots of items on a grocery store receipt, the weight isn’t there. So we need to go from a dollar amount to a weight in kg. For the initial prototype, I scraped the online store of a big grocery store chain in Montréal to get price and weight information for each individual product they sell. This allowed me to build a database of roughly the average quantity of produce you would get per dollar for every category of produce.

Chicken drumsticks   Metro

Example product page on

With all of that information, I could now calculate approximately the amount of CO2 per dollar from a grocery bill for any produce.

product_impact = amount_purchased_dollars * 
                 avg_kg_per_dollar * kg_co2_per_dollar

Looking at an actual receipt example, I highlighted two blocks on the left.

The blue box is for bananas, for which we have the weight, so we can directly calculate the impact.

The orange one is for oat milk, for which we only have the price and not the weight. So for that one I would follow the steps outlined above to determine the average weight per dollar, and use that with the impact numbers. Alternatively I could try to match against an exact SKU by fuzzy matching on the price and description, but this being a tech-POC, I really stayed at the category level everywhere.

Reporting on the impact and recommendations to improve

Although this is currently a bit under designed, I decided to report impact on a 5 category scale, like expanded traffic lights. This is an easy to understand and elegant way to present results. Looking at the Reports image below, you can see a a distribution of how many products of each category were purchased. So we’re trying to get users to purchase less of the Es and more of the As and Bs.

In the recommendations section, users have easy access to alternatives products they could use as substitute for their top impact generating decisions. Balance is all about empowering users to make decisions in context, so we provide the relative emissions reduction and difference in price. Although sometimes doing what’s right for the environment is more expensive, lots of time, it’s surprisingly cheaper.

An interesting thing to note is the at first glance non-intuitive recommended substitution of bananas for eggs. Although it wouldn’t be great for your bacon and eggs breakfast, if you’re baking something, then that substitution could make sense. So having explanations around recommendations can help in educating users.


When budgeting our money, we create a plan to make sure we won’t spend too much. We may decide to delay a certain purchase because we’re already over the limit we had set for ourselves. The same concepts apply for a carbon budget, but while we create budgets around our finances based on our income, carbon budgets have to be created around a concept of how much emissions can we or should we each genereate, such that we collectively stay below a certain degree of warming.

I decided to go with a global and pre-configured 2-degree budget, so people have a starting point, a high bar to target at first for the majority of westerners.

Closing thoughts

Although the world’s focus has been laser focused on COVID-19 for the past months, climate change is not going away and it remains the biggest challenge we are all facing.

One critique of everything presented here could be that individual consumers should not carry the burden of climate change alone, that it’s governments and corporations that should act. I think we are all carrying this, and that it should be all hands on deck.

Speaking specifically to why an initiative like Balance is relevant, one part of it is around education, awareness and tracking. The image below really speaks to this. Most of us don’t really know what action actually has an impact. Reducing our use of plastic bags is great, and necessary; don’t get me wrong. But using that action as a justification to take another highly polluting one, like an extra trip to the Caribbeans, doesn’t make sense when you look at the numbers. We all think we’re doing better than the average person, which can’t true.


Another aspect of why Balance is relevant is something that isn’t yet built in the prototype: the community and friends dimensions. Positive competition and gamification can be in themselves great motivators. But if we look at some of the drivers of action in the context of climate change, when people see others who are making changes, it has been shown to motivate people to act. I imagine it’s a bit like saying you’re not the only sucker making an effort.

Yet, many in the climate change community stress that each of us needs to make personal changes to limit our carbon output. Not only because small, individual changes to cut carbon add up. But also because our behaviours, whether good or bad, are contagious.

“We don’t live in isolation; our actions matter because people use them to judge the seriousness of the climate problem,” says Wynes, who in 2017 co-authored a study that ranks the most effective lifestyle changes to curb an individual’s carbon footprint. Research suggests, for example, that homeowners are more likely to install solar panels when someone else does it first in their neighbourhood.

From ”What we can do now

The more people are educated and understand this issue, the more pressure we will be able to put on governments, and on corporations though our collective actions. The more consumers make greener choices with their money, the more incentive entrepreneurs and corporations will have to create new products and services that are more sustainable.

Interested in Balance?

You can sign up to try out the Beta!

I’d also love to hear what you think about Balance! Please reach out in the comments or connect on Linkedin!

Thanks for reading.

Published Jun 9, 2020

I am a computer scientist specializing in building machine learning powered products. I’m currently a machine learning developer at Local Logic.