The Spreadsheet with Calculation Trails instead of Algebraic Formulas

What can two trails do? The work of 100 formulas in a spreadsheet. The example lower down.

This program is a personal passion with roots that date back to a product named T/Maker that I wrote in 1979.

Thanks for the visit.

Peter

Links:

Inspiring Theme Song

And The Other One

FAQ Page

Videos (in progress) I would suggest that you first read this page until you get to "Some screens and explanations" to understand the basic syntax of trails. Nonetheless, take the "four minute look" where it is linked below.

MightyMath is written in java and runs on Mac / Apple Computers, Windows, and a number of other platforms.

Working Version: There is an "in progress" version available for download. Feel free to try it at this page link.

MightyMath can can solve a wide range of problems. You can do simple arithmetic on rows and columns that will bring back memories of elementary school. You can do more complicated calculations in the sequence order style of a hand calculator. You can even do simulations with logical branches and iterations. In all cases, you will never write a formula that requires a knowledge of mathematical precendence or relies on parentheses (aka, algebra).

MightyMath has different screens to do different tasks. The first five buttons on the toolbar shift between them--data only, calculation trails, formats, lines, and graphs. With a dedicated screen and handy Assistors, tasks are quickly accomplished. For everyday math problems, it feels more like a paint program. Take this four minute look to get the idea. I have been told it communicates more than half the text on this page.

MightyMath can be used by most anyone to keep their books, plan their future, prepare invoices, estimates, or compare alternatives that translate into numbers. The overhead of doing calculations is so minimal, it's worth firing up for a problem involving just a few numbers. It is not a replacement for use in the business world. That die is cast. But in your own world, you may find it quicker and quite relaxing to use. Maybe even fun. With no hidden formulae, it's less likely to produce a mistake. Even some hardened Excel users will admit that the painting approach, the way calculations are reused, and the availablitiy of memories you name yourself are refreshingly "cool"ideas.

You probably learned math by starting with addition in elementary school. From there you progressed to subtraction, multiplication, and, much harder, division. Along the way you solved problems expressed in this fashion.

2 8 6 12 3 7

+2 +9 -3 -8 x 8 x 9

The first pocket-sized calculators in the seventies, picked up where this approach left off. A little window showed a current value in the calculator. To add 20, you could type 20 and push the "plus" button. You could continue with more values and more operators and more intermediate results to your heart's content. There was never a formula. This is a close model to the way MightyMath works. If you look at the "Simple Arithmetic" example you will see that putting a plus sign next to data cells adds the adjacent value to MightyMath's calculator.

All spreadsheets give cells a name based on their column/row intersection and (all but MightyMath) require a formula using those names. Parentheses are used in the standard approach to control the order of operations. That formula is put in the cell where you want the result to be. A formula of B1 + B2 would be put in B3 for the simple example, and the screen would show the value 7 instead of the formula.

The truth be told, you could have put "+B1+B2=" in cell B3 in MightyMath. You could also have put "+B1+B2=B3" in cell Q45 and got the job done. MightyMath tries to accomplish calculations in the most simple, obvious way without rejecting possibilities. It's not trying to force you into one and only one way of thinking.

The use of cell names and hidden formulae does, however, seem like overkill for this sort of problem. In MightyMath, the calculation requested is written in elementary school, visual style. As well as little windows for the values (like everybody else), MightyMath has little windows for the calculations as well.

Now suppose you wanted to do this same arithmetic across three columns to include neighboring fruit stands. A typical spreadsheet can modify the initial formula with a shortcut, so it can generate more hidden formulae to do a similar calculation in other locations. Thus cell C3 would get the formula C1 + C2 and cell D3 would get the formula D1 + D2. And both new formulae would be replaced by the values they calculate.

MightyMath offers a differenent approach. You get a darkened square cursor and simply click it on the places where you want to restart the same series of calculations anywhere in the spreadsheet. What I like about MightyMath is that this screen represents my problem in the way I conceived it. Nothing is lost or added in translation. There is an example, much later, where nearly 100 made-up formulae in the standard spreadsheet are eliminated.

Some quick terminology: The above calculation is called a trail. A trail is composed of a series of ordered steps. Each step can have one or many operations to perform. They are numbered as you enter them, but you can change the order if necessary. Some trails are entirely vertical or horizontal, but the steps in a trail can wander all over the place. A single trail can produce many results in different cells incorporating many operations and equal signs. It is not a formula which has a lifespan of only one equal sign.

One of the nice things that came along with hand calculators was a button with an "M" on it. That stood for "memory." In essence, it gave you a sort of second little window that you could not see. You could put a value into that window and fetch it back as needed. It was great for at least one intermediate result. Well, you can do the same thing in MightyMath, but you can pick your own name (with a few limitations), and you can have as many as you want.

Some syntax notes: A step in a trail, for the most part, contains a series of operators followed by an associated value (or NOT). For example. "/6" is in an instruction to divide the value in the calculator by 6, that's the value associated with the division sign. When an operator has no associated value, it is interpreted to reference the value to its right in the white data cell. Consider this "+ /5 *9 +32". The plus sign has no associated value, so that is an instruction to pluck the value from the cell, add it to the calculator (assume zero for now), divide by 5, multiply by 9, and add 32. If the value in the cell were a temperature in centigrade, the value in calculator would now be the Fahrenheit equivalent.

Memories (in terms of syntax) are just associated values like the constants in the previous paragraph except they can also be used after an equal sign to store a value in them. You cannot put a constant number after an equals sign or it wouldn't be very constant. Here's the example used on the green board above:

Let's say I wanted to calculate the cost per square inch of something circular from its diameter. Here's this solution: row 1 holds the diameter and step 1 calculates the area from it. Put the diameter in the calculator with the + (no associated value here), /2 to get the radius, ^2 to square it, *pi to multiply by pi (a built-in memory), and =area to put the result in the memory named "area." Step 2 puts the cost in the calculator, and step 3 divides it by the area and outputs the value to the cell (no associated value).

Memories help keep things simple and straightforward. And a memory name you choose is more intuitive than a raw cell name. This trail uses no cell names which makes it an excellent template that can be reused with a click of the mouse starting from other locations.

Along with constants and memories, you will sometimes find a single letter used as the associated valued for an operator. Most spreadsheets have rows that derive values for a row from data on that row. The single letter refers to the column on the row where the step is being used. Here's our Per Inch example turned in another direction. I purposely put all the activity on a row that has no numbers and did the whole calculation in one step. It's not the way I would usually do this, but it highlights the utility of this feature.

The associated values that represent the values in the columns are the single, capitalized here, letters which are the column names. I did put the area in a memory "sq". Notice the step is defined on the row of headings, but only used on rows 2, 3, and 4. All this looks like it ought to be illegal, but it isn't. MightyMath doesn't eliminate options for its own convenience. This also forms a template that is easy to reuse on other rows without any ambiguity.

Let's summarize, the bread and butter "associated values" that you should know. Remember, no associated value means the adjacent cell.

1) Constants: 12.5, 91650

2) Memories: area, sq, profit, gross, you name them.

3) Row relative columns: C, g, E

4) Specific cells: Q21, b18 (not recommended for templates to be reused, they create confusion)

Clearly, MightyMath does not view your spreadsheet as nothing more than a matrix of pigeonholes. Some spreadsheets are. But most are not. MightyMath allows you to take advantage of the structure you have in a remarkably intuitive way. This separation between the calculation itself and where it is used is unique, I believe, to MightyMath. Reusing a calculation by clicking at another starting spot is about as easy as it can get. And your intentions are clear to MightyMath and will be clear to you the next time you revisit your spreadsheet.

If you did not take the four minute look please do it now.

Some screens and explanations:

As you saw in the quick look, MightyMath has different screens to do different tasks that you can move through quickly. The calculating trails screen has two cells for each column as do the formats and graph screens. One holds the symbols. The other holds the data which can be edited on the screen as well. The top of the first screen below shows the Lite Assistor for trails from which symbols can be fetched as a cursor and clicked into place or more complicated commands can be built. You can also edit the green cells directly. There is a demo video on using this Assistor and its bigger brother on the videos page. (Link at top of this page)

This spreadsheet presumably belongs to a new car owner who wants to track his MPG. There are three trails shown below. Maybe a minute of work. You probably wouldn't have to write them all, but the typical spreadsheet would have 9 hidden formulae for this spreadsheet.

When it came to adding a new row, you could select the last row above the total, choose Insert Cloned Row(s) from the Row/Col menu, and enter data. These trails would all be updated correctly as would formats, lines, and even any graphs you might have specified. There is also a video of Cloning that uses the example of calculating means, standard deviations, and a correlation coefficient between two variables. Tough stuff can be done.

Below is the more weighty version of this Assistor. You can calculate a mortgage payment with six clicks. One on "mpy" to start the cycle, one on a cell with the amount, one on a cell with the interest rate, one on a cell with the years, and one on the cell where you want the result. Then one on the Compute button. A similar approach is used to calculate present value and growth rates. You will not, however, find the full variety of built-in functions of a long established spreadsheet. It's not that you cannot calculate anything, it's just that you have to solve it yourself (at least for now).

You can have multiple steps in a trail associated with the same cell. When you click to edit a green cell that already has one or more steps, you will get a choice for what to do. When editing a green cell, you can edit the step's symbols and/or its number if you want to change the order of steps.

You can also work from a list of all steps in a trail which is an easy way to review your trail in sequential order or modify a step with no questions asked. Just select the step and push the button of interest. The screen will be adjusted to show the correct step if you want to edit it, assuming it is not already on the screen.

After a quick look at the other dedicated screens, there is a section at the end showing solutions to more challenging problems and a great tool that helps you find mistakes--the Debugger. I am hesitant to overwhelm anyone with solutions to problems that are beyond those they expect to encounter.

Setting formats is easy. There is an Assistor to create new ones, but most of the time you can get one directly from the formats toolbar. Get the cursor for it and paint it into the secondary cells (blue for formats). You can even select an area of cells and fill the whole area with a single click. The Assistor is shown in the screen below.

Decorative lines can make a table more understandable and attractive when you print it. You probably already have an idea how that might look. Again, you can paint with a cursor and/or fill areas. The screen is below. There are no symbol cells because you can see what's in place without them. You can also show these lines on the data screen if you have developed some sort of app for others to use.

And then there are graphs which I probably should have called charts. What do you do? As expected! You get a cursor or fill an area with symbols that represent the content of those cells. Here L's are for labels and V's are for values. About 30 seconds of work. And there are always defaults for text elements, so you can just mark values to start with. Some charts allow up to three series of values so there are V1, V2, and V3 cursors. Actually there are bunch more cursors. It all depends on the type of chart you are making. When you click on the graph type, the parameter box will fill with the appropriate ones. If you change the chart and have already specified values, Mighty Math will try to adapt the values of one chart to a different type. It's pretty good at that, but some situations are impossible--what to do with an X-axis on a pie chart for example?

Here's the pie chart for the above effort. The graphs, like built-in functions, are more limited than in a long established spreadsheet. But they can provide insight or help make a point like any others. And you can call them up from the data screen where you might be discussing some numbers that support your conclusion. This is a package I obtained from JFreeChart (very grateful for that). Once the image is up, options are controlled by that package and offered with a right mouse click. I have to admit, I have not studied them.

Here is the print box for tables (not graphs) which tells you how many pages wide and pages long the output will be. You can reset the parameters that affect the size and recalculate. If you are just interested in keeping historical paper records, you can save paper and ink this way. You can make some nice forms too--not that I want to contribute to the number of forms in the world though I would like more space to actually write the address! Here's a (scanned) invoice printed with some lines. New rows could be added by cloning so work could be done on the data screen only with additional rows cloned.

There may be a person here or there who is interested in the ability to do simulations like the roulette example later. There might be a few more interested in the other example that saves a hundred formulae on a some business style rows. Everyone should probably take a glance at the Debugger screen. It's a great tool for finding mistakes.

The major leap here is the way calculations are performed and represented on the screen. The ease of use across the various screens is nice as well. It can be used be youngsters (pre-algebra) and adults that claim they "don't do math." The price will probably be around $5 to purchase at this site. I wonder about and would like to pursue relationships with school districts. I believe MIghtyMath has educational value.

There is a "work in progress" demo version now that is missing some features, but appears to be solid across all basic functions. Your a welcome to pass a link to any and all.

More Complicated Features And Problems

Wherever something is likely to lead to a typo or requires you to remember a keyword or a special syntax, there is typically assistance available. Here is the Assistor for a "when clause" which allows you to perform calculations or take various actions based on a logical test. It's not hard to make one, but why not get it right the first time while seeing what the options are? The number of possible combinations is in the hundreds.

As one example, you could put a category in a column and use certain trails only on certain categories. All trails, nonetheless, could be marked to apply to every row but would only do their thing on rows which are the correct category. Thus rows of any category could be inserted anywhere and would be correctly calculated without requiring any modifications to any trail. In the statement below EXTRAIL is short for "exit trail." All the following steps in the trail would be skipped for, say, an "adult." "<>" stands for not equal. Think of it as less than or greater than, so therefore not equal. Other comparisons are self-explanatory.

when text <> "child" extrail

I thought we should take a look at something that might seem to be a bit more business oriented. Below is such a thing with various derived rows from two rows of data. Almost 100 numbers are derived which would be almost one hundred cells with formulae regardless of who wrote them or how.

Well, there are two trails in MightyMath for the almost 100 derivations. Let's take a look at the first one which calculates the cumulative and monthly average to date for both years. The exclamation point ( ! ) enters a value into the calculator. A plus sign (+) actually adds the value. If you ended last step with an equal sign (=), the calculator would already be zero, but if you really are starting from scratch, the ! is the preferred choice. The hash sign (#) outputs the value in the calculator but does not set the calculator back to zero. Sometimes you want to output values and pass them on. Sometimes you don't.

The first step below enters the value in column B (no associated value), adds the value in memory csum (initially zero), and puts that total in the csum memory. This trail is reused first across the twelve columns of 2018 before it is used across the 12 columns of 2019. As we go though the columns, we have csum up to date for the column we are on. The order in which the trails are reapplied is always left to right within top to bottom. For the average to date, I will need to know what to divide csum by. In the second step, I have put the cumulative in the correct spot first (= has no associated value). Then I have used another memory "! count + 1 = count" to count columns for the divisor needed to get the average to date. The third step does the division and outputs the value.

When I first computed this spreadsheet the second set of numbers were far to high. The problem was easy enough to find. The memories csum and count started off with the values left over from the first block of rows. Thus I added a fourth step to set csum and count back to zero after the 12th month was calculated. The second trail is below.

The second trail calculated the monthly increase and percent increase. That was a snap. I did have to visit cell B2 twice. Once to subtract it from cell C2 to get the raw increase and once to divide the increase by B2 to get the proportional increase. A multiplication by 100 got me the percent. The bright green square, BTW, is an indicator that the cell has multiple steps. You can also see that in the helpful list of all the steps discussed earlier. MightyMath tries to keep all related information in your face and not hidden.

When there is a problem, like the one I had, it's typically in a confined area and takes a tweak to fix. You will soon see a debugging tool that is a great feature in MightyMath.

In summary the above two screens in conjunction with the darkened green cells do the work of nearly 100 formulae in a traditional spreadsheet. And if you plan to do 2020 and 2021, it will be closer to 200 formulas.

Let's take a look at a spreadsheet which simulates the optimal strategy for roulette and demonstrates that MightyMath is ready to rise to most any level you want to go to. In this example, you enter what you want to risk, how much you want to make, and a maximum number of spins. MightyMath will bet on your lucky number every time with a dollar amount that achieves your goal on the first win. The more you risk and the less you want, you can win much more often than not. Of course, when you do lose, it's a bummer. Note below that direct references are made to individual cells like B7 or B4. The trails here are for one task only and not needed as templates. Also, you can see the cells involved are all on the same screen, so a mistake is much less likely. The particular trail below sizes the bet which is put in a memory as there is no cell for it. "Cel" in step 4 stands for "ceiling" which is the first integer bigger than the number in the calculator. You can't bet a half chip. Nor can you bet more than you have left--step 5.

I wonder if many spreadsheets could even do this sort of thing? This spreadsheet is not child's play, but I believe most everyone could look through the trails and understand how it works. Others can solve similar problems or even more complicated ones. It does restart itself after each spin until you're broke, won the desired amount, or played the maximum number of spins specified. A variety of such options were shown on the weighty Assistor under the heading "Flow Control." If you put various restarts in a spreadsheet and it goes on for more than 15 seconds, Mighty Math will give you the opportunity to abort with some restart statistics shown. This can happen if you never get to an EXIT instuction!

And when you do most anything, it's nice to have a way to find mistakes. MightyMath has a debugger that can walk through calculations, trail by trail, step by step, even operator by operator. It shows pretty much everything about this moment in this table including recent references made to other cells and memories. At this point in the above example, 13 bets have been lost. We're down $136 and betting $12 a spin. That would get us to our target profit of $300, but the bet will go up if we continue to lose. It's fun to take a spreadsheet and walk through it even if it is working correctly.

I am going to mention one more "expert" feature that shines in some rare situations. If you end a memory name with a question mark (qfactor?), the question mark is replaced by the column in which it is used. This means you can have a single trail used down all columns with a "= qfactor?" and have a "! qfactor?" to fetch the correct value for that column way down the spreadsheet in a completely different trail.

Key Words and Phrases: Mighty Math, simple easy spreadsheet, amazing, inexpensive, cheap, son of T/Maker, table maker, two dimensional calculator, arithmetic based, no algebra, straightforward, iterations, goal seeking, applications, programmable, fewer mistakes, not error prone, pleasant look and feel, consistent, efficient, common problems, mortgage payment, growth rate, present value, blackboard, green board, white board, elementary school, multiplication tables, division tables, middle school, high school, kids, children, adults, home schooling, math skills, add, subtract, divide, multiply, subtraction, division, multiplication, learning, memories, fun, unconventional, wonderful syntax options, power and ease,

make your own templates, home budgeting, home finance, cash flow, invoices, project estimates, household templates spreadsheet for the whole family, unique, the unspreadsheet spreadsheet.