This is a timed blog post. Every 5 minutes while writing this post, I had to stop to do 10 push-ups, and when I could no longer complete my required number, I had to upload it. My friend and I thought this would be a fun challenge, but it means that it will likely be less polished than some of my other output.
A few weeks ago, I wanted to improve at doing back-of-the-envelope calculations (BOTECs). So, I did a practice BOTEC and asked for some feedback. This post compiles what I learned: how to complete a BOTEC, what BOTECs are good for, when they’re valuable, and when they fail to beat intuitions.
How do you do a BOTEC?
Step 1: Identify the project
My BOTEC-ing journey begins with my time in the Generator Residency. At the beginning of the program, residents are asked to choose a project that they suspect will be impactful and execute on it for the remainder of the program. I had heard that BOTECs were a valuable tool for impact estimation, and I was eager to give them a try. So, I decided to analyze the idea of running joint hiring rounds for AI safety orgs. The idea looked something like this:
Many AI safety organizations look for similar things in their candidates. This means that when they independently screen the same candidates, they end up duplicating much of the same work.
This is inefficient! It wastes hiring managers’ valuable time.
We could reduce this inefficiency by having a single party complete this work themselves and share the results.
Aside from the main theory of change, there were other concerns about whether or not this project would be good for the ecosystem.[1] However, for reasons that will become apparent later, I don’t think this matters much. Besides, for the simplest version of our BOTEC, we won’t need to worry about that.[2]
Step 2: Identify the main source of impact
It’s good to have a clear theory of change (ToC) for any project you’re pursuing. In other words, you should have a clear understanding of what makes your project valuable for your end goals.
When you complete a BOTEC, the first thing you should do is identify the primary source of your project’s impact. Then, you should find an easy way to turn this into a unit that you can compare across actions. This is going to be the metric that you use to compare the value of projects. There are a few rules that can help you think about this:
Interpretability: Someone who sees your metric and understands what it means should immediately get a clear sense of how good it is compared to other activities. A metric that is not clearly interpretable is not very helpful.
Simplicity: The fewer strong assumptions and weird conversions you have to make to get your answer, the better. It’s easier to compare the impact of two projects in a similar domain (how many years of cage-free hen life do each of these interventions produce?) than it is to compare the impact of projects in vastly different domains (how many DALYs does a cage-free campaign prevent vs $1000 spent on compute during the intelligence explosion for AI-powered moral philosophy). If you’re trying to convert your estimation into a unit that’s commonly used by other BOTEC-ers (like % reduction in x-risk per dollar per year), you might accidentally smuggle in a bunch of weird and different assumptions that they don’t share.
The unit that I chose for my BOTEC was something I called “Gmult”, which stood for “Generator-skill-adjusted generalist time multiplier.” This could be interpreted as follows: for every 1 hour of Generator resident time put into this project, it saves Gmult hours for other generalists across the AI safety space (adjusted to the skill level of the median Generator resident). I chose this because it seemed like an intuitive metric for efficiency gains, and I thought it would show if I were obviously wasting my time.
When you’re choosing a unit, you should think carefully about the goal of your BOTEC. Are you trying to compare two specific projects? Are you trying to communicate a true thing to a wide audience? Are you trying to understand a topic better? Your answer to these questions might change what unit works best for you.
Step 3: Estimate the shape of your formula.
The next thing you need to do is figure out which components make up your final answer, and determine how they relate to each other. The units of your components are very important, so you should specify them clearly if you intend to communicate your results with others. Here are some things to think about:
If you want an output in hen-years, you should calculate this by taking the number of hens times the number of years across them. Multiplying the number of hens by the number of hours will give you hen-hours, which is not the unit you want.
The way your units relate to each other matters a lot. If you imagine an abstract unit that increases logarithmically with time, while someone else imagines a different unit representing something similar that increases linearly with time, you might write different formulas when you actually mean the same thing. This becomes a larger problem if you’re talking about things abstractly.
For example, let’s say the benefit (B) of a Generator project is measured in skill gained (S) and impact (I). Person A might say that B = S + I, while Person B might say that B = S * I. While it might intuitively seem like these people are making different claims about how skill and impact relate to benefit, they might actually understand things in the same way but use different units. If SA = lnSB, and the same is true for each of the other variables, you would see a relationship like BA=SA+IA=log(SB)+log(IB)=log(SB⋅IB)=log(BB). In short, your attempt to use abstract math to describe reality more easily might have held unstated assumptions that made things more confusing!
Additionally, you should choose units that help you quickly get to your result and are easily measurable. For my BOTEC, I chose a few simple parameters:
n: the number of orgs that benefit from the joint hiring rounds
%TS: the percentage of time during the hiring process saved by having a joint hiring round (percentage of time saved)
This number is important if the most taxing part of an org’s hiring process is specific work trialing and fit testing that can’t be duplicated.
Smult: how many more times valuable the hiring manager at a chosen org is, on average, compared to the time of a Generator resident.
My resulting formula was:
Gmult= n * Smult * %TS
You can double-check this formula by plugging in different numbers and checking the output. For example, if you save 100% of the hiring time at 3 orgs, and Smult is 1 (the assumption here is that Generator residents are just as skilled as workers at other orgs), then joint hiring rounds produce 3 skill-adjusted generalist hours for every hour put into them.
If this answer seems obviously wrong or confusing, you might want to double-check your formula. For example, maybe Generator residents would be slower hiring managers than other professionals. You can add another parameter could be added to adjust for this.
Step 4: Determine a plausible range for your numbers
Next, you need to figure out what numbers you should plug into your formula. This is where everything can fall apart if you’re not careful. The output of your formula is only as accurate as its inputs, so this is important to estimate these correctly. Here are the ranges I used for this project:
Smult: Somewhere between 0.8x and 3x
n: 3-6 orgs
%TS: 0.9
I don’t think these numbers were especially accurate, but I don’t think they were obviously wrong. Had I wanted to come up with a more serious estimate, I would have spent more time carefully thinking about these numbers. However, my goal was only to learn BOTEC-ing, so I didn’t invest much time into this.
Step 5: Estimate and interpret
This led to a Gmult range spanning from 2.16x to 16.2x. My initial intuitions about these numbers went something like this:
A number as low as 2.16 is almost certainly less impactful than other forms of fieldbuilding. Counterfactually convincing someone to pivot to a more effective career path is almost certainly much, much larger than that.
A number as high as 16.2 seems good enough that I might consider comparing this project with other similar things. However, for a variety of reasons I haven’t written in this post, I thought this estimate was way too high.
These estimations led me to believe that this project would not be worth pursuing on impact grounds alone.[3] This evaluation also matches the story of one of the other residents: they were initially interested in completing this project, but they pivoted to working on sourcing candidates for top orgs directly. This turned out to be a much more efficient use of their time and one of my favorite Generator projects.[4]
Completing a BOTEC is pretty good,
I got several things out of completing this BOTEC:
Clarity of thought: Before thinking about this BOTEC, I thought the project would be good because “efficiency feels good.” Clarifying my unit of impact helped me think about the real theory of change and how this project should be compared to others.
Rough idea of impact: The output of this BOTEC gave me some idea of how impactful this project actually would be.
Efficiency of communication: In future conversations with Generator residents, I could point to all the assumptions I had previously laid out about the value of this project.
All of these qualities seemed pretty good and made me feel better about the project-selection process.
But there are limits to how helpful BOTECs are.
However, despite their benefits, there are several reasons you might want to distrust BOTECs:
If you get an unreasonable output, you should probably be skeptical of it, unless you have a really good reason to believe that you have made no mistakes in your reasoning. But even then, be skeptical.
If a BOTEC is too complicated, it’s easy for small mistakes to lead to big problems.
It is extremely important for you to have a deep understanding of how all the parameters in a BOTEC relate to each other.
Simplicity is good when writing BOTECs. A route that finds an accurate answer through fewer parameters can be better than one that takes a messier route.
This is primarily important when comparing the impact of things across vastly different domains.
If someone has a lot of tacit knowledge and verified intuitions about a domain, their intuitions will often outcompete BOTECs.
This might be because intuitions capture a lot of hidden parameters that BOTECs do not.
The Optimizer’s Curse means that if you’re evaluating several different interventions or cause areas, you will likely overvalue things with higher uncertainty.
I think the points made here are important enough that if you ever want to think about doing BOTECs, you should probably slow down, reread this, think carefully about each point, and maybe reconstruct them all from memory. It’s tempting to skim list-posts, but it is very important to understand the limits of any epistemic tool you use.
Should I do more BOTECs?
So, given these weaknesses, are BOTECs worth doing?
If you’re choosing between projects to work on, most of the value of BOTECs comes from gaining a clear conception of where your project’s impact comes from. So, I would recommend thinking carefully about your theory of change, and if you’re confused about that, you should determine what your unit of impact probably is.
In the early days of Generator, one thing I noticed was that many people didn’t spend enough time thinking carefully about where the primary impact of their projects would come from. This ultimately cost them lots of time and emotional strain, as they only realized a project wouldn’t be very good after several more hours of work. I suspect that some of them could have avoided this trap if they thought more carefully about the main unit of their impact.
Aside from that, I think you should only worry about completing a full BOTEC on projects you plan to spend more than ~24 hours on. As a general rule, BOTECs take longer than you expect to get right. You will probably learn much more and do more good things by just trying to go do things.[5]
Upon completion of the first draft of this post (2033 words), I had done 200 push-ups.
The section on the limits of BOTECs had the highest push-ups per word (it took me the longest to write).
My writing speed overall seemed fairly constant.
Thank you to Aryan Bhatt and Zach Stein-Perlman (aka “A15Z”) for feedback on my practice BOTEC and tips for thinking about the value of BOTECs. Their guidance helped me get the ideas behind this post, but due to the nature of the push-up challenge, they were not given a chance to review it. The good ideas in here are probably theirs, and the mistakes in here are probably mine.
Final push-up count (didn’t hit failure, but it’s past 11 PM): 290 push-ups
This is a timed blog post. Every 5 minutes while writing this post, I had to stop to do 10 push-ups, and when I could no longer complete my required number, I had to upload it. My friend and I thought this would be a fun challenge, but it means that it will likely be less polished than some of my other output.
A few weeks ago, I wanted to improve at doing back-of-the-envelope calculations (BOTECs). So, I did a practice BOTEC and asked for some feedback. This post compiles what I learned: how to complete a BOTEC, what BOTECs are good for, when they’re valuable, and when they fail to beat intuitions.
How do you do a BOTEC?
Step 1: Identify the project
My BOTEC-ing journey begins with my time in the Generator Residency. At the beginning of the program, residents are asked to choose a project that they suspect will be impactful and execute on it for the remainder of the program. I had heard that BOTECs were a valuable tool for impact estimation, and I was eager to give them a try. So, I decided to analyze the idea of running joint hiring rounds for AI safety orgs. The idea looked something like this:
Aside from the main theory of change, there were other concerns about whether or not this project would be good for the ecosystem.[1] However, for reasons that will become apparent later, I don’t think this matters much. Besides, for the simplest version of our BOTEC, we won’t need to worry about that.[2]
Step 2: Identify the main source of impact
It’s good to have a clear theory of change (ToC) for any project you’re pursuing. In other words, you should have a clear understanding of what makes your project valuable for your end goals.
When you complete a BOTEC, the first thing you should do is identify the primary source of your project’s impact. Then, you should find an easy way to turn this into a unit that you can compare across actions. This is going to be the metric that you use to compare the value of projects. There are a few rules that can help you think about this:
The unit that I chose for my BOTEC was something I called “Gmult”, which stood for “Generator-skill-adjusted generalist time multiplier.” This could be interpreted as follows: for every 1 hour of Generator resident time put into this project, it saves Gmult hours for other generalists across the AI safety space (adjusted to the skill level of the median Generator resident). I chose this because it seemed like an intuitive metric for efficiency gains, and I thought it would show if I were obviously wasting my time.
When you’re choosing a unit, you should think carefully about the goal of your BOTEC. Are you trying to compare two specific projects? Are you trying to communicate a true thing to a wide audience? Are you trying to understand a topic better? Your answer to these questions might change what unit works best for you.
Step 3: Estimate the shape of your formula.
The next thing you need to do is figure out which components make up your final answer, and determine how they relate to each other. The units of your components are very important, so you should specify them clearly if you intend to communicate your results with others. Here are some things to think about:
Additionally, you should choose units that help you quickly get to your result and are easily measurable. For my BOTEC, I chose a few simple parameters:
My resulting formula was:
Gmult = n * Smult * %TS
You can double-check this formula by plugging in different numbers and checking the output. For example, if you save 100% of the hiring time at 3 orgs, and Smult is 1 (the assumption here is that Generator residents are just as skilled as workers at other orgs), then joint hiring rounds produce 3 skill-adjusted generalist hours for every hour put into them.
If this answer seems obviously wrong or confusing, you might want to double-check your formula. For example, maybe Generator residents would be slower hiring managers than other professionals. You can add another parameter could be added to adjust for this.
Step 4: Determine a plausible range for your numbers
Next, you need to figure out what numbers you should plug into your formula. This is where everything can fall apart if you’re not careful. The output of your formula is only as accurate as its inputs, so this is important to estimate these correctly. Here are the ranges I used for this project:
I don’t think these numbers were especially accurate, but I don’t think they were obviously wrong. Had I wanted to come up with a more serious estimate, I would have spent more time carefully thinking about these numbers. However, my goal was only to learn BOTEC-ing, so I didn’t invest much time into this.
Step 5: Estimate and interpret
This led to a Gmult range spanning from 2.16x to 16.2x. My initial intuitions about these numbers went something like this:
These estimations led me to believe that this project would not be worth pursuing on impact grounds alone.[3] This evaluation also matches the story of one of the other residents: they were initially interested in completing this project, but they pivoted to working on sourcing candidates for top orgs directly. This turned out to be a much more efficient use of their time and one of my favorite Generator projects.[4]
Completing a BOTEC is pretty good,
I got several things out of completing this BOTEC:
All of these qualities seemed pretty good and made me feel better about the project-selection process.
But there are limits to how helpful BOTECs are.
However, despite their benefits, there are several reasons you might want to distrust BOTECs:
I think the points made here are important enough that if you ever want to think about doing BOTECs, you should probably slow down, reread this, think carefully about each point, and maybe reconstruct them all from memory. It’s tempting to skim list-posts, but it is very important to understand the limits of any epistemic tool you use.
Should I do more BOTECs?
So, given these weaknesses, are BOTECs worth doing?
If you’re choosing between projects to work on, most of the value of BOTECs comes from gaining a clear conception of where your project’s impact comes from. So, I would recommend thinking carefully about your theory of change, and if you’re confused about that, you should determine what your unit of impact probably is.
In the early days of Generator, one thing I noticed was that many people didn’t spend enough time thinking carefully about where the primary impact of their projects would come from. This ultimately cost them lots of time and emotional strain, as they only realized a project wouldn’t be very good after several more hours of work. I suspect that some of them could have avoided this trap if they thought more carefully about the main unit of their impact.
Aside from that, I think you should only worry about completing a full BOTEC on projects you plan to spend more than ~24 hours on. As a general rule, BOTECs take longer than you expect to get right. You will probably learn much more and do more good things by just trying to go do things.[5]
More broadly, things are only as valuable as how much they help you achieve your goals. It’s easy to get distracted by the allure of BOTECs: math is fun, and it can feel rewarding to clarify your thinking on every small issue you encounter. But don’t confuse this for impact.
Time stamps and other notes
Maybe it makes hiring choices too strongly correlated, and maybe orgs already do a good job of recommending people to new roles
If it ultimately mattered for the end result, I would have found a way to adjust for it.
It might have been worth it for upskilling reasons, but I’m kind of skeptical of this.
But there are a LOT of really awesome Generator projects. I think there’s a post about this coming soon.
But you should still think about theory of change.