Keel A case study by Shyine Makin
Open the prototype

A budgeting app that tells you you’re okay before it tells you anything else.

Money moves. You stay steady.

Keel is a personal finance concept built on one idea: confidence with money comes from steadiness, not restriction. This is the full process behind it, from the research that shaped the idea to a working prototype, with the visual and motion system designed alongside the product rather than after it.

Hero Equilibrium, a hand-authored Lottie. It plays once when it comes into view and holds still, because the stillness is the point.
Role
Everything, solo: research review through prototype
When
October 2026, self-directed
Made with
HTML, CSS and JS; 12 Lottie animations written by hand in Python; SVG charts
Status
Concept and prototype. Not tested with users yet

A keel is the part of a boat you never see. It doesn’t stop the waves. It keeps you upright through them.

Every decision below traces back to that sentence: what the home screen leads with, what the app refuses to show in red, the palette, the pacing of the motion, and the one shape the whole system is built from.

1

The problem: budgeting apps meet hard weeks with red numbers

Most budgeting tools are built around limits. Categories get ceilings, progress bars fill up and change color, and an alert arrives when you go over. That design assumes the problem is missing information. The research on money and emotion points somewhere else: people tend to look away from their finances exactly when things get hard.

  1. Money stress is the normal state, not the edge case

    In the American Psychological Association’s Stress in America survey (fielded August 2014 with 3,068 adults, released February 2015), 72% reported feeling stressed about money at least some of the time, and 22% rated their money stress in the past month as extreme (8, 9 or 10 on a 10-point scale).

    So a finance app should assume the person opening it is already a little anxious.

    American Psychological Association, Stress in America: Paying With Our Health (2015)
  2. People avoid financial information when they expect bad news

    Karlsson, Loewenstein and Seppi named this the ostrich effect. In two datasets, Scandinavian and American investors checked their portfolios more often in rising markets than in flat or falling ones. Later work by Sicherman, Loewenstein, Seppi and Utkus, using account login records, found the same pattern: attention drops after market declines.

    So the moment someone most needs a clear picture is the moment they’re least likely to open the app.

    Karlsson, Loewenstein & Seppi, The ostrich effect (2009); Sicherman et al., Financial Attention (2016)
  3. Feeling secure is the goal, not staying under budget

    The Consumer Financial Protection Bureau’s research on financial well-being frames it around security and freedom of choice, now and in the future: being in control of day-to-day finances, being able to absorb a shock, and being on track for goals. Its research found that well-being isn’t determined by income alone.

    So success should be measured by whether people feel steady, not by whether every category stayed green.

    CFPB, Financial well-being: The goal of financial education (2015)

Clarity, not more data. Most finance apps already have the numbers. What they lack is an order to read them in. This animation (Financial Clarity Reveal) is the whole argument in four seconds: the same marks, arranged so the one that matters is obvious.

An abstract comparison, deliberately not a screenshot of any real product.

Put together, these sources suggest an uncomfortable inference: if people already avoid financial information when they expect bad news, an app that greets a rough week with red overages is working against its own goal. It teaches people to stop looking. That’s the bet Keel is built on. It’s an inference from published research, not something I’ve measured, and the testing plan in section 12 is designed to check it.

2

Research: a literature and competitor review

I didn’t run interviews for this project. Instead of inventing users, I did a desk review: what published research says about money and attention, and how four products position themselves.

Competitor notes come from each product’s own public site, published method, or announcements, read in October 2026. I didn’t hold paid accounts in all four, so this is a review of stated positioning and documented patterns, not a hands-on teardown. If I were doing this inside a team, the next step would be interviews with five to eight people who stopped using a budgeting app, which is the group this concept most needs to understand.

What the literature changes about the brief

SourceWhat it saysWhat it means for Keel
Ostrich effect [2], Financial Attention [3]Attention to finances goes up with good news and down with bad news.

The home screen has to be safe to open on a bad week.

Lead with what’s holding steady, then show what moved.

CFPB financial well-being [4]Well-being is about present and future security and freedom of choice, and it’s partly subjective.

The headline metric should express security over time (“how long am I covered”) rather than a balance or a category total.

APA Stress in America [1]Most adults report money stress at least some of the time.

Default tone is calm. No alarm colors, no shaking error states, no urgency in motion.

FP Canada Financial Stress Index [10]43% of Canadians say money is the leading source of stress in their lives (2,002 adults surveyed by Leger, January 2026).

The calm default holds on both sides of the border. Keel is designed for adults in the United States and Canada.

How four products frame the job

ProductWhat it centers, in its own wordsWhat it asks of youWhat Keel takes, and leaves
YNAB

A method built on four published rules: give every dollar a job, embrace your true expenses, roll with the punches, age your money [5].

Its Age of Money metric is how long, on average, money sits between being earned and being spent [6].

Active, regular assignment of every dollar. Real commitment, real payoff for people who stick with it.

Takes: setting aside true expenses first, and the forgiving stance of rolling with the punches.

Leaves: the requirement to assign every dollar by hand.

Mint

Intuit announced on October 31, 2023 that Mint was going away and members would move to Credit Karma. Credit Karma’s announcement talks about tracking net worth, reviewing spending and monitoring cash flow [7].

Little. It aggregated automatically, then categorized.

Takes: a lesson about trust. People who built habits on a tool lost it. Keel would need easy data export from day one.

Leaves: category tracking as the main event.

Monarch

Budgeting, tracking progress and planning, with a strong emphasis on inviting a partner to see the full picture and budget together, on web, iOS and Android [8].

Setting up a full financial picture, ideally with a partner.

Takes: shared visibility as a future direction for households.

Leaves: breadth as the headline. Keel leads with one answer, not a dashboard.

Copilot Money

“Your money, beautifully organized”: automatic tracking of accounts, spending and investments, with AI that tags transactions, on Apple platforms and the web [9].

Very little day to day. Review and correct.

Takes: a high craft bar. A calm product still has to feel considered.

Leaves: organization as the promise. Keel’s promise is reassurance.

The gap

In the material I reviewed, the headline is usually a balance, a remaining budget, or a set of category totals. YNAB’s Age of Money is the closest precedent to what Keel does, because it measures money in time instead of dollars. The difference is direction. Age of Money looks back at how long money sat before it was spent. Keel’s reading looks forward: if nothing else came in, how long are you covered? That one forward-looking answer, shown before any detail, is the product.

Who it’s for

Adults in the United States and Canada who are paid on a regular cycle and want to know, before anything else, whether they’re okay until the next payday. The two countries share the dollar sign and most of the vocabulary; where they differ, the prototype follows the reader’s region: chequing or checking, paycheque or paycheck, CAD or USD. It picks the region from the browser’s language settings, and the Guide has a switch.

Proto-personas

Assumption-based personas, built from the research above to keep design decisions concrete. They aren’t composites of real interviews; the people, places and details are illustrative, and each one lists what a study would need to confirm.

Maya, 29

Columbus, Ohio · United States

  • Paid every two weeks
  • Renter
  • One car

Salaried, paid every two weeks, rents, one car. Deleted a budgeting app after a run of red category warnings; now she checks her balance and guesses.

Needs
To know she can cover rent and car insurance before payday, without dreading the answer.
Where tools let her down
Bad news makes her look away [2], and a balance doesn’t say how long she’s covered [4].
How Keel helps
Steady through a date, bills already set aside, and a purchase check before she buys.
To confirm
Whether the date replaces her balance check, and whether she opens Keel on a bad week.

Jordan, 34

Calgary, Alberta · Canada

  • Shift work
  • Pay varies
  • Chequing

Shift supervisor, paid every two weeks into chequing; his hours, and so his pay, change from week to week.

Needs
A buffer he can trust when shifts are short.
Where tools let him down
Money is the leading source of stress for 43% of Canadians [10], and after Mint there were fewer comparable apps in Canada [11].
How Keel helps
The reading ignores future income, so a short paycheque can’t inflate it; room is shown in days.
To confirm
Keel assumes a steady pay cycle. Irregular income is the open design problem, and Jordan is who it would be tested with first.

Priya, 38

Toronto, Ontario · Canada

  • Two savings goals
  • Planner
  • Family

Saving for a car repair fund and a family trip; careful with money, but planning feels like a spreadsheet chore.

Needs
To see what setting more aside does to this month before she commits.
Where tools let her down
The most rigorous method asks her to assign every dollar by hand [5]; plans show their effect only afterwards.
How Keel helps
Goals and Plan preview the new reading first: $100 more a paycheque, compared side by side.
To confirm
Whether the preview changes how much she sets aside, and whether the plan comparison is read correctly.

Pain points the research points to

Inferred from the published research and product material above, not from interviews. They’re the hypotheses the study in section 12 is designed to test.

Pain pointEvidenceHow Keel answers it
Opening the app feels like bad newsPeople check their finances less when the news looks bad [2] [3].The first screen leads with what’s holding steady, so it’s safe to open on a bad week.
Money stress is the baseline, not the exception72% of U.S. adults feel stressed about money at least some of the time [1]; for 43% of Canadians it’s the leading source of stress [10].A calm default: no alarm colors, no shaking errors, motion that settles.
The numbers don’t answer “am I okay?”Well-being is about security over time [4], while the headlines reviewed are a balance, a remaining budget or category totals.One forward-looking answer: steady through a date, drawn as a keel under payday.
Staying on top takes regular workThe most committed method asks you to give every dollar a job [5], which asks the most in the weeks people have the least to give.Bills are set aside automatically and the reading needs nothing day to day.
Tools can disappear, and Canada has fewer of themMint was retired and members moved to Credit Karma [7]; after Mint, comparable options in Canada were described as “slim” [11].Built for both countries from the start, with export planned from day one so a habit never depends on one app.

A bad week, step by step

The journey Keel is designed around. Each stage pairs what the person needs with where it tends to break, from the evidence above, and the screen that answers it. It’s a hypothesis built from research, not an observed journey.

StageWhat the person needsWhere it tends to breakWhat Keel doesScreen
1. Something happensTo know if a surprise bill or a heavy week is a problem.Avoidance: checking less when it looks bad [2].Makes opening the app safe: what’s steady comes first.Steady
2. Open the appOne honest answer.A balance or a remaining budget doesn’t say how long you’re covered [4].Steady through a date, nine days past payday, drawn as the keel.Steady
3. See what movedWhat changed, without blame.Overages framed as failure, for people already under money stress [1] [10].Spending in days: $16.80 is about a third of a day.Spending
4. DecideThe effect of the next purchase, before it happens.Tracking reports what already happened [7] [9].The purchase check moves the keel and the date first.Steady
5. ActA small step that helps.Plans that only show results after the fact.Move money to a goal or try a plan, previewed before anything changes.Goals, Plan
6. Come backA reason to open it next week too.Methods that need regular upkeep [5].The same one answer, nothing to catch up on.Steady

Key flows

First run

  1. Welcome
  2. Sample accounts
  3. Bills: keep or pause
  4. Payday
  5. First reading

Can I afford this?

  1. Steady
  2. Type an amount
  3. Check
  4. The keel previews the new reading
  5. Clear, or carry on

Where did it go?

  1. Spending
  2. A category, in days
  3. A transaction
  4. Recategorize
  5. The reading updates

Set something aside

  1. Goals
  2. Add money
  3. See the effect on the reading
  4. Confirm

Where Keel does what the others don’t

A comparison of what each product leads with in its own public material, read in October 2026. Some may offer similar features deeper in the product; this compares positioning, not a feature audit.

YNABMonarchCopilotMint, now Credit KarmaKeel
What you see firstYour budget, every dollar assigned [5]Budget, progress and planning, ideally with a partner [8]Accounts, spending and investments, organized [9]Net worth, spending and cash flow [7]One date: how long you’re covered
DirectionAge of Money looks back [6]Not the headlineNot the headlineNot the headlineLooks forward from today
Spending shown asDollars by categoryDollars by categoryDollars, tagged by AIDollars reviewedDays of usual spending
Before you spendNot featured in the public material reviewedA purchase check moves the reading first
Day to dayAssign every dollarSet up the full pictureReview and correctLittle: automaticNothing: bills set aside automatically
United States and CanadaBanks in both [13]United States; came to Canada in December 2023 [11]U.S. accounts only [12]Not reviewed for CanadaDesigned for both: chequing or checking, CAD or USD

What only Keel leads with, in the material reviewed:

  • → A forward-looking date as the first thing you see
  • → Spending in days, not overages
  • → A preview of any purchase or plan before anything changes
  • → Both countries’ vocabulary and currency from the start
3

Define: one question, three principles

People who want to feel in control of their money often look away when things get tight, and most budgeting apps meet them at that moment with overages. How might we give someone one calm, honest answer about whether they’re okay, one they’d still be willing to open on a bad week?

From that, three principles. Each one is specific enough to say no to something, which is how I checked it wasn’t a generic UX platitude.

  1. Principle 1Show the keel before the waves

    Lead every screen with what’s holding you steady (covered bills, days of room) before what’s moving (recent spending).

    This means
    The home screen opens on a date, “steady through Oct 25”, not a balance or a list.
    This rules out
    Leading with a transaction feed, a net worth chart, or the biggest category.
  2. Principle 2Weight, not walls

    Spending shifts weight; it doesn’t break limits. Every change is expressed as what it does to your room, in days.

    This means
    A $16.80 lunch is “about a third of a day of your usual spending”. A planned purchase shows its effect on your reading before you spend.
    This rules out
    Red overages, per-category ceilings that “break”, guilt copy like “you overspent”.
  3. Principle 3Settle, don’t startle

    Motion and feedback move at the pace of water finding its level: slower, decelerating into rest.

    This means
    When your reading changes, the keel sinks or rises and settles over about 900ms.
    This rules out
    Shakes, flashes, bouncy overshoot, badge counts, and anything timed to grab attention.

Success criteria

These are proposed measures, written before any data exists. None of them has been measured. They’re here so the testing plan has something specific to check.

QuestionProposed measureTarget I’d setStatus
Can people read it?Five-second test on the home screen: “Are you okay this week? How do you know?”4 of 5 participants answer correctly and point to the readingProposed, not measured
Does it answer “can I afford this”?Timed task using the purchase checkUnder 20 seconds, no helpProposed, not measured
Is it safe to open on a bad week?In a live product: opens in the week after an expensive week, compared to that person’s baselineNo drop from baselineProposed, needs a live product
Do people feel steadier?CFPB Financial Well-Being Scale [4] at start and after eight weeksAn increase, compared against a group using their current toolProposed, needs a study
4

Information architecture: everything returns to the reading

Four tabs, and one rule underneath them: any action that moves money shows its effect on the reading before it happens, and returns you to it after.

Onboarding collects exactly the three inputs the reading needs (accounts, recurring bills, payday) and nothing else. Goals got a plain name. I considered “Harbors” to extend the nautical theme and dropped it: a metaphor should explain the product, and a tab label that needs explaining is costing clarity to buy charm. Plan is the newest tab, added in the motion pass so people can try a change before they commit to it. The diagram draws itself as you reach it, in the same order you’d move through the app.

Keel sitemap and core flow Onboarding runs Welcome, Accounts, Bills, Payday, then First reading, which lands on the Steady tab. Four tabs: Steady holds the reading, the purchase check, spending pace and the coming up timeline. Spending holds category bars, day by day, transactions and a transaction sheet for editing the category. Goals holds goal cards, an add money sheet and a new goal sheet. Plan holds a six month scenario, readouts and an apply action. The purchase check and adding money to a goal both show their effect on the reading. Onboardingcollects only what the reading needs, with one illustration that changes per step Welcomethe keel, illustrated Accountswhat you have Billswhat’s spoken for Paydaythe shore First readingloading, in the motif The appfour tabs Steadyhome, opens here The readingsteady through, keel depth Purchase checkpreview a spend first Spending pacethe Equilibrium Line Coming uptimeline and bill list Spendingsince last payday By categorybars vs last stretch Day by daythe week as a sequence Transactionsfilter by category Transaction sheetedit the category Goalsset aside on purpose Goal cardsprogress, estimate Add money sheetshows the new reading New goal sheettarget, per paycheck Plantry before you commit Scenariotwo step lines, six months Readoutsdates, totals, per-day cost Applyupdates the goal plan Dashed: anything that moves money shows its effect on the reading first, then returns to it Dashed boxes are sheets, not pages. Plan never moves today’s reading, and says so.
Sitemap and core flow. The dashed connectors are the architecture’s one rule: no money moves without the reading being shown.
5

Low fidelity: the first idea was wrong

Grayscale and boxy on purpose, so the only thing being judged was structure. The first home screen was a dial, and it’s here because the reason I dropped it shaped everything after.

Home v0: a dial (dropped)A gauge reads as a speedometer or a fuel tank. Both are about speed and running out, which is the feeling Keel exists to remove.
Home v1: a date and a waterlineThe answer becomes a date, and depth below the line becomes room past payday. Horizontal, settled, no needle.
Onboarding: confirm billsSetup is confirming, not configuring. Three steps, each one an input the reading actually uses.
Purchase checkThe interaction that makes “weight, not walls” concrete: see the cost in days before you spend.

From the sketch to the screen

The finished Steady screen: Oct 25 in large type, the keel below a waterline, and the purchase check.

The structure survived almost unchanged: the date first, the waterline under it, two facts, the purchase check, then the list. What changed was weight and material. The keel became the one physical object, the boxes became real surfaces, and the waterline became payday, labeled.

The wireframe is the real v1 sketch from this project; the screen is a live capture of the prototype.

What changed on the way to high fidelity

Three structural changes happened after these sketches, all from my own review of the rendered screens (there’s no user testing yet, and section 12 says so). They’re documented with before and after in section 12’s change log, but in short: the reading moved out of a card and onto the page itself, category colors became tints of one ink instead of several hues, and the purchase check’s “ghost” keel was redesigned because the first version was illegible at phone size.

6

Visual identity

The brief for the identity came straight from the concept: grounded instead of urgent, one confident accent instead of a traffic-light system. Keel has had three identities. The first two were warm (the second, Mineral & Ember, set porcelain and stone against one oxidized ember accent). Reviewing it next to the apps Keel would sit beside, I found it read as lifestyle, not finance. The third, Harbor & Signal, keeps the restraint and moves to a cool fintech palette: grey-white surfaces, deep navy type and one lime signal, with a navy night for dark mode. The source palette is MP174 by Alex Cristache; I extended it with accessible greys, status colors and a dark theme.

Brand Signature: the waterline draws, the hull drops onto it, the keel extends, and the wordmark rises into place. The letters are Switzer outlines, so the animation needs no font.

Palette: one signal, and restraint as the point

  • Fog White#F4F5FAThe page in light mode. A cool grey-white, so white cards read as raised.
  • Paper#FFFFFFCards, panels, rows and forms.
  • Cloud#E9EDF5Wells, quiet fills and disabled states.
  • Mist Blue#D4EAFFThe water in the reading. Navy and slate text both pass on it.
  • Deep Navy#112358Headings, body, balances, the keel, and primary buttons.
  • Slate#4A5573Supporting copy. 6.0:1 or more on every light surface, so it never needs a second value.
  • Signal Lime#F1FF62The one accent: button labels on navy, the hull, the selected chip. A fill, never text on a light surface (1.1:1 there).
  • Harbor Blue#004499Links and focus rings on light: 8.4:1 on Fog White.
  • Ocean Blue#0192C6 · dark #3DB8EAThe highlighted data series: the plan line, the chosen category. Marks only, never text.
  • Abyss and Night#0B1530 · #112358 · #1A2E66Dark mode: three layered navies, not an inversion. Lime becomes the action color.
  • Frost#AEB9D6Supporting type in dark mode.

Status colors, kept apart from the brand

Lime never means “good” and navy never means “bad”. Financial status gets its own accessible set, and every status travels with a word or an icon, never color alone.

  • Positive#0B7350 · dark #5ED3A0Money in, goal reached.
  • Negative#B42342 · dark #FF8FA3A clear red, used sparingly and always with words.
  • Warning#8A5600 · dark #FFC857A bill not yet covered.
  • Info#0A6A99 · dark #7CC8F2Neutral explanations.

Category shares use a five-step navy ramp (Deep Navy to pale cloud, reversed in dark mode), not extra hues. Ocean Blue marks only the selected category. The only bright thing on any screen is something you can act on, or the hull.

Contrast: audited, not eyeballed

Every pairing is checked by a script (source/contrast_audit.py) against WCAG 2.2: 4.5:1 for text under 1.4.3, and 3:1 for control boundaries, focus indicators and chart marks under 1.4.11. Decorative hairlines are listed too and marked exempt, with the reason, rather than quietly left out.

The audit shaped the Harbor & Signal tokens. Signal Lime is 1.1:1 against the light surfaces, so on light it is only ever a fill behind navy (13.7:1), and wherever it has to be seen as a shape (the hull, the lime blocks in the illustrations) it carries a navy edge that does the contrast work. The buttons are translucent glass, so the script composites each button’s fill over every surface it can sit on before measuring the label: 8.97:1 at the lowest for the primary button and 13.81:1 for the secondary, whose edge measures 3.66:1 or more. People who ask their system for less transparency or more contrast get solid buttons.

The table below is generated from the script’s output for both themes: 94 pairings, none failing. The theme button at the top of the page switches the table and the whole case study.

Light theme contrast audit
PairingUsed forRatioNeedsResult

60 / 30 / 10, measured from screenshots

Naming tokens “canvas, surface, accent” doesn’t make a screen 60/30/10. So I wrote a second script (source/weight_check.py) that takes rendered screenshots and assigns every pixel to its nearest palette role. Text and chart marks are counted separately as content; the split is over the color fields.

The first measurement of the home screen came back 30% canvas, 68% surface, 2% accent: the reading lived in a card that filled most of the phone, so the structural color had become the background. I took the reading out of the card and set it directly on the canvas, let the water band carry the surface, and turned the tab bar into canvas with a hairline. The re-measure: 64 / 34 / 2. These measurements and both images below are from the second identity, Mineral & Ember; the layout fix carried over to Harbor & Signal unchanged.

Home screen before: the reading sits inside a large mineral stone card that fills most of the screen.
Before: 30 / 68 / 2Stone became the background.
Home screen after: the reading date sits directly on the porcelain canvas, with a mineral water band below it.
After: 64 / 34 / 2Canvas leads, stone structures.
Screen, light theme (Mineral & Ember)CanvasSurfaceAccentMy read
Home (after)63.7%34.0%2.3%On target for 60/30. Accent low because there’s one action.
Welcome79.3%14.2%6.5%Canvas-heavy by design: one illustration, one button.
Payday step81.8%9.6%8.6%Accent carries the choices, as intended.
Bills step46.9%46.2%6.9%List-heavy; rows need their structure.
Activity51.4%48.6%0.0%Over on surface. Accepted, see below.
Goals72.2%27.7%0.1%On target.

Two honest notes on the numbers. I treat 10% as a ceiling for the accent, not a quota: it only appears where there’s something to do, and I didn’t add accent to a screen just to hit a number. And list-heavy screens (Bills, Activity) run closer to 50/50 because every list sits on a surface with real row dividers instead of floating on the page. I chose structure over the ratio there, and I’d revisit it with real content lengths.

Type: one family, three levels

Switzer, a neutral grotesque, does everything, in three levels. Display is Regular with tight leading and no added tracking, so the headlines and the reading’s date stay calm at large sizes. Data is Medium with tabular figures, so amounts and dates line up in columns. Body is Regular from 14 to 17px for UI and prose. Headlines use balanced wrapping so no line ends on a single dangling word, and body copy holds to about 66 characters a line.

Display, the reading date
Switzer 400, 52px, line height 1
Oct 25
Headline
Switzer 400, 34px
These look like regular bills.
Data
Switzer 500, tabular figures
$1,284.60   $142.00
Body and UI
Switzer 400, 14 to 17px, 1.5
Keel looks at your bills, your paydays and your usual spending, then tells you one thing first: how long you’re covered.
Wordmark
Switzer 600
Keel

One shape: the waterline and the keel

Instead of a new decorative shape per screen, the whole system is built from one construction: a horizontal line (the waterline, which is always payday), a hull resting on it, and a weighted keel hanging below. Depth below the line means room. Every appearance of the motif follows the same rule, so it never turns into decoration.

Construction of the motif: waterline, hull, keel fin and ballast bulb, with depth marking days past payday. hull: signal lime waterline = payday keel: ink, depth = room ballast: weight sits low

Waterline 1.5 to 2px ink, always horizontal, always full width of its container. It is never tilted outside the illustration.

Hull the accent, flat bottom with soft bilge curves. It always sits on the line, never floats.

Keel and bulb ink. The only part that changes size, and only to encode one thing: days past payday.

Brand markThe construction at 32px.
The readingKeel depth is days past payday.
LoadingLine draws, hull drops, keel sinks.
Goal progressBallast filling a hold, below the line.
Section breaksThe horizon rule on this page.
Tab iconHull and keel at 24px, in line.

Iconography

A small set drawn on a 24px grid with a 1.75px stroke and round joins, matching the weight of Switzer at UI sizes. Only three icons ship in the prototype, because there are only three places to go. The Steady icon is the motif itself.

Steady
Activity
Goals: a pennant on the line
Mark

Surfaces: border first, then maybe a shadow

Paper, 1px hairline
Default raised surfaceWhite fill and a 10% navy hairline. No shadow.
Hairline plus lift
Only for things that floatSheets and the device frame. Soft, low-alpha, never a hard edge.
Phone · $65
Internet · $70
Gym · $40
Lists are structureEvery row view sits on a white surface with a 14% rule. No text floating on canvas.

Radii: 6px for chips, 10px for buttons and inputs, 16px for panels and sheets. No pill buttons: a pill reads as a tag or a toy, and Keel’s buttons should feel like a firm handle.

7

Illustration system: the equilibrium object

Every illustration in Keel is built from the same small set of objects: a beam, a pivot, a plinth, blocks and one lime sphere, resting on a ground line. They are 3D-inspired rather than 3D: drawn in oblique projection with flat shading, so they stay sharp, tiny and animatable as vectors.

The equilibrium objectThe signature: two different masses balanced on a navy pivot, the lime sphere at the point of balance.
The same object, telling a storyOnboarding adds one element per step: money lands, bills stack, the shore reaches payday.

Materials

Five materials, each a step of a Harbor & Signal color, each drawn with exactly three tones: a lit top, a front, and a shaded side. On light, every solid gets a thin navy edge, because white and lime faces are about 1.1:1 against the canvas. No gradients anywhere except contact shadows, and no gloss.

  • PaperLight masses, platforms, bills.
  • CloudPlinths, wells, quiet structure.
  • SlateBeams and lintels: the architecture.
  • NavyWeight: the pivot, the heavy mass.
  • SignalThe focal point. One per composition.

Geometry and light

  • Oblique projection. Depth is a fixed offset up and to the right (16:−10 for objects, 22:−14 for plinths), so every object agrees on where the viewer stands.
  • One light. Top faces are lit, right faces are shaded, always. Dark mode keeps the same light and lowers it, rather than inverting it.
  • Contact shadows only. Soft radial shadows under things that rest on other things. They are the only gradients in the system, and they make weight readable.
  • The lime is always last. In every composition the lime element is the final one to move, so the eye ends where the meaning is.

The illustration: a boat finding its keel

There’s no After Effects export path in the environment I built this in, so the animation is written directly as Lottie JSON from a Python script (source/gen_lottie.py, and for everything since, source/lottie/build.py), the same approach I used for Clearstep. The boat is drawn as a cutaway so the keel shows below the water: the hidden thing made visible, which is the whole product in one picture.

Three colors only per theme: Deep Navy, Signal Lime and Mist Blue in light (the lime hull outlined in navy); Fog White, Signal Lime and Night in dark. Lottie colors are baked into the file, so each theme has its own JSON with identical keyframes, and the page swaps them when the theme changes. The boat starts heeled 9° and rocks about a pivot near the center of buoyancy, so the hull and keel swing in opposition like a real righting moment. Each swing keeps about 62% of the last one’s amplitude and is slightly quicker, which is what damping looks like. It’s level by frame 180 and then holds still for two seconds before it stops. I rendered and reviewed every keyframe before using it; the strip below is the live file, not screenshots.

Frame 0Heeled 9°
Frame 44Past level
Frame 120Small swings
Frame 299At rest
8

Motion as a design language

Every animation in Keel has to answer one question: what does this movement help someone understand? If the answer is “nothing, it’s nice”, it doesn’t ship. Five principles decide the rest.

  1. SettleThings move toward a stable position and stop. Decelerate into rest.
  2. RevealInformation arrives in the order it should be read, never all at once.
  3. ConnectWhat changes keeps its place: bars move rather than redraw, the tab marker travels.
  4. RespondEvery action gets immediate, specific feedback, then gets out of the way.
  5. ReassureDone feels done. Waiting shows signs of life. Nothing shakes, flashes or celebrates.

The pacing argument

This is the part of the identity I’d most want to defend in a review, because the pacing is an argument, not a style. In my previous motion study, Clearstep, the payment confirmation uses a 350ms curve with overshoot (cubic-bezier(.17,.89,.32,1.28)). That’s right for a checkout: the moment is a small win and should feel crisp. Keel’s moments are different. A reading changing isn’t a win or a loss, it’s information about your footing, so it should feel like weight finding its level: slower, decelerating, with at most one small overshoot that damps out.

Snappy: 350ms, overshoot curveThe checkout pacing. Here it reads as a jolt, as if the news were urgent.
Keel: damped spring, about 900msStiffness 70, damping 15: just short of critical damping, so it eases in and stops with no visible bounce.
Runs both at once so you can feel the difference.
ease-settle, 420mscubic-bezier(0.2, 0.7, 0.2, 1)
Screens and sheets. Decelerates into rest, never overshoots.
keel spring, about 900msk 70, c 15, mass 1
Only for the reading, the one physical thing in the UI.
Not used: snap with overshootcubic-bezier(.17, .89, .32, 1.28)
Shown for contrast with Clearstep.
TokenValueUsed forReduced motion
--dur-press140ms, ease-standardButton press, switch, chipInstant
--dur-hover200ms, ease-standardHover colorInstant
--dur-card280ms, ease-settleRows, confirmations, timeline marksInstant
--dur-chart520ms, ease-standardEvery data-bound chart: bars, steps, scrubsJumps to the new values
--dur-move420ms, ease-settle or ease-enterScreens (fade plus 12px rise), sheets, the tab indicatorInstant
--dur-settleabout 900ms, springThe keel finding a new depthJumps to the end state
--dur-illustration0.75 to 2.2sFeedback Lotties: check, empty, goal created, completionShows the final frame
--dur-hero3 to 5sEquilibrium, Signature, the keel boatShows the final frame

There is no error shake, no success burst and no attention pulse anywhere in the system. When something goes wrong, Keel says what and what would fix it, in words.

All sixteen animations, each with the problem it solves, how it behaves, and what it’s made of. They play once as you reach them; use the controls to replay, pause, or step through the storyboard. The storyboards are frames of the shipped files, not sketches.

Explore the motion system

The same components the app uses, pulled out so you can trigger them. Try them with motion reduced too (the switch in the header): every one still changes state, it just doesn’t travel.

Button feedback

Respond. Press, wait, done: three states a person can tell apart without reading the label twice.

Press it: 140ms press, a short loading loop, then a clear done state.

Navigation transition

Connect. One indicator travels between tabs, so you see where you came from and where you went.

Chart transition

Explain. Move a transaction and watch both totals change. The bars travel from old to new, exactly.

Goal progress

Explain, Settle. A progress-mapped Lottie: the slider sets the real value, the animation eases to the matching frame. At 100% the block seats itself.

Transaction confirmation

Respond, Reassure. A quiet check, a sentence, and the consequence. Under a second.

Hana Sushi: Eating out

Financial equilibrium

Settle. The one physical object: the keel finds its new depth on a damped spring. Drag days past payday.

Loading

Respond. Loops only while something is actually loading, and stops the moment it isn’t.

Onboarding progression

Connect, Orient. One object across the steps. Back plays the segment in reverse, so it undoes exactly what the step added.

Step 1 of 4: what you have

Rive: four state machines, authored in code

Four components respond to state rather than play once, which is what Rive state machines are for. I don’t have the Rive editor where I built this, so I wrote the files the way I wrote the Lotties: in code. A small Python writer (source/rive/rivewriter.py) emits the Rive binary format directly, using the type and property keys from Rive’s open-source runtime, and source/rive/build_rive.py authors the four components with light and dark artboards. Each one below is a real .riv running in the Rive web runtime, driven by the same sample data as the app.

One decision made them exact rather than approximate: every number input drives a 1D blend state between two poses keyed at the ends of its range, and every keyed property is linear in that input. So 9 days of room draws at exactly 9 days, and $175 more a paycheck draws every step of the plan exactly. The springs and settles stay in the host, which eases the input, as the web versions already did.

Steady through Oct 25: 9 days past payday.

Equilibrium Indicator equilibrium.riv · steadinessValue, ghostValue, isInteracting, isLoading, hasUpdated. The outline marks where the keel was before the purchase.

Car repair fund: $380 of $1,000.

Interactive Savings Goal goal.riv · progress, isComplete, contributed. At $1,000 the block lowers into its seat and the capstone closes.

Step 1 of 4: what you have.

Onboarding Equilibrium onboarding.riv · step, direction. Each step is a pose; moving between them is a one-second blend, so Back undoes exactly what Next added.

By Apr 2, 2027: $1,030 set aside on the current plan.

Scenario Visualization scenario.riv · extraPerPaycheck, applied. Thin slate line: current plan. Ocean blue line: with the change. The axis stays fixed at $6k so the steps stay comparable.

The Rive runtime loads when this section is close.

ComponentInputsIn the app todayStatus
Equilibrium IndicatorsteadinessValue number, ghostValue number, isInteracting bool, isLoading bool, hasUpdated trigger, reducedMotion boolSVG plus a JS spring, through window.keelEquilibriumAuthored, 4.9 KB
Interactive Savings Goalprogress number, isComplete bool, contributed trigger, reducedMotion boolGoal Progress Lottie, progress-mappedAuthored, 3.7 KB
Onboarding Equilibriumstep number 0 to 3, direction number, reducedMotion boolOnboarding Transition Lottie with segmentsAuthored, 10.1 KB
Scenario VisualizationextraPerPaycheck number, applied trigger, reducedMotion boolSVG step chart, data-boundAuthored, 5.6 KB

Why the app still ships the web versions: the four files total 24 KB, but the Rive runtime is 51 KB plus a 431 KB WebAssembly module (gzipped). The app’s whole first load is about 110 KB. The files use the same input names as the web implementations, so the swap is a loading decision, not a redesign. What changed from the spec while authoring: the ghost needed its own depth, so the Equilibrium Indicator gained a ghostValue input; and direction turned out to be unnecessary, because blending between poses reverses exactly on its own. It stays as an input so the interface matches the spec.

Read the Rive specification · Motion in the design system · The animation library

Rive in practice: a community file, recolored

Pause the gym membership

Steady through Oct 25: 9 days past payday.

The Rive runtime loads when this section is close.

This switch is a genuine .riv file running in the Rive web runtime, driven by its own state machine (Switch, trigger Pressed). It isn’t mine: it’s “Toggle switch” by ashishb from the Rive Community, licensed CC BY 4.0.

What I changed: colors only. A script (source/rive/recolor_toggle.py) rewrites the color values inside the binary: the glossy blue and grey become flat Harbor & Signal colors, the dark background becomes transparent, and a dark-theme file is written alongside. Geometry, animations and the state machine are untouched.

How it’s wired: a native button with role="switch" owns the state and fires Pressed; the file’s own pointer listeners are switched off so the two can’t drift apart. The reading comes from the app’s model: pausing the $40 gym bill on Oct 21 moves “steady through” from Oct 25 to Oct 26. With motion reduced, the runtime jumps straight to the end of the On or Off animation instead of playing it.

The cost, stated: the Rive runtime is 51 KB plus a 431 KB WebAssembly module (gzipped), loaded only when this section comes near. For one switch that’s a poor trade, which is why the app still uses a CSS switch. It pays off when several components share it, like the four above, not for one switch.

9

Application design

Four tabs, each built around one question. Steady: am I okay? Spending: where did it go? Goals: what am I setting aside? Plan: what if I changed something? These are live captures of the prototype in the next section, with its sample data.

Steady: steady through Oct 25, the keel nine days past payday, the purchase check.
SteadyThe answer first. The keel is the Equilibrium Indicator; below it, spending pace and the coming-up timeline.
Spending: category bars with ticks for last stretch.
SpendingWeight, not walls: categories as shares with a tick for last stretch, never a limit.
Goals: the car repair fund at $380 of $1,000.
GoalsProgress as ballast filling a well, with a date estimate in words.
Plan: two step lines comparing the current plan with $100 more each paycheck.
PlanTry a change first. The blue line is the change; the dashed line is today’s plan.
The Steady screen on a laptop: side rail, reading on the left, purchase check and timeline on the right.
The same app, wideA side rail replaces the tab bar; the reading keeps the left column so it’s still read first.
The Spending screen in dark mode on a laptop.
Dark, by designLayered navy surfaces, fog type, lime for action. The illustrations ship as separate dark files, not inverted.
10

Experience Keel

Explore how financial clarity comes to life through thoughtful interaction, motion, and visual design. This is the real app, not a mockup: every figure is computed, every change carries through, and your changes are kept on this device until you reset.

Opened on its own, the prototype greets first-time visitors with a short welcome, an overview of the four tabs and an optional eight-step guided tour that points at the real interface; returning visitors go straight to the app, and a Guide button on every screen restarts the tour. The copy embedded here skips the welcome so the walkthrough on the right can drive it.

Loading the prototype

Use it directly, or jump to a moment:

All amounts are sample data. “Today” is fixed at Thursday, October 8, 2026, so the dates make sense whenever you open it. Nothing connects to a bank and nothing asks for credentials.

How the reading is calculated

Starting today, Keel walks forward one day at a time, subtracting your usual daily spending and any bill that falls due, and ignoring future income. The last day the balance stays above zero is the “steady through” date. Payday is then compared to it: the difference is the keel depth.

Ignoring income is deliberate. It means the reading answers “how much room do I have if things go wrong”, which is the question underneath money anxiety, rather than restating a balance. It’s also the decision I’m least sure people will understand without being told, which is why it’s the first risk in the testing plan.

11

Design system

The components the app is made of, live. They read the same tokens as the app, so the theme and motion switches in the header apply here too.

Buttons

Glass buttons: lime on navy glass 8.97:1 or more, navy on white glass 13.81:1 or more; disabled stays readable at 6.31:1.

Input and validation

$

Type an amount, or a letter to see the error.

Selection

Rent is a regular bill

Status, never color alone

Payday arrived Short by $40 Bill not covered yet Sample data

Lime is never a status. Each status has a word and an icon.

Rows

Phone
Set aside
$65
Internet
Set aside
$70

Confirmation

Added $50. Steady through Oct 24.

Open the full design system: color with calculated contrast, type, spacing, motion, and live, accessible components. The animation library documents every Lottie and Rive file.

12

Testing and iteration: a plan, plus what my own review changed

Nobody outside this project has used the prototype yet. So this section is two honest things: the test I’d run next, and the changes that came from my own review of rendered screens. Neither is presented as user research.

The riskiest assumptions

  1. “Steady through Oct 25” might be read as “my money runs out on Oct 25”. Literally true, emotionally the opposite of the intent. If people read it as a deadline, the reading creates the anxiety it was meant to remove.
  2. Ignoring income may confuse more than it reassures. People know they’re getting paid on the 16th. A number that pretends they aren’t could feel wrong.
  3. “Usual daily spending” assumes a usual. For people with irregular income or spending, which overlaps heavily with the people most stressed about money, an average could be misleading.
  4. Expressing cost in days might feel like a judgment in disguise. “About a third of a day” is meant to be neutral; it could still land as guilt.

The plan

MethodModerated, remote, think-aloud sessions on the prototype as it is now, 30 minutes each. One observer, notes taken against tasks.
WhoFive people who have tried at least one budgeting app and stopped using it. That group is the target: people the restriction model already failed. Mixed pay schedules, including at least two with irregular income.
Tasks
  1. Five-second look at the Steady screen, then hide it: “Are you okay this week? How do you know?”
  2. “You’re thinking about a $300 purchase. Can you afford it?” (Timed, success is a correct yes with a reason.)
  3. “What does Oct 25 mean?” Open answer, then: “How does that make you feel?”
  4. Set up from Welcome, turning off one bill that isn’t really recurring.
  5. Find what you spent the most on since payday, and say whether that’s a problem.
MeasuresTask success, time on task 2, the words people use for the reading (recorded verbatim), and a single closing question: “Would you open this on a bad week?”
Decision rules

If two or more of five read the date as a deadline, the reading gets reframed (candidate: “Covered until Oct 25” plus a sentence leading with payday).

If two or more are confused that income is ignored, add an explicit line: “Even if payday were late, you’d be covered.”

If the purchase check takes over 20 seconds for most people, it moves above the fold on the Steady screen.

Not claimedFive sessions find usability problems; they don’t prove that Keel makes anyone feel steadier. That needs the longer CFPB-scale study in section 3.

What my own review changed

Every screen and animation was rendered headless and reviewed before I called it done. These are the design changes that review caused. They’re real, but they came from me checking my own work against my own criteria, not from users.

  1. The accent failed contrast as a button

    WasThe first palette’s accent with a dark ink label measured 4.35:1, below the 4.5:1 minimum for normal text.
    NowIn the first palette the fix was a nudged accent and deeper ink (4.85:1). In Mineral & Ember the lesson became a rule: brand values stay as given, and accessible derivatives carry the roles the brand value can’t. Harbor & Signal keeps the rule: lime stays a fill on light, and a navy edge carries its contrast wherever it has to be seen.
  2. The home screen was 68% stone

    WasThe reading lived in a large stone card, and the tab bar was stone too. Measured from a screenshot: 30 / 68 / 2.
    NowThe reading sits directly on the canvas, the water band carries the color, and the tab bar is canvas with a hairline. Measured: 64 / 34 / 2.
  3. The purchase preview was illegible

    WasA small dashed “ghost” keel drawn beside the real one at the new depth. At phone size it read as a rendering glitch, and the tick labels ran off the edge.
    NowThe real keel moves to the new depth with the settle spring, and the old depth stays behind as a dashed outline labeled “Now”. The waterline is labeled “Payday” so depth has a reference.
  4. Lists collapsed inside scrolling screens

    WasOn the first render, the Coming up list and the category bar shrank to zero height inside the flex layout, so the screen looked finished but was missing its content.
    NowFixed in layout, and the reason I don’t trust a screen until I’ve seen it scrolled to the bottom.
  5. The next bill’s label sat on the payday pennant

    WasIn the motion pass, the upcoming-expenses timeline labeled the next bill just above the line, where it collided with the payday flag when the two were close.
    NowThe label sits above the flag’s height and anchors to whichever side keeps it inside the frame.
  6. “About 1 days”

    WasA $61.20 grocery run rounded to “about 1 days of your usual spending”.
    NowDays are phrased in words up to two (“about a day”, “about two days”). Small, but it’s the sentence that carries the product’s tone.
13

Outcomes and reflection

What I wanted this project to show is that the brand and the product can be the same decision. The lime hull on its navy edge, the date set large in Switzer, the 900ms settle and the “weight, not walls” copy aren’t a skin on top of a budgeting app. They’re the product’s argument, made visible.

The test I used at the end was to hide the name and ask whether this could be any budgeting app’s case study. I don’t think it could. The headline metric is a forward-looking date that ignores income on purpose. The visualization encodes exactly one thing, room past payday, as the depth of a keel below a waterline that always means payday. Spending is shown as days of room rather than overages. The motion is slower than a fintech default for a stated reason. Take away “Keel” and those choices still only belong to this idea.

Reflection summary

Keel set out to answer one question before anything else: if nothing else came in, how long are you covered? It now exists as a working prototype in React with a guided tour, a design system with 94 audited contrast pairings, and a motion system of Lottie and Rive files written in code, designed for people in the United States and Canada. What it doesn’t have yet is evidence from people using it. Everything below is what Keel could deliver in use, written as hypotheses with the measure that would prove or disprove each one.

Outcomes Keel could provide in use

Hypothesized outcomeForHow it would be measuredStatus
People open Keel on bad weeks instead of avoiding itMayaOpens in the week after an expensive week, against each person’s own baselineHypothesis
Fewer surprises before paydayMaya, JordanShare of pay cycles where an account dips below zero before payday, before and after using KeelHypothesis, needs a live product
Purchase decisions in seconds, not guessesMaya, PriyaTimed purchase-check task (target under 20 seconds, no help), and how often the check is used before larger purchasesHypothesis
More set aside, on purposePriyaGoal contributions per pay cycle compared with each person’s starting planHypothesis
People feel steadier about moneyAll threeCFPB Financial Well-Being Scale [4] at the start and after eight weeks, against a group using their current toolHypothesis, needs a study
The reading works the same in both countriesJordan, Priya, MayaFive-second test with U.S. and Canadian participants: the same share answer “are you okay this week?” correctlyHypothesis

What’s real and what’s illustrative

RealIllustrative
The cited research and competitor positioning, linked below and checkableKeel itself: the name, the product, the brand
The prototype’s logic: the reading, the purchase check, the goal preview all compute liveEvery amount, bill, merchant and date in the prototype
The contrast audit and the 60/30/10 measurements, with the scripts that produced themThe success criteria targets, which are proposals
Twelve Lottie animations, hand-authored in code, rendered and reviewed frame by frame, in light and darkAny claim about how users would react. Untested.
Four data-bound SVG charts whose motion preserves exact values; four Keel Rive state machines plus one community toggle running in the Rive runtimeThe Rive files were written in code, not drawn in the Rive editor; the app ships the lighter web versions; the toggle is a CC BY community file, recolored by me
The four changes in section 12, made from my own reviewNone of section 12 is user research, and it isn’t presented as such

What was delivered, and in what state

DeliverableStateWhere
Motion-forward applicationFunctional prototypeprototype/ (React), sample data only, with a guided tour
Interactive case studyCompleteThis page
Lottie library, 12 animationsCompleteassets/lottie, source/lottie/build.py
Data-bound chart motion, 4 chartsCompleteassets/js/keel-charts.js
Rive interactionsComplete, authored in codeSection 8; source/rive/build_rive.py; docs/motion-system/rive-spec.md
Rive runtime integrationComplete, third-party fileSection 8; source/rive/recolor_toggle.py
Motion gallery and playgroundCompleteSection 8
Embedded prototype, mobile and desktopCompleteSection 10
StoryboardsComplete, from real framesGallery; docs/motion-system/storyboards
Motion design system documentationCompletedesign-system/ (React), system.html, docs/motion-system
Reduced-motion alternatives and static fallbacksCompleteassets/fallbacks, header switch
Performance and QA reportsComplete, measureddocs/motion-system/qa-report.md
Usability testingPlan only, not runSection 12

What I’d do differently with more time and a team

  • Talk to people before designing the reading. I’d start with interviews with people who quit budgeting apps, and I’d expect them to change the metric. Desk research told me what to worry about; only people can tell me what the number should be called.
  • Pressure-test the calculation with someone who builds financial products. “Usual daily spending” is doing a lot of quiet work. Irregular income needs its own model, not an average.
  • Design the bad day properly. The prototype handles “short before payday” with calm copy. A real version needs a path to do something about it, designed with the same care as the happy path.
  • Move the motion into real motion tools. Writing Lottie and Rive in code forced me to understand both formats deeply, and it makes every animation reproducible. But in After Effects and the Rive editor I’d iterate on curves with a motion designer in minutes instead of rebuilding them, and I’d give the Rive pieces the depth and texture the editor makes easy.
  • Run the accessibility audit with people, not just scripts. Ratios pass, but a screen reader pass on the reading and the keel visualization is the real test.

This project is the public, inspectable version of work I’ve done in professional settings, like scenario-based testing and interviews with technicians and clients, where the findings stayed internal. Keel is the version I can show all the way through.

References

  1. 1American Psychological Association (2015). Stress in America: Paying With Our Health. Survey conducted by Harris Poll, August 2014, 3,068 adults. apa.org
  2. 2Karlsson, N., Loewenstein, G., & Seppi, D. (2009). The ostrich effect: Selective attention to information. Journal of Risk and Uncertainty, 38, 95 to 115. The ostrich effect, doi.org
  3. 3Sicherman, N., Loewenstein, G., Seppi, D. J., & Utkus, S. P. (2016). Financial Attention. The Review of Financial Studies, 29(4). Financial Attention, cmu.edu (PDF)
  4. 4Consumer Financial Protection Bureau (2015). Financial well-being: The goal of financial education. consumerfinance.gov
  5. 5YNAB. The YNAB Method. ynab.com/method, read October 2026.
  6. 6YNAB Support. Age of Money. support.ynab.com, read October 2026.
  7. 7Intuit Credit Karma (October 31, 2023). Intuit Credit Karma welcomes all Minters! creditkarma.com
  8. 8Monarch. Homepage. monarch.com, read October 2026.
  9. 9Copilot Money. Homepage. copilot.money, read October 2026.
  10. 10FP Canada (March 10, 2026). FP Canada 2026 Financial Stress Index: More Canadians are taking positive action to reduce financial stress. Survey of 2,002 Canadians by Leger, January 6 to 15, 2026. FP Canada 2026 Financial Stress Index, fpcanada.ca
  11. 11BetaKit (December 14, 2023). As Intuit winds down Mint, financial planning app Monarch Money comes to Canada. Monarch Money comes to Canada, betakit.com
  12. 12Copilot Money. FAQ. Copilot FAQ, copilot.money, read October 2026.
  13. 13YNAB Support. My bank isn’t listed. YNAB supported countries, support.ynab.com, read October 2026.

Product notes reflect each company’s public material on the date read and may have changed since.