Patrick Joyce

August 5, 2013

Great New Software: Calca

Calca is a hybrid Markdown editor and calculator. It's awesome.

Screenshot of Calca


First I should explain a few things about Markdown. I love Markdown. It is an "easy-to-read, easy-to-write plain text format" that converts to HTML.

Any writing I do longer than a paragraph is generally done in Markdown. This post was written in iA Writer. I compose notes and emails in markdown in TextMate 2.

Recently, I wrote a fairly formal 20-page report. I wrote in Markdown, then converted to LaTex using Pandoc, and then generated a PDF by applying the open source tufte-latex class. It was a much better writing experience than using a word processor and I was very pleased with quality of the output.

My friend Dave Copeland wrote his entire book in Markdown.

Markdown is great because it lets you organize and lightly format your thoughts, but by only providing very simple formatting you're forced to focus on what you're writing. There is no fiddling with fonts when writing something in Markdown. Because Markdown is plaintext it plays nice with version control you can use whatever text editor you prefer.

Markdown is a simple idea done well.

Markdown + Math = Calca

Calca takes Markdown and adds math.

An engineer named Frank Krueger made Calca to solve his own problem. As a fellow engineer I have similar problems. I imagine most people who would read my blog do too. This interview with Jason Brennan is an interesting look into Frank's goals in building Calca.

Why Calca is Great

Here's where Calca becomes useful: while writing I often want to do some basic math. I may be writing a story for an engineer to implement a new feature and need to justify why I'm asking them to do this work. I might write something like this:

For instance, if we were able to reduce cart abandonments by a small number we'll see a meaningful revenue lift

number of customers who abandoned cart last week = 1,395
average order value = $35
weekly revenue lift(conversion improvement) = number of customers who abandoned cart last week * conversion improvement * average order value 

weekly revenue lift(1%) => $488.25
weekly revenue lift(5%) => $2,441.25
weekly revenue lift(10%) => $4,882.5

* All numbers made up

In the past, I would write Markdown in a text editor and either do the calculation in my head (which is embarrassingly error prone), open up irb (more specifically a rails console from one of the applications I'm working on), or use the calculator function in Alfred.

Now I just write in Calca and the calculations happen as I type.


For the last couple of months I've been using Soulver for this type of calculation (based on Marco Arment's near constant recommendations for it). Soulver was a big improvement over my previous "system", but I still found myself fighting with it. The biggest problem was that Soulver still added a different file to edit. If I wanted to paste the calculations into a Markdown file—which I almost always did—I'd lose the dynamic benefits of Soulver. So while I liked Soulver, I still found myself slipping back to my old ways of writing Markdown in a text editor and doing calculations in another program.

Excel is another common choice for this type of ad hoc calculation. Excel is an extremely powerful piece of software. One of the guys on the mobile team at LivingSocial was in finance before joining HungryAcademy and it is amazing to watch him use Excel. But Excel has never felt natural to me.

Calcal feels natural.

Calca is (another) simple idea done well.

That is the highest praise I can give software.

Go buy it

Calca is $4.99 on the Mac App Store. There also is an iOS version available for $2.99 (universal iPhone and iPad).

That is an insanely low price for something so incredibly useful. Try it out.

More Articles on Software & Product Development

Agile With a Lowercase “a”
”Agile“ is an adjective. It is not a noun. It isn’t something you do, it is something you are.
How Do You End Up With A Great Product A Year From Now?
Nail the next two weeks. 26 times in a row.
Build it Twice
Resist the urge to abstract until you've learned what is general to a class of problems and what is specific to each problem.