ToFilter spreadsheet showing a master task list, top 10 percent list, shit list, and organization list.
ToFilter
Compress every attribute of a task into one score so the best next thing to work on is always obvious.

What It Does


Screenshot of the ToFilter Master ToDo sheet with separate regions for Top 10 percent, Shit List, and Organization List. The main view: a sorted Master ToDo on the left, with automatically generated Top 10%, Shit List, and Organization List views on the right.

Why I Built This

After reading Rory Vaden’s Procrastinate on Purpose and his Focus Funnel (Eliminate → Automate → Delegate → Procrastinate → Concentrate), I kept thinking: “What would this look like as a concrete algorithm?” I wanted something that didn’t just tell me to work on what matters, but actually did the filtering for me.

I also had a growing pile of tasks that all felt important: school assignments, side projects, reading lists, and random life admin. Manually reprioritizing everything was draining. So I went a little overboard and tried to encode every attribute that might matter into one calculation. ToFilter is the result: an experiment in building a ruthless, numbers-driven gatekeeper for my todo list.


Handwritten diagram of ToFilter variables and formulas including value, effects length, and urgency multipliers. Early notebook sketch: turning concepts like “value,” “urgency,” and “how long the results last” into actual formulas.

How It Works

ToFilter lives in a spreadsheet with three sheets: Input List, Master ToDo, and Terminated List. The Input List is the only place I type data; everything else is derived from formulas.

Each task has a Length estimate, plus sliders for Benefits, Detriments, and Effects length (how long the results matter, in days/weeks/months/years), and an optional Due date. From there the sheet computes:

Urgency is handled separately. If a task has a due date within the next four days, it gets a Days Left value from -1 (overdue) to 3. Each bucket is multiplied by an Urgent Multiplier derived from percentiles of the current VROTI distribution, so an overdue task gets boosted into the very top of the list while something due in three days gets a smaller bump. The final Score is:

Score = VROTI × (Urgent Multiplier based on Days Left)

The Focus Funnel questions live alongside this. Four yes/no columns drive a recommendation field: Eliminate if it’s optional, Automate if it can be systematized, Delegate if someone else can do it, and Be Patient if it can wait. Only the remainder make it through as “Do it.”


Refined notes on days-left multipliers and how overdue tasks should rise in priority. Refining urgency: tuning days-left multipliers so due and overdue tasks jump into the top percentiles without overpowering everything else.

Impact

What it changed for me:


Challenges & Solutions

The hardest part was collapsing so many dimensions into a single number without letting any one dimension dominate. Early versions multiplied everything together, which made long-term tasks absurdly powerful. Switching to a mix of addition, scaling factors, and percentile-based multipliers made the system behave more sanely.

Another challenge was urgency. If you boost due dates too aggressively, everything becomes a fire drill. If you don’t boost them enough, important-but-not-enjoyable work sinks. The current solution only applies urgency multipliers in the last four days before a due date, and scales the multipliers from “overdue” down to “due in three days” so tasks rise smoothly instead of all at once.


What I Learned

Building ToFilter taught me how slippery “priority” really is. You can ’t capture every nuance in a formula, but forcing myself to define variables like Value, Effects length, and Accurate Length made my thinking about tasks much clearer. It also gave me hands-on practice translating fuzzy productivity ideas into concrete spreadsheets and formulas.

Future improvements:


Links