This does a clever job of dealing with the multiple varied inputs to a scenario.
A real budgeting scenario might have 2 * 3 * 7 * 4 * 5 * 3 * 9 * 2 * 5 = 226,800 possible outcomes, so the obvious question is what UI do you use to consider/narrow down that beast? You need tools that let you slice and dice that output based on different sets of criteria.
The simplest might be something like, "rule out all solutions that total more than $5000" but you also need things like "I will only pay for a total of 3 streaming services, rule out all scenarios with more than that" and "if I choose not to have a car, then I have to get a transit pass and an e-scooter"
I almost feel like, as clever as this is, the harder problem is the one I describe above.
gklitt 1 hours ago [-]
We totally agree! Stay tuned for our next posts on that topic :)
dfex 15 hours ago [-]
The ideas and prototypes coming out of inkandswitch are really interesting.
It feels like user interface innovations all stopped/stagnated in the early 2000s and we've just spent the last 20 years adjusting the previous 20 years of desktop UI paradigms to the mobile and tablet space.
It's great to see people still working on interesting problems like this
batmenace 6 hours ago [-]
Couldn't agree more. Spent the evening reading though some of their work, and it's all so... fun. Just exploring fun and potentially useful ideas not restricted to what tools already exist (which seems to be the case much of the time)
nxobject 13 hours ago [-]
Re: computing with continuous distributions: I recall there was a "show HN" a while ago with a graph-style interface to do computations on continuous distributions, so you could very much budget by modelling a plausible distribution of gas prices within the month, of rental prices in your town, etc, and then see plausible distributions of monthly spending.
I'm still trying to find it: anyone remember this, or did I just Mandela Effect myself? I'm not sure whether it computed outputs analytically or through simulation.
(Hell, I might just recreate it on my own...)
kqr 13 hours ago [-]
There is nothing free and good in this space, last I checked. The alternatives I know of:
- GetGuesstimate[1] is probably the most polished, but development on it is slow and it doesn't lean into the same interaction patterns that I think make actual spreadsheets popular.
- There are various plugins for the proprietary Microsoft Excel that can do this. I don't remember their names off the top of my head, but sometimes "Monte Carlo" is the phrase that unlocks many searches around this. (Crystal Ball is a name of a plugin that pops into my head.)
- One can hypothetically do this in vanilla spreadsheets, by generating arrays of random values and serialising/deserialising to space-separated strings in a cell. This is very, very slow, though.
- I have started working on something I call Precel[2] which is not very polished but I think the basic idea (if not the current implementation) can be a solid foundation for a proper spreadsheet-for-full-distributions.
I miss GetGuesstimate. It was well-polished and surprisingly powerful for what looked I remember being a prototype. For the scenarios like that example in the article, it would arguably fit better than spreadsheet interface.
Last time I used it was about 3 years ago - I used it to estimate of how much we'll end up spending on renovating the apartment we were planning to move it, and then updated it as the work progressed to make decisions like whether we can afford some optional elements of the plan, if we'll need to get a loan to finish everything, and how much.
Structurally, I basically broken it down by rooms, categories of work and stuff to buy - building materials, furniture. Initially, I just guesstimated (!) the costs based on gut feel, or web search. I'd start with things like: "my mom's apartment had the same proportions and painting it costed $X last year, ours is about Y% larger" -> one node "Painting walls & ceilings except kids room", value = PERT distribution between $X and $X * (1 + Y%) * Fudge factor. After we picked the paint, I'd just split that node into a) labor and b) material, the latter split into surface area (known), bucket cost (known), buckets per sqm (distribution based on values from the back of the bucket) - getting a much narrower probability distribution on the material (and total) cost. Stuff like this for every aspect - I'd just model the things I know.
It was a bit of extra work, but it was instrumental for keeping the costs in check and gave me great peace of mind. It also made it obvious which aspects were driving the costs, which were most risky - wide distributions going into large amounts, which I prioritized pinning down the costs of - and where it's worth to look for savings or alternatives.
Also, it demonstrated the usual case of webapps being optimized for demo examples instead of real use cases. My renovation planner quickly accumulated about a hundred nodes, most of which were computing probability distributions (via ~1k samples Monte Carlo). That slowed the UI down to a crawl, and many times updating a node would create a cascade of errors down the dependency graph, as the diminished performance started surfacing race conditions in the evaluator.
(You may ask, wouldn't it be better to do that stuff in code? Not really - half of the value was in having every part of the math as a node in visual, interactive DAG, that displayed histograms of the probability distributions at every node, so you could just see everything all the time.)
Still, I loved it, and I really wish someone made an actively supported product like this.
8yt98z2b905o 6 hours ago [-]
@Risk is another excel add-in. Found it quite powerful and useful:
@Risk, or specifically their competition, is my prototypical go-to example of "your SaaS product would be much more useful and ergonomic for the user if it were implemented as an Excel spreadsheet".
vosper 11 hours ago [-]
Was it Projection Lab, which has been on HN before?
I remember that as well, so no Mandela effect, and I've been trying to find it too.
It had a graphical interface in which you could specify the probability distribution of an event, and the graph would resolve and show the calculated distributions of all the steps.
curtisblaine 5 hours ago [-]
Pretty sure it was getguesstimate.com
ziddoap 17 hours ago [-]
It's interesting, for sure, but I'm not buying that this is much better than just setting up some extra columns. The two arguments presented against extra columns are 1) editing time and 2) space.
1) Editing can be sped up, albeit with a learning curve, so maybe I can see that one. At least at my proficiency, I doubt I'd be saving any material amount of time. I can think of scenarios where this would actually be slower for me. People with less experience in spreadsheets might find some time savings, it's hard for me to gauge that.
2) Space, on the other hand, I'm not really buying. You replace extra columns with a wider column and a bespoke UI piece on the right-hand side. I can see columns A:H in the column example, and columns A:B in the final Ambsheet example (which, funny enough, is displayed as a 2x3 spreadsheet -- why not just have those 6 cells right in the sheet?).
This also seems much more difficult to do visualizations from. Graphs, conditional formatting, etc. But that part isn't discussed, so there may be a solution for that which isn't shown.
It's interesting enough that I would enjoy playing around with it. I very well could just be entrenched in my habits.
globalise83 7 hours ago [-]
"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."
Presumably this tool only works for relatively small possibility spaces due to the problem of combinatorial explosion?
rachofsunshine 5 hours ago [-]
As long as the operations you're doing aren't too numerically unstable, you could have it use monte carlo methods for moderate numbers of inputs. Sample, say, 10,000 values across the inputs and output averages, output min, 5th percentile, median, 95th percentile, max. Right now I do this either with Python or some auxiliary column full of random values.
If you were doing it that way, you could also set distributional values for the variables. Rather than x = {500, 1000}, you could set (say) X ~ N(750, 100) and have it pull samples from that distribution. If you really wanted to get fancy you could take advantage of known results on operations on distributions to keep things exact for a lot of common calculations, then turn to numerical methods for uglier operations (at which point you're basically building a wrapper around one of the usual statistical libraries, I suppose).
(EDIT: apparently this already exists, see other comments in this thread.)
WillAdams 15 hours ago [-]
This would be a lot more interesting if these folks would release their product/code.
are very interesting and promising, but not available for use/experimentation.
spiralganglion 15 hours ago [-]
We recently open sourced Inkling [1] (which is a spiritual successor to Crosscut) and the iPad Wrapper [2] app we used to prototype Crosscut, Inkling, and other projects. We're also going to share some more similarly-interesting non-essay output from our research in the near future.
and appreciate anything which could be shared which might be helpful or inform development.
I will note that if you would try either Android or a Windows tablet w/ a Wacom EMR stylus you should be able to get the sort of input you want --- or maybe on a Mac w/ a Wacom One Gen 2 13 inch or Movink 13 or Cintiq w/ Touch display?
jFriedensreich 5 hours ago [-]
I think the best solution to this was Quantrix. The multi dimension, multi scenario modelling just felt right and natural. It still exists but seems to be locked into a different price point and target audience and outdated app UI. Someone should make an airtable like experience for what quantrix was.
WillAdams 4 hours ago [-]
Yes, but it was Lotus Improv (and the earlier text-based spreadsheet Javelin) which did it first.
which I wish someone would fork and get running again.
interestica 14 hours ago [-]
This + sports analytics.
So much of sports is about slightly different outcomes of related scenarios. There's not much difference between a home run and a flyball caught at the wall. But the data shows something very distinct and ignores the other almost-as-likely outcome. Amb values has the potential to give new ways of analyzing performance and outcomes.
(What I'm saying is get a big sports team to fund you)
arunaugustine 6 hours ago [-]
This is exactly what I loved about the Causal app (no affiliation). They started as a general purpose spreadsheet with 'Amb' cells built-in, though later on they seem to have converged on the financial modeling space.
Not a surprise that this comes from at least one person involved in dabbledb twenty years ago (later acquired by Twitter). Avi Bryant, now sponsoring very interesting work.
thedays 5 hours ago [-]
dabbledb was awesome. Simple but powerful. I still miss it and haven’t found anything like it to replace it at a reasonable price.
This is a neat idea, and one that I frequently find a need for. (I was curious how it'd work, so I copied and pasted the description and screenshot of the UI into Claude and in two prompts it built a working React app prototype.)
I think it’s a neat idea (maybe because I was talking over ow to do something similar in Python, specifically for financial analysis). Definitely feels like an early stage, but I would love to see where it goes.
phonon 17 hours ago [-]
Excel has "Scenario Manager", "Goal Seek", and "Data Table" for What If Analysis. In particular, "Data Table with Multiple Arguments" seems like a similar/more powerful version of what you are doing, which you don't address.[0]
This was my thinking too - data tables can often do this.
The negative of data tables is that it massively slows down your spreadsheet, and cause some weird errors/glitches, but it’s essentially the same thing.
world2vec 7 hours ago [-]
And "Solver", in case you need something really sturdy.
ggm 13 hours ago [-]
How could you do linear optimisation over unrelated terms in this? How could you implement the well known decision support methods from Operations Research in this? How does it compare to rows, or tables and extra columns?
"what if a single cell could hold multiple values at once?"
Somebody is rediscovering why slide rules are nice. you get your answer but you simultaneously get nearby answers as well.
I am not sure what the modern ui equivalent would be. a plot?
tmoertel 13 hours ago [-]
This is like probabilistic programming but with implicit uniform distributions over the supplied values.
anonzzzies 10 hours ago [-]
Only from the title I thought of mr Litt. I love work like this.
_blk 15 hours ago [-]
If I may ask, what spreasheet program is running underneath?
rvba 10 hours ago [-]
Being able to have multiple scenarios in cells is an interesting idea.
Although the thing is, that it would be nice to have weights too.
Usual answer is to keep various options in separate columns (e.g. worst case, normal case, best case), problem is that often you want more scenarios and some have 3 options while other have 10
ai-christianson 17 hours ago [-]
At this point I think I'd just resort to throwing together a quick script in Python or Julia to run the scenarios.
Rendered at 17:50:33 GMT+0000 (Coordinated Universal Time) with Vercel.
A real budgeting scenario might have 2 * 3 * 7 * 4 * 5 * 3 * 9 * 2 * 5 = 226,800 possible outcomes, so the obvious question is what UI do you use to consider/narrow down that beast? You need tools that let you slice and dice that output based on different sets of criteria.
The simplest might be something like, "rule out all solutions that total more than $5000" but you also need things like "I will only pay for a total of 3 streaming services, rule out all scenarios with more than that" and "if I choose not to have a car, then I have to get a transit pass and an e-scooter"
I almost feel like, as clever as this is, the harder problem is the one I describe above.
It feels like user interface innovations all stopped/stagnated in the early 2000s and we've just spent the last 20 years adjusting the previous 20 years of desktop UI paradigms to the mobile and tablet space.
It's great to see people still working on interesting problems like this
I'm still trying to find it: anyone remember this, or did I just Mandela Effect myself? I'm not sure whether it computed outputs analytically or through simulation.
(Hell, I might just recreate it on my own...)
- GetGuesstimate[1] is probably the most polished, but development on it is slow and it doesn't lean into the same interaction patterns that I think make actual spreadsheets popular.
- There are various plugins for the proprietary Microsoft Excel that can do this. I don't remember their names off the top of my head, but sometimes "Monte Carlo" is the phrase that unlocks many searches around this. (Crystal Ball is a name of a plugin that pops into my head.)
- One can hypothetically do this in vanilla spreadsheets, by generating arrays of random values and serialising/deserialising to space-separated strings in a cell. This is very, very slow, though.
- I have started working on something I call Precel[2] which is not very polished but I think the basic idea (if not the current implementation) can be a solid foundation for a proper spreadsheet-for-full-distributions.
[1]: https://www.getguesstimate.com/
[2]: https://git.sr.ht/~kqr/precel/tree/master/item/README.md
Last time I used it was about 3 years ago - I used it to estimate of how much we'll end up spending on renovating the apartment we were planning to move it, and then updated it as the work progressed to make decisions like whether we can afford some optional elements of the plan, if we'll need to get a loan to finish everything, and how much.
Structurally, I basically broken it down by rooms, categories of work and stuff to buy - building materials, furniture. Initially, I just guesstimated (!) the costs based on gut feel, or web search. I'd start with things like: "my mom's apartment had the same proportions and painting it costed $X last year, ours is about Y% larger" -> one node "Painting walls & ceilings except kids room", value = PERT distribution between $X and $X * (1 + Y%) * Fudge factor. After we picked the paint, I'd just split that node into a) labor and b) material, the latter split into surface area (known), bucket cost (known), buckets per sqm (distribution based on values from the back of the bucket) - getting a much narrower probability distribution on the material (and total) cost. Stuff like this for every aspect - I'd just model the things I know.
It was a bit of extra work, but it was instrumental for keeping the costs in check and gave me great peace of mind. It also made it obvious which aspects were driving the costs, which were most risky - wide distributions going into large amounts, which I prioritized pinning down the costs of - and where it's worth to look for savings or alternatives.
Also, it demonstrated the usual case of webapps being optimized for demo examples instead of real use cases. My renovation planner quickly accumulated about a hundred nodes, most of which were computing probability distributions (via ~1k samples Monte Carlo). That slowed the UI down to a crawl, and many times updating a node would create a cascade of errors down the dependency graph, as the diminished performance started surfacing race conditions in the evaluator.
(You may ask, wouldn't it be better to do that stuff in code? Not really - half of the value was in having every part of the math as a node in visual, interactive DAG, that displayed histograms of the probability distributions at every node, so you could just see everything all the time.)
Still, I loved it, and I really wish someone made an actively supported product like this.
https://lumivero.com/products/at-risk/
https://news.ycombinator.com/item?id=42450913
https://projectionlab.com/
1) Editing can be sped up, albeit with a learning curve, so maybe I can see that one. At least at my proficiency, I doubt I'd be saving any material amount of time. I can think of scenarios where this would actually be slower for me. People with less experience in spreadsheets might find some time savings, it's hard for me to gauge that.
2) Space, on the other hand, I'm not really buying. You replace extra columns with a wider column and a bespoke UI piece on the right-hand side. I can see columns A:H in the column example, and columns A:B in the final Ambsheet example (which, funny enough, is displayed as a 2x3 spreadsheet -- why not just have those 6 cells right in the sheet?).
This also seems much more difficult to do visualizations from. Graphs, conditional formatting, etc. But that part isn't discussed, so there may be a solution for that which isn't shown.
It's interesting enough that I would enjoy playing around with it. I very well could just be entrenched in my habits.
Presumably this tool only works for relatively small possibility spaces due to the problem of combinatorial explosion?
If you were doing it that way, you could also set distributional values for the variables. Rather than x = {500, 1000}, you could set (say) X ~ N(750, 100) and have it pull samples from that distribution. If you really wanted to get fancy you could take advantage of known results on operations on distributions to keep things exact for a lot of common calculations, then turn to numerical methods for uglier operations (at which point you're basically building a wrapper around one of the usual statistical libraries, I suppose).
(EDIT: apparently this already exists, see other comments in this thread.)
https://www.inkandswitch.com/crosscut/
https://www.inkandswitch.com/inkbase/
are very interesting and promising, but not available for use/experimentation.
[1] https://github.com/inkandswitch/inkling
[2] https://github.com/inkandswitch/wrapper
I'm peripherally involved in a similar project:
https://github.com/IndiePython/myappmaker-sdd
and appreciate anything which could be shared which might be helpful or inform development.
I will note that if you would try either Android or a Windows tablet w/ a Wacom EMR stylus you should be able to get the sort of input you want --- or maybe on a Mac w/ a Wacom One Gen 2 13 inch or Movink 13 or Cintiq w/ Touch display?
There is also the opensource Flexisheet:
https://github.com/NattyNarwhal/FlexiSheet
which I wish someone would fork and get running again.
(What I'm saying is get a big sports team to fund you)
[0]: https://causal.app/
[0] https://www.xelplus.com/excel-what-if-analysis-data-table/
The negative of data tables is that it massively slows down your spreadsheet, and cause some weird errors/glitches, but it’s essentially the same thing.
Somebody is rediscovering why slide rules are nice. you get your answer but you simultaneously get nearby answers as well.
I am not sure what the modern ui equivalent would be. a plot?
Although the thing is, that it would be nice to have weights too.
Usual answer is to keep various options in separate columns (e.g. worst case, normal case, best case), problem is that often you want more scenarios and some have 3 options while other have 10