Calculating Our Carbon Footprint

We built a powerful tool to model the energy consumption of an entire campus. Let's use it at home!

At BNB, we like to give superpowers to teams. And we get really excited when those teams are full of folks that are already our superheroes.

A few years ago we built a strategic energy portfolio planning tool for the energy team at AECOM, called Rosetta. Rosetta is an incredible tool that allows engineers to anticipate the future energy demands of a large campus, and optimize potential energy measures to meet green mandates. The scope of the tool fills a small book. One of the important things to acknowledge: every piece of data in this application is stored as an array of 8,760 points. One for each hour of the year.

After pivoting to 100% work-from-home 2 years ago, we've been weighing the many pros and cons of WFH. One of the things we wanted to consider is the environmental impact of this decision. Today I would like to showcase how we used one of its most basic functions to calculate BNB's carbon footprint.

Do not draw your sword to kill a fly.

Korean Proverb

Do it anyway. Rosetta is awesome.

Everyone on the BNB team.


By identifying the location of our project, we get a lot of things for free. Environmental information like cloud cover and Solar Radiations per Square Meter (to help calculate the impact of PV measures), average windspeed (to help calculate the impact of Wind energy measures), and hourly dry bulb temperature (to help calculate the impact of measures that improve a building's envelope, as well as energy loss in large piping systems). Utility rates schedules are pulled from NREL's Utility Rate Database.

Side note: we love the folks at NREL. Anyone that spends large amounts of time thinking about how to classify physical world data, and then converts it into a Ruby Gem, is a winner in our book.

Utility Rate Schedule
Time of use utility rate schedules for the Kansans. We could have done a multi-site setup where all of our remote folks used their actual utility rates. But for the sake of this post we are more interested in calculating carbon, not cost.

We then add all of the BNB team member's homes. This was actually very quick. Rosetta includes hourly profiles for common energy demands. The only input I had to provide was a floor area for each home, which is used as a multiplier against the modeled demand of heating per square foot per hour for a residential building in climate zone 6 (for example).

Will and his Pool
Will has an awesome swimming pool. And running a pump is no small part of his energy bills. To account for this we added a pump demand and shaped it to run mostly in the summer. We routed the demand through a low efficiency pump. Will confirmed the modeled costs for this were "eerily accurate". Win!


When engineers use this tool, they can calibrate individual energy demands based on information they receive from building managers. When we used the tool, we just looked at the modeled utility bills and confirmed that they were "close enough".

Carbon Settings
Historic vs modeled utility bills for Josh's natural gas bill.

In a fun addition: Josh had his historical utility bills on hand. We plugged them in to calibrate and validate the modelled information. In the chart above, you can see that March was especially cold and nearly doubled his monthly bill. We used Rosetta to adjust March up a little bit. But we didn't want to skew things too far based on an anomaly.

Our Energy Profile

Once everyone confirmed their individual modeled utility costs, we felt confident enough to review our team's energy profiles.

Baseline Energy Profile
Hour-by-hour energy demands of the BNB team.

Rosetta wouldn't be an energy modelling tool without a Sankey diagram. The Sankey tracks the flow of energy from energy providers (on the left) to specific energy demands (on the right). As it flows, the impact of the energy drops as it goes through systems that have inefficiencies.

The energy must flow.

My favorite part of this diagram is Ken's apartment in Brooklyn. He gets his hot water and heating from a boiler in the basement. This boiler serves every unit in the building. And apparently over-serves: Even in the middle of winter, Ken has to keep a window open. You can see this system in the sankey above as the loop that drops off the bottom of the chart. Natural gas runs the boiler, which generates another fuel (steam), and pumps it to a radiator, which serves the heating needs of Ken's apartment.

This kind of district energy profiling is another powerful part of Rosetta. If we knew the specifics, we could capture the length, diameter, and pipe types of the steam and return systems. Rosetta would then use this information to capture how much energy is lost in distribution. But again, this is way overkill. So for this post, I just said that the boiler is really inefficient.


We now have an incredibly accurate model for how much energy we use as a team. Now we just need to convert that into carbon. Most fuels have a fixed multiplier for calculating how many metric tons of carbon dioxide are emitted per mWh of energy demand. Natural gas, for instance is 0.1847. But electricity, we hope, will become more efficient in the future as new technology is introduced at the utility provider level. To account for that, Rosetta allows us to put in year-by-year multiplier values.

Carbon Settings
Metric tons of carbon dioxide emitted per megawatt hour of electricity produced.

The tool now has everything it needs to generate a multi-page report of KPIs. And one of them is total carbon emissions of the BNB team:

75.0 MTCO²/year

Taking Action

If we wanted, we could use Rosetta to help us identify conservation measures to reduce our carbon footprint. This would be an exercise for another post, and honestly: we are not going to ask folks to convert their homes to use heat pumps or something.

Instead, we purchased enough carbon offsets to counter more than double the emissions our team (and their families) generate each year.

Great scott! That was a lot of technical nitty-gritty. If you've read this far, we need to talk. Seriously. We're hiring. And if you think this kind of stuff is cool, there is a good chance you'd really like it at BNB.