Ambsheets

Spreadsheets for exploring scenarios

Ambsheets is a research project about new kinds of spreadsheets for exploring possible scenarios and making better decisions. In this lab notebook, we’ll share snippets of our findings as we explore.

If you have a problem that you think might benefit from Ambsheets, we’d love to chat—please reach out to us.

The entries start from the beginning, but you can jump to the most recent post: 02 · Filtering scenarios

01 · A spreadsheet for exploring scenarios

2025 Feb 4

From calculating monthly budgets to planning dream vacations, spreadsheets are our trusted companions as we navigate life’s complex decisions—a playground for thinking, where possibilities come to life through numbers.

Spreadsheets are particularly useful for thinking through financial models, budgets, or any situation that involves considering lots of possible scenarios. Instead of laboriously redoing a bunch of math, you can quickly ask “what if?” questions and see the effects.

But, as great as spreadsheets already are for this task, we think they could be even better. In our Ambsheets project, we are exploring a small extension to the spreadsheet: what if a single cell could hold multiple values at once?

The problem of comparing scenarios

Suppose you’re moving to a new city, and you want to figure out how much you can afford to spend on your car, apartment, and other essentials each month. You start out by making a spreadsheet that sums up the various line items:

Now, you want to consider a few scenarios for possible cars and apartments. How might you compare those scenarios in the spreadsheets of today?

One thing you can do is toggle, by temporarily entering different values into a cell:

Toggling is straightforward because it doesn’t require restructuring the spreadsheet at all. But it has a key drawback: there’s no way to see all the scenarios at once!

Another option is to restructure by adding more columns to the sheet:

Restructuring does let you compare multiple scenarios at the same time, but it has its own drawbacks. It’s more work than toggling, because you need to pause and edit the layout. And it’s easy to run out of space—even in this small example, if you wanted to consider two possible cars and three possible apartments, your spreadsheet would grow rapidly.

Introducing amb values

Neither of the options above is fully satisfying. What if instead you could directly tell the spreadsheet that you’re considering multiple values for the price of the car? In an ambsheet, you can do just that:

The new value of B3, {500,1200}, means either 500 or 1200. We call this an amb value, and it represents one dimension in our possibility space. (Amb is shorthand for “ambiguous”, and is a reference to the nondeterministic evaluator from Abelson and Sussman’s Structure and Interpretation of Computer Programs.)

Amb values flow through the computation just like regular values and don’t require any special treatment in formulas. Cell B7, whose formula is SUM(B3:B5), now evaluates to either $3,318 or $4,018—this is what your total monthly spend will be if you decide to lease the car that costs $500/month or the car that costs $1,200/month, respectively.

If you’re willing to spend up to $5,000, you may also want to consider apartments that are larger and/or in nicer neighborhoods. In our ambsheet, all we have to do is change B4 to an amb value:

Now the total monthly spend (cell B7) has 6 different values, one for each possible scenario:

We say this possibility space has two dimensions because there are two different amb values where we are making a choice. We can visualize the possible values of B7 in a 2-dimensional table:

Within each scenario, an ambsheet operates like a normal spreadsheet—the SUM formula only sees “regular” (non-amb) numbers. Behind the scenes, the ambsheet’s evaluator takes care of enumerating all possible scenarios and running the formulas for each one.

Ambsheets aren’t limited to 2 dimensions. For example, if you’re choosing among different Netflix plans, you could turn the last budget item into an amb value, resulting in a 3-dimensional possibility space. This is more flexible than doing restructuring in traditional spreadsheets, where you’re limited to the 2D grid.

What about Excel’s “What-if”?

If you’ve used What-If Analysis in Microsoft Excel, some of these ideas may seem familiar. That feature aims to solve the same problem as Ambsheets, but there are two key differences.

First, What-If Analysis has a clunky UI that’s not integrated into the spreadsheet itself. You need to open a separate mode to enter cell values or view the possible scenarios. In an ambsheet, you can start exploring scenarios right within the sheet itself.

We also take a different approach to enumerating scenarios. Excel requires the user to manually enter every scenario—even in the simple example above, exploring 2 cars, 3 apartments, and 2 Netflix plans would require entering 12 scenarios, with names like “Cheap Car / Medium apartment / Premium Netflix”. In contrast, an ambsheet automatically computes all combinations of the three amb values.

Going deeper

That covers the basics of amb values, but many questions remain if we want to grow this kernel into a powerful medium for exploring scenarios.

We’ve been exploring these questions and more, and we’ll be posting the results of our experiments in this lab notebook.

If you have a problem that you think might benefit from Ambsheets, we’d love to chat—please reach out to us at alexwarth@inkandswitch.com and geoffrey@inkandswitch.com.

02 · Filtering scenarios

2025 Mar 13

When you’re choosing from a long list with many options, it’s helpful to have filters to narrow down your search. This is a familiar concept on many websites—for instance, on the flight search website Kayak, you can start with a list of thousands of flights, and then filter down to the ones that meet your needs: “a nonstop flight, leaving before 11am, in economy class”.

What if you could apply this same concept of filtering to any problem in your life? Whether it’s deciding on a budget or planning a project, we all encounter situations where we’re considering a large number of options, and need to narrow down our search. In this note, we’ll show how to do that using filters in Ambsheet, our research prototype of a spreadsheet for modeling multiple scenarios.

Filtering on inputs

In our previous note we introduced the basic idea of ambsheets using a simple budget. We showed how you could create some input cells which each contained multiple values—choosing between two cars and three apartments—and the spreadsheet would show you 6 amounts for the total sum, representing the possible combinations based on your choices.

Now, what if you want to narrow your focus to a subset of these possible scenarios? Our prototype has a filter menu on the left of the screen that enables you to do just that. For example, maybe you only want to consider scenarios that involve the cheaper car:

Now you can see that some of the values in cell B7 (TOTAL) are greyed out, indicating that they’re no longer possible. We can similarly filter on the apartments by selecting only the two higher-priced options, and we see that the set of possible values in cell B7 shrinks once again:

Filtering on outputs

So far these conclusions have been fairly obvious. But filters in Ambsheets also support more interesting analyses because you can filter on any cell, including the outputs of computations.

To illustrate this, let’s imagine that your budget needs to be under $4200 per month, and you want to know which combinations of car and apartment are viable options given that constraint. There’s a nice pattern you can use for this: write a formula labeled “can afford” that evaluates to true or false, and then use it to filter down to only scenarios that we can afford:

We’ve filtered the output cell, and the ambsheet now shows us which inputs correspond to those outputs. We can see that the two more expensive apartments have been greyed out—that’s because there’s no scenario where we can choose one of those apartments and still satisfy our affordability filter.

The pattern of filtering on formula outputs scales nicely to more complex spreadsheets. For example, imagine you’re budgeting for a wedding in an ambsheet. You can create multi-valued amb cells representing choices: the venue, whether it’s on a weekend or weekday, and the number of guests. You can then set up a series of calculations that compute the total cost of the wedding, based on a given set of choices. (We’ll skip the details because there’s nothing unusual in the spreadsheet logic, just some straightforward math.)

Now you can do the exact same exercise as before: filter on the “total” cell to consider affordable choices. In this case we’ll use a different UI for filtering: a histogram with draggable slides, which helps you see the range of values as you filter. But the underlying logic is exactly the same as before: you’re picking a subset of outputs, and the tool shows you which inputs correspond to those outputs.

Filtering the wedding ambsheet instantly provides a picture of which wedding venues and dates are realistic choices at different price points. As you set an upper limit on the budget, you can see in the table view at the bottom right that the cells in the Library column greyed out, telling you the Library isn’t viable as a venue if you want to keep the wedding under a certain price.

Reflections

Using spreadsheet formulas to express filters provides generality while leaning on familiar knowledge. Many analytics systems have clunky “query builders” for constructing filter criteria, which are limited to expressing simple inequalities or boolean ANDs and ORs. Meanwhile, spreadsheet formulas can flexibly express an open-ended set of mathematical and logical expressions, and many people already know how to write them.

While we think the basic idea of filtering on formulas is compelling, there are some limitations we’ve noticed in this prototype. One issue is that only one set of filters can be active at any one time. Sometimes you might want to compare across the results from multiple distinct sets of filters, and it’d be useful to see them simultaneously without “toggling” back and forth. Another question is how to represent the state of the currently activated filters—should that be shared collaboratively? Can you save sets of active filters? What are patterns that emerge when using filters to evaluate decisions? We’ll share more ideas on these fronts in upcoming posts.


The Ink & Switch Dispatch

Keep up-to-date with the lab's latest findings, appearances, and happenings by subscribing to our newsletter. For a sneak peek, browse the archive.