init.Habits app store
blog — july 15, 2026

← all posts

Habit heatmap examples: what a year of habits looks like

Habit heatmap examples: what a year of habits looks like — init.Habits blog

The fastest way to understand a heatmap is to stop reading definitions and look at real ones. So here are habit heatmap examples pulled from the kinds of habits people actually track — a coding streak, a workout routine, a reading log, a month that went perfectly, and one that quietly fell apart — with a note on what each shape is telling you. If you want the concept first, what a habit heatmap is explains the grid from scratch; this post is the visual field guide that comes after it.

A heatmap, briefly: one small square per day, arranged in columns, shaded by how much you did. Blank means nothing happened, a pale square means a little, a dark saturated one means a full day. The value isn't in any single cell — it's in the shape a season of cells makes, and different habits make very different shapes.

Seven habit heatmap examples at a glance

Before the walkthrough, here's the whole set in one view. Each row is a habit, the middle column is roughly what its grid looks like over a few months, and the last column is the read.

habitwhat the grid looks likewhat it's telling you
daily codingdense block, faint weekend dipsa real streak, sustained
workoutsmostly dark, one pale day a weeka healthy rhythm with rest built in
reading by pagesuneven shades, light and dark nightsan intensity gradient, big and small sessions
a broken streaksolid block thinning into scattered squaresa habit dying, visible weeks early
a perfect monththirty saturated cells in a rowshort-term intensity, watch what follows
weekday meditationclean vertical stripes, blank weekendsschedule-shaped on purpose, not a failure
water by the glassa gradient, almost no pure blankspartial credit, rarely an all-or-nothing zero

Now the same seven, one at a time, because the interesting part is why each shape looks the way it does.

The coding streak

This is the original, the one the whole format was borrowed from. GitHub renders every developer's year of commits as green squares, shaded by commit count — the mechanic is documented in its own contribution graph guide. A genuine daily-coding habit shows up as a dense block with slightly paler weekends, because most people commit less on Saturday. The tell of a real streak isn't uniform darkness — it's the absence of long pale runs. If you're building the habit of shipping something every day, how to code every day covers the habit side of that grid, and the developer-specific angle on the whole format lives in the GitHub-style habit tracker piece.

The workout habit

A workout habit that's actually being kept looks dense but not solid: mostly dark, with a pale or blank day roughly once a week where you rested. That gap isn't a miss — it's the rest day doing its job, and a grid that's completely saturated with zero pale days can quietly mean you're overtraining rather than winning. Read the rhythm, not just the count. A rough weekly pulse of hard days and light ones is exactly what a sustainable training block is supposed to look like.

Reading tracked by pages

Here's where the intensity dimension earns its place. If you log reading as a number of pages, a fifty-page Sunday renders much darker than a ten-page weeknight, so the grid turns into a gradient instead of a flat wall of on/off squares. That gradient is information a checkbox throws away: it shows you the difference between a month of grudging ten-page minimums and a month where you actually got absorbed in something. A reading habit tracked properly uses that shading to tell "technically kept" apart from "genuinely engaged."

The broken streak

This is the most useful example of all, because it's the one a streak counter hides. A dying habit doesn't stop cleanly. It shows up as a solid block for five or six weeks that gradually thins — isolated dark squares surrounded by growing pale stretches — long before the person tracking it would say out loud that they've basically stopped. The grid surfaces the decline while it's still small enough to fix. A raw streak number can't do this; it reads "0" the day after your last miss and told you nothing on the way down. Spotting the thinning early is what lets you course-correct, and pairing it with an earned streak freeze means one genuinely off day doesn't erase the block behind it.

The perfect month

Thirty fully saturated cells in a row is beautiful, and it's worth reading with a little caution. A perfect month usually means a burst of high motivation — a challenge, a fresh start, a deadline — and bursts have a shelf life. The grid that follows a perfect month is the one that actually predicts whether the habit survived: a solid block that stays mostly dark afterward is a habit; a solid block followed by a cliff is a sprint you mistook for one. Enjoy the perfect month, then watch what happens in the next one.

Weekday meditation

Some of the best heatmaps look "incomplete" and are perfect. A meditation or study habit you only do on workdays renders as clean vertical stripes with blank weekend columns, and that blank is by design, not a failure. This is why you read a heatmap by its shape rather than its total fill percentage — a schedule-shaped grid at 71% (five days of seven) can be flawless adherence, while a patchy 71% scattered randomly across the week is a habit with no structure. Same number, opposite meaning.

Water tracked by the glass

A counter habit like water almost never produces a pure blank square, because you rarely drink literally nothing. Instead you get a gradient — darker on the days you hit eight glasses, paler on the days you managed four — with very few empty cells. That partial-credit texture is the honest picture of a habit that's more "how much" than "yes or no," and it reads completely differently from the sharp on/off pattern of a checkbox habit. If you'd rather see this kind of thing as numbers and averages than as shading, tracking with real statistics covers the same behavior through totals instead of color.

The one habit these examples share

Read all seven back to back and a rule emerges: you learn nothing from a single square and almost everything from a region. Density over cells, shape over color, and where the pale runs sit rather than how many there are. That's the entire skill. The features page has the full rundown of how heatmaps, streaks, and shields fit together, but the honest fastest way to internalize any of this is to make your own grid fill in. You can build a habit heatmap in your browser for free — add a few habits, mark the days you did them, and watch one of these shapes emerge from your own behavior instead of a stranger's example.

FAQ

What does a good habit heatmap look like?

Denser than it is empty, with pale runs that are short and scattered rather than long and clustered. "Good" doesn't mean every square is filled — a weekday-only habit should have blank weekends, and a workout habit should have a rest day a week. The healthiest grids show a consistent shape over months, not a perfect block for two weeks followed by a cliff.

How do you read a habit heatmap?

Zoom out and read three things: density (is the last month mostly dark or mostly pale?), shape (a solid block, a checkerboard, or clean weekday stripes?), and where the pale days cluster (five scattered singles are nothing; five in a row are the start of something). One square tells you almost nothing. A season of them tells you your real pattern.

What does a broken streak look like on a heatmap?

Not a clean stop — a gradual thinning. A solid block of dark squares slowly gives way to isolated dark cells surrounded by growing pale stretches, usually weeks before you'd consciously admit the habit has slipped. That early warning is the heatmap's biggest advantage over a streak counter, which shows nothing until the moment it resets to zero.

Can I make my own habit heatmap example?

Yes — the quickest way is a free browser tool where you add a habit, tick off days, and watch the grid shade in, so you can see your own coding, workout, or reading pattern take shape. init.Habits does the same on iPhone, giving every habit its own year-long heatmap plus an aggregate view and a home-screen widget.

try init.Habits

init.Habits is a habit tracker that looks like a terminal — streaks with shields so one bad day doesn’t wipe the chain, github-style heatmaps, and 23 editor themes. on iPhone today * web coming soon.

download on the app store see the features →