No-Spend Day Streak Tracker

Tap once a day to log Perfect, Essentials-only, or Spent. Keep two streaks alive, with one freeze per month to forgive a slip.

Today

How did today go?

1 freeze available this month refills on the 1st

Streaks

Perfect

0

best: 0

Clean

0

best: 0

This month

✓
0
Perfect
◐
0
Essentials
✗
0
Spent
❄
0
Frozen
~$0 saved
based on $25/day discretionary baseline

Calendar

May 2026
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Perfect Essentials Spent Frozen ✗

Settings

How it works

  1. Log today. Tap one of the three tiers at the top of the page: Perfect (zero dollars out today), Essentials (fixed bills, groceries, transit — the stuff you couldn't skip), or Spent (anything discretionary — a coffee, an impulse Amazon click, takeout).
  2. Two streaks count up in parallel. The Perfect streak increments every consecutive day you mark Perfect; the Clean streak increments on Perfect or Essentials. A Spent day breaks both. Missing a day breaks both (with one exception — see below).
  3. One freeze per month protects a slip. On the 1st of each calendar month, your freeze count refills to 1. When you tap Spent, you can choose to spend the freeze instead — the day stays on record as a spent day but doesn't break either streak. Freezes also work retroactively: tap any past Spent day in the calendar to apply one.
  4. Watch the dollars add up. Enter the dollar amount you'd typically spend on discretionary stuff on a "Spent" day in Settings. Each Perfect or Essentials day this month adds that amount to the dollars-saved estimate at the bottom of the stats card — both kinds of day mean you didn't spend on anything discretionary.
  5. Tap the calendar to edit any day. Forgot to log Tuesday? Tap a past cell to set its status, use a freeze, or clear it. Future days can't be edited.

Why two streaks instead of one

A pure "no-spend" definition is hard to live with — rent, groceries, and a metro card aren't really discretionary, and treating them like a failure makes the app feel adversarial. But collapsing essentials and impulse spending into one "okay-ish" tier defeats the point. The compromise here is two tiers of "good": Perfect days are the aspirational ones (zero dollars out, period) and Essentials days are the realistic ones (you didn't spend on anything you actually chose to).

The Clean streak rewards consistency on the realistic standard. The Perfect streak rewards the genuinely lean days. Most users find their Clean streak grows steadily while their Perfect streak resets often — which is the honest signal. Watching both gives you a fuller picture than either alone.

Why a freeze

The harshest version of a streak tracker is the most pure: one slip and you start over. It works for a few hundred days, and then real life — a friend's birthday dinner you couldn't decline, a flat tire — wipes out months of progress and the app gets uninstalled. A monthly freeze isn't a free pass; it's a recognition that streak-purity and real-life resilience are in tension, and the latter wins long-term. The freeze refills monthly rather than accumulating, so it stays a real safety net instead of a hoarded resource you never use.

Features

Tips for getting the most out of it

Set the baseline honestly. The dollars-saved number is only as motivating as it is plausible: if you typically drop $40 a day on stuff you didn't plan for, don't put $5 — the number will feel meaningless and you'll stop looking at it. If you're not sure, watch a few normal weeks first and pick a middle value.

Don't try to chase a Perfect streak from day one. Aim for the Clean streak first — that's the one that builds the habit. Perfect streaks tend to happen naturally on weeks where you don't have plans; trying to force them turns into "guess I can't get coffee with a friend this month," which is the wrong outcome.

When you have a Spent day, decide quickly whether it's freeze-worthy. The freeze is for *unplanned* spending you'd otherwise feel was unfair to your streak — a flat tire, an emergency vet visit, a friend's wedding gift. Don't burn it on a casual takeout night, or you won't have it when the real surprise hits.

Frequently asked questions

Do I need to create an account?

No. There is no sign-in, no email field, and no profile. Everything you enter is saved only in this browser's local storage on your own device. Nothing is sent to any server.

What counts as Essentials vs. Spent?

The app doesn't enforce a definition — you do. The most common boundary is: Essentials covers anything you would have spent regardless of mood (rent, regular groceries, recurring transit, fixed bills, prescriptions). Spent covers anything you chose to spend on in the moment that you could have skipped (coffee, takeout, retail, entertainment, gifts). Pick a working definition on day one and apply it consistently.

How exactly is the Perfect streak computed?

Starting from today (or yesterday if today is unlogged), walk backwards through your history. Each day marked Perfect adds 1 to the streak. A Frozen day is treated as a free pass: it doesn't add to the count but doesn't break it either. An Essentials day, a Spent day (unfrozen), or a fully missed day breaks the streak.

And the Clean streak?

Same walk, but Essentials days also count toward the streak. Only Spent (unfrozen) days and missed days break it.

What if I forget to log today before midnight?

You have a one-day grace period: today being unlogged doesn't break the streak. Open the app tomorrow and you can still log today retroactively by tapping it in the calendar. Once two days back-to-back are unlogged, both streaks break.

What happens to unused freezes at month-end?

They expire. The 1st of each calendar month resets your freeze count to exactly 1, not 1-plus-leftover. The intent is that freezes are a real-time safety net, not a savings account.

Can I edit a day in the future?

No. Future days are visible on the calendar but not editable — you can only log what you've actually lived. Today and any earlier day are editable.

What happens if I clear my browser data?

The tracker resets, because progress is stored locally rather than in an account. Switching browsers, switching devices, or using private browsing has the same effect.

Does it work offline?

Once the page has finished loading, all tracking works without an internet connection. Reconnecting is only needed to load the page initially or to visit other pages on OmniAppHub.