01Composition group

Money & metrics

Headline balances, budget pace, and honest charts for trend, share, and capacity.

9 built · 9 declared

Budget vs actual

2×

Source: src/app/composition/_blocks/budget-vs-actual.tsx

August budget

Budget vs actual

Over

$730

$730 of $960 · 76%

$58 over the expected pace

Forecast for the full month

$1,000

At this pace you finish $40 over budget. Dining is the one to move.

  • Dining119%
  • Groceries77%
  • Transport67%
  • Housing88%

Spending against the expected pace for the month, with a forecast and the margin left.

Spending by category

2×

Source: src/app/composition/_blocks/spending-donut.tsx

August · 21 days

Spending by category

TOTAL$737
  • Housing$2800.0%
  • Groceries$200−3.2%
  • Dining$190+18.4%
  • Transport$67−6.1%
Net change vs July

Dining is the only category moving against you.

Category share as a donut beside exact amounts, percentages, and net change.

Cashflow trend

2×

Source: src/app/composition/_blocks/cashflow-trend.tsx

Cashflow

Income against spending

$550

Net this month · Your widest margin since March.

Income$1,280
Spending$730

Income against spending over a switchable range, with an exact-value readout.

Ranked category breakdown

3×

Source: src/app/composition/_blocks/category-ranked-breakdown.tsx

August · ranked

Spending by category

Total tracked

$737

The top three categories are 91% of everything you spent this month.

Categories ranked by share with exact amounts at the end of every bar.

Savings goal progress

3×

Source: src/app/composition/_blocks/savings-goal-progress.tsx

Goals

What you're saving for

3 active
Emergency fund$3,400 / $6,000
57% · $2,600 to go
Japan trip$1,250 / $3,000
42% · $1,750 to go
New laptop$400 / $2,400
17% · $2,000 to go

Automated: $120/mo into Emergency fund · next transfer Aug 26

Named goals with progress bars, exact balances, and the automation that fills them.

Net worth sparkline grid

4×

Source: src/app/composition/_blocks/net-worth-sparkline-grid.tsx

Across all accounts

Net worth

Cash

$2,150

+$180 this month· +180.0%

Investments

$12,400

+$4.20 this month· +4.2%

Debt

-$3,100

−$140 this month· −4.5%

Net worth

$11,450

+$420 this month· +420.0%

Debt is falling while cash and investments grow — the mix is moving the right way.

Asset-class tiles with 12-month sparklines and honest direction labels.

Spend distribution histogram

2×

Source: src/app/composition/_blocks/spend-distribution-histogram.tsx

August · 71 transactions

Spend distribution

Most purchases are small — most of the money is not

Median $14.20Mean $31.80

Two transactions over $200 carry more than the fifty smallest ones combined.

Transaction sizes bucketed so the long tail — where the money is — shows itself.

Month-over-month bars

3×

Source: src/app/composition/_blocks/month-over-month-bars.tsx

Month over month

July vs August

First 21 days of each month, same categories

Dining$190 / $160+$30
Groceries$200 / $210
Transport$95 / $90+$5
Utilities$128 / $130
AugustJuly
Dining +18.8%

Dining is the only category moving against you. Groceries quietly came in under.

Paired bars comparing the same categories across two periods, overruns marked.

KPI row

6×

Source: src/app/composition/_blocks/kpi-row.tsx

Available balance

$1,700

+6.2%across 3 accounts

Spent this month

$730

-4.1%vs the same point in July

Budget remaining

$450

-12.4%9 days left in the cycle

Due soon

$160

0.0%4 bills in the next 14 days

Four period-aware balances with signed deltas and meaningful sparklines.

02Composition group

Tables & ledgers

Transaction tables, account feeds, statement subtotals, and selection states.

10 built · 10 declared

Transactions table

4×

Source: src/app/composition/_blocks/transactions-table.tsx

  • Corner Coffee
    −$7.40
    Northbank ·· 4412
    ClearedDining · 08-08
  • Whole Foods
    −$50
    Northbank ·· 4412
    ClearedGroceries · 07-08
  • August salary
    +$1,300
    Summit Credit ·· 9071
    ClearedIncome · 05-08
  • Grab
    −$3.84
    Paylink wallet
    PendingTransport · 05-08
  • Monthly rent
    −$340
    Summit Credit ·· 9071
    ClearedHousing · 03-08
  • City Power
    −$30
    Summit Credit ·· 9071
    FailedUtilities · 02-08

Merchant identity, category, status, and right-aligned signed amounts.

Selectable ledger with bulk bar

4×

Source: src/app/composition/_blocks/selectable-ledger-bulk-bar.tsx

  • Circle K
    −$2.56
    Dining08-08
  • Shopee
    −$36
    Shopping07-08
  • Baemin
    −$8.60
    Dining07-08
  • Shell
    −$19
    Transport06-08
  • Netflix
    −$10
    Subscriptions05-08
2 selectedTotal selected $44.60

Checkbox selection with a floating bulk-action bar and a destructive confirm.

Account activity

2×

Source: src/app/composition/_blocks/account-activity.tsx

Household

Account activity

  1. MT

    Minh recategorised Shopee → Shopping

    12 minutes ago

  2. NH

    Hannah split Monthly rent across 2 people

    1 hour ago

  3. K

    Kinly matched a receipt to Whole Foods

    3 hours ago

  4. MT

    Minh edited the note on Grab · airport run

    Yesterday, 21:40

  5. NH

    Hannah moved Netflix to Summit Credit ·· 9071

    Yesterday, 09:12

A compact feed of who did what to which account, with relative time.

Statement with subtotals

3×

Source: src/app/composition/_blocks/statement-subtotals.tsx

Statement · August 2026

Spending by category

  • Monthly rent03-08−$340
  • City Power02-08−$30
  • City Water02-08−$7.44
  • Subtotal−$377.44

Total spending$643.44

Expandable category groups with subtotal rows, aligned amounts, and a grand total.

Recurring bills list

3×

Source: src/app/composition/_blocks/recurring-bills-list.tsx

Recurring

Upcoming bills

  1. Monthly rent

    Aug 1

    +$340

  2. Netflix

    Aug 12

    +$15.49

  3. City Power

    Aug 18 · estimate

    +$38

  4. Gym membership

    Aug 20

    +$29

Due in the next 14 days

$53.49

Next up: Netflix on Aug 12

Recurring bills with due dates, statuses, pause switches, and a 14-day total.

Upcoming payments timeline

2×

Source: src/app/composition/_blocks/upcoming-payments-timeline.tsx

Next 14 days

Upcoming payments

  1. Netflix

    $15.49
    Today

    Aug 12 · Northbank ·· 4412

  2. City Power

    $38
    In 2 days

    Aug 14 · auto-pay on

  3. Rent

    $340
    In 6 days

    Aug 18 · Summit Credit ·· 9071

  4. Gym membership

    $29
    In 9 days

    Aug 21 · Northbank ·· 4412

  5. Internet

    $65
    In 11 days

    Aug 23 · Summit Credit ·· 9071

Total scheduled

$487.49

A day-marked timeline of scheduled payments with exact amounts and accounts.

Merchant leaderboard

2×

Source: src/app/composition/_blocks/merchant-leaderboard.tsx

August · by merchant

Where you spend most

  1. Whole Foods

    8 transactions

    +$210.30
  2. Amazon

    6 transactions

    +$154.75
  3. Grab

    14 transactions

    +$96.10
  4. Corner Coffee

    11 transactions

    +$82.40
  5. Shell

    4 transactions

    +$68
Rank 1–5

Five merchants carry 61% of the month — a short list to act on.

Top merchants by spend with counts, ranks, and the concentration story.

Account cards grid

4×

Source: src/app/composition/_blocks/account-cards-grid.tsx

Your accounts

Every account, one glance

Northbank Checking

·· 4412 · Checking

$1,420.55

+2.1% this month· Synced 4 min ago

Summit Credit Savings

·· 9071 · Savings

$5,100

+0.4% this month· Synced 4 min ago

Lakeside Credit

·· 2204 · Credit

-$780.10

−3.2% this month· Synced 1 h ago

Account cards with balances, masked numbers, sparklines, and one hide-all motion.

Split master–detail list

3×

Source: src/app/composition/_blocks/split-detail-list.tsx

Master transaction

Housing · Summit Credit ·· 9071 · Paid Aug 1

−$1,020

Split detail
  • MT

    Minh

    Paid from Northbank ·· 4412

    +$340

  • NH

    Hannah

    Paylink request sent

    +$340

  • K

    Kinly savings

    Auto-transferred Aug 1

    +$340

2 of 3 settled · Outstanding $340

A master transaction with per-person shares, settlement status, and a settle-up path.

Uncategorised queue

2×

Source: src/app/composition/_blocks/uncategorised-queue.tsx

Categorisation

Uncategorised transactions

3 left

Kinly's best guess first — the alternatives are one tap away.

  • Blue Bottle Coffee

    Aug 8

    −$9.80

    or
  • CVS Pharmacy

    Aug 7

    −$23.40

    or
  • PetSmart

    Aug 6

    −$41.20

    or

Transactions waiting for a category, with the best guess first and alternatives one tap away.

03Composition group

Forms & settings

Entry forms, settings panels, validation states, permissions, and destructive controls.

11 built · 11 declared

Add expense

3×

Source: src/app/composition/_blocks/add-expense-form.tsx

Expense

Only the amount and account are required — the rest can wait.

Type the digits; Kinly formats on blur, never mid-typing.

Details

Notes are searchable and appear in exports.

JPG, PNG, or PDF up to 10 MB.

Only the amount and account are required — the rest can wait.

Grouped fields with a money input, category picker, helper text, and a dirty-state save bar.

Settings rows

3×

Source: src/app/composition/_blocks/settings-rows.tsx

Preferences

How Kinly behaves

Every card purchase rounds up to the nearest dollar and the difference moves to savings.

A Monday-morning summary of last week's spending against plan.

Kinly warns you at 90% of a category budget, not after you pass it.

Shared

Hannah can see and categorise transactions on shared accounts.

Affects weekly digests and every chart with a weekly axis.

Description-left, control-right rows with switch groups and hairline dividers.

Field validation states

3×

Source: src/app/composition/_blocks/field-validation-states.tsx

Form states

Field validation

Every state says what happened and what to do about it. None of them rely on colour alone.

You spent $190 on dining last month. This budget will flag most weeks.

Checking this account with Summit Credit…

Verified. Forwarded receipts will match automatically.

Currency is set per household and cannot be changed here.

Error, warning, async pending, success, and disabled fields in one surface.

Danger zone

3×

Source: src/app/composition/_blocks/danger-zone.tsx

Irreversible

Danger zone

These actions cannot be undone. Each one says exactly what is lost before it asks.

Disconnect all banks

Stops importing new transactions. Everything already imported stays.

Reset all budgets

Clears every category budget and starts the current cycle over. Transactions are untouched.

Delete this household

Permanently removes the household, its accounts, and every transaction in it — for all 2 members.

Destructive account actions behind a typed-name confirmation gate.

Budget envelope editor

4×

Source: src/app/composition/_blocks/budget-envelope-editor.tsx

August envelopes

Budget envelopes

Edit any envelope — the total below follows the numbers, not the other way around.

  • Dining

    Spent $190

    $
  • Groceries

    Spent $200

    $
  • Transport

    Spent $67

    $
  • Fun & leisure

    Spent $84

    $

Monthly total

$640 / spent $541

Inline-editable envelopes with spent-against bars and a total that follows the numbers.

Account connections

3×

Source: src/app/composition/_blocks/account-connection-list.tsx

Connections

Connected accounts

  • Northbank

    Connected

    Checking ·· 4412 · Credit ·· 2204 · Synced 4 minutes ago

  • Summit Credit

    Needs attention

    Savings ·· 9071 · Needs you to sign in again

  • Paylink

    Connected

    Wallet · Synced 2 hours ago

Connections are read-only. Kinly can see transactions and never move money.

Bank connections with sync status, manual sync, reconnect, and read-only reassurance.

Household permission matrix

4×

Source: src/app/composition/_blocks/household-permission-matrix.tsx

Household

Who can do what

  • MT

    Minh

    Owner

  • NH

    Hannah

    Editor

  • SV

    Sam

    Viewer

Editors can categorise and split. Only owners can manage billing and members.

Members × actions as a checkbox matrix, owner cells locked on, roles explained.

Notification preferences

4×

Source: src/app/composition/_blocks/notification-preferences.tsx

Notifications

What reaches you, and how

Every event offers push, email, and SMS. The defaults keep money-moving events on every channel.

About to overspend

At 90% of any category budget

Large purchase

Single transactions over $200

Bill due tomorrow

Any scheduled payment within 24 h

Payment failed

A scheduled payment that bounced

Household changes

New members and permission changes

Event × channel toggles with money-moving defaults and an all-off reassurance line.

Receipt upload queue

3×

Source: src/app/composition/_blocks/receipt-upload-queue.tsx

Receipts

Upload queue

1 of 4 uploaded
  • receipt-0821.jpg

    1.2 MB

  • wholefoods-0807.jpg

    840 KB

    Matched

    Matched to Whole Foods · −$50.00

  • receipt-0819.jpg

    2.1 MB

    Needs review

    Possible duplicate of receipt-0818.jpg

  • scan-0803.png

    310 KB

    Failed

    Could not read this file

Per-file upload states — progress, matched, duplicate review, and retry — in one queue.

Onboarding wizard

4×

Source: src/app/composition/_blocks/onboarding-wizard.tsx

Setup

Get Kinly ready

Step 2 of 3

  1. Pick categories

Northbank connected · 6 transactions imported

Done

Which categories matter to you?

Pick at least four. Kinly suggests defaults for the rest.

4 selected

A stepper-led setup flow: bank connected, categories picked, household invited.

Currency & locale panel

4×

Source: src/app/composition/_blocks/currency-and-locale-panel.tsx

Localisation

Currency & locale

Formatting follows your household, not your browser. Changes apply to everyone who shares this account.

Live preview

$12,345.67

Date format
Aug 8, 2026
Number format
1,234.56

A sample balance: $8,500

Currency and region selects with a live formatted preview of dates and numbers.

04Composition group

Headers & navigation

Page-level orientation, search, period pickers, filters, tabs, and switchers.

14 built · 14 declared

Page header — basic

3×

Source: src/app/composition/_blocks/page-header-basic.tsx

Household

Budgets

Envelopes for the month, the pace each one is running at, and what is left to allocate before the first of September.

Eyebrow, heading, one-sentence description, and a single primary action.

Entity page header

4×

Source: src/app/composition/_blocks/page-header-entity.tsx

PF

Parker Family

SyncedPlus

Shared household ledger. Everyone here sees the same balances; only owners can move money between accounts.

All four accounts connected4 membersCreated Mar 2024USD · America/New_York

Avatar, title, status badges, a dotted metadata line, and a toggleable watch action.

Detail page header

4×

Source: src/app/composition/_blocks/page-header-detail.tsx

Back to transactions

Transaction

Whole Foods Market

−$142.18
ClearedNeeds receipt

Matched to a recurring weekly shop. Categorised automatically; the rule that did it can be edited from the overflow menu.

Posted
21 Aug 2026, 4:12 PM
Account
Everyday · ••4417
Category
Groceries
Reference
TXN-90412-8B

Back link, title with the headline amount, status badges, description, and a fact row.

Page header with view switch

4×

Source: src/app/composition/_blocks/page-header-view-switch.tsx

Accounts

12 accounts

Everything connected to this household, in whichever shape you read it best.

Every column, sortable, built for reconciling.

Heading, count, search, and a segmented view switch whose active option explains itself.

Page header with headline metric

4×

Source: src/app/composition/_blocks/page-header-metric.tsx

Reports

Spending report

Where the money went, by category and merchant, for the window you pick. Refunds are netted out; transfers between your own accounts are not counted.

Total spent · 23 Jul – 21 Aug
$4,182-6.4%vs previous window

Heading, description, and the page's headline figure under a range switch that drives it.

Page header with tabs

6×

Source: src/app/composition/_blocks/page-header-tabs.tsx

August overview

Last sync 4 minutes ago
Available
$1,700+6.2%
Spent
$730−4.1%
Remaining
$450−12.4%

Breadcrumbs, account status, actions, navigation, and compact balance metrics.

Command palette

2×

Source: src/app/composition/_blocks/command-palette.tsx

Enterto selectEsc

Grouped destinations and actions with filtering and keyboard hints.

Ledger toolbar

6×

Source: src/app/composition/_blocks/ledger-toolbar.tsx

Active filters12 of 248 transactions

Search, faceted filters, period range, view controls, and a bulk-action state.

Account switcher

3×

Source: src/app/composition/_blocks/account-switcher.tsx

Accounts

A posed account popover with balances, a current marker, and add/manage paths.

Period picker bar

4×

Source: src/app/composition/_blocks/period-picker-bar.tsx

Aug 1 – 21

$730−4.1%vs previous period

Quick period selects with a window readout, previous-period compare, and live totals.

Sticky save bar

4×

Source: src/app/composition/_blocks/sticky-save-bar.tsx

Household profile

Details

Shown in the switcher and on shared statements.

Unsaved changes

Leave the page and these changes are lost.

A save bar that appears only while the form is dirty, with discard and saved states.

Global search results

3×

Source: src/app/composition/_blocks/global-search-results.tsx

4 results

Transactions

Bills

People

Search everything in Parker Family — press ↵ to open the first result.

Cross-entity search results grouped by type, with signed amounts and context lines.

Rule builder

4×

Source: src/app/composition/_blocks/segment-rule-builder.tsx

Automation

Categorisation rules

2 active rules

Rules run in order on every new transaction. The first match wins.

  • IFmerchantcontains“netflix”then categorise asStreaming
  • IFmerchantstarts with“shell”then categorise asTransport
IFthen categorise as

IF/THEN categorisation rules as editable sentences, with an inline builder and ordering note.

Sub-nav with overflow

4×

Source: src/app/composition/_blocks/sub-nav-overflow.tsx

A tab bar that sheds overflow into a More menu instead of a second row.

05Composition group

Dialogs & overlays

Inline-posed create, confirm, filter, share, sheet, and upload surfaces.

10 built · 10 declared

Create transaction

3×

Source: src/app/composition/_blocks/create-transaction-dialog.tsx

New transaction

It lands in Parker Family and both members will see it.

Formatted when you leave the field, never while typing.

A focused entry dialog with amount, account, category, and date.

Destructive confirm

3×

Source: src/app/composition/_blocks/destructive-confirm-dialog.tsx

Delete the Housing category?

3 transactions are filed under Housing. Deleting the category does not delete them.

Transactions that will be uncategorised

  • Monthly rent−$340
  • City Power−$30
  • City Water−$7.44
  • Total affected$377.44

Your account balances stay the same — $377.44 is still spent, it just stops being counted against a budget.

Turning this off deletes all 3 transactions permanently.

A delete confirmation that states exactly what is lost before it asks.

Filter popover

2×

Source: src/app/composition/_blocks/filter-popover.tsx

Filter transactions

Category
38
24
19
6

Minimum amount

Showing transactions of $8 or more.

Status

Stacked filter facets with counts, a clear-all, and an applied summary.

Transaction detail sheet

2×

Source: src/app/composition/_blocks/transaction-detail-sheet.tsx

Whole Foods

Groceries · Northbank ·· 4412

Amount

−$50

Category
Groceries
Account
Northbank ·· 4412
Date
Aug 7, 2026 · 14:32

Note

Weekly shop — stayed under the $60 line this time.

Receipt

wholefoods-0807.jpg · Aug 7

Matched

A side sheet for a single transaction: amount, metadata rows, receipt match, and actions.

Split transaction

3×

Source: src/app/composition/_blocks/split-transaction-dialog.tsx

Split transaction

Divide $102.00 across people — every share must add up.

Total

$102

  • MT

    Minh

    $
  • NH

    Hannah

    $
  • K

    Kinly savings

    $

Allocated

$102 · Remaining $0

Per-person shares with split-evenly, a live allocation check, and a locked save until balanced.

Share with household

3×

Source: src/app/composition/_blocks/share-household-dialog.tsx

Share with household

Parker Family · 3 members today

Members

  • MT

    Minh

    minh@…

    Owner
  • NH

    Hannah

    hannah@…

    Editor
  • SV

    Sam

    sam@…

    Viewer

Invite someone

Editors can categorise and split. Viewers see everything and change nothing.

Current members with roles, an invite row with role select, and role consequences stated.

Sign in

3×

Source: src/app/composition/_blocks/sign-in-dialog.tsx

Welcome back

Sign in to Parker Family.

or

By continuing you agree to the Terms and Privacy Policy.

Email-and-password sign-in with social shortcuts below a quiet divider and a magic-link escape.

Multi-step transfer

3×

Source: src/app/composition/_blocks/multi-step-transfer-dialog.tsx

Move money

Between your own accounts — instant and free.

  1. Accounts

Step 2 of 3

Amount

$200

Review: Northbank → Summit Credit · $200.00

A three-step transfer dialog — amount, accounts, review — with a progress stepper.

Dialog states

4×

Source: src/app/composition/_blocks/dialog-states.tsx

States

Dialog states

The same dialog surface, four moments: working, failed, empty, done.

Importing transactions

12 transactions from Northbank…

Sync failed

Northbank didn't respond. Nothing changed.

No receipts found

Nothing in this month matches your search.

Statement ready

August's statement is in your library.

Four posed dialogs — working, failed, empty, done — sharing one surface language.

Receipt upload

3×

Source: src/app/composition/_blocks/receipt-upload-dialog.tsx

Upload receipts

JPG, PNG or PDF — Kinly reads the totals and matches them.

Selected files

  • receipt-0821.jpg

    1.2 MB

  • wholefoods-0807.jpg

    840 KB

    Ready

A drag-and-drop upload dialog with file states — uploading and ready — plus browse and camera.

06Composition group

Feedback & states

Empty, loading, offline, denied, and error surfaces that stay calm and say what to do next.

9 built · 9 declared

First-run empty state

4×

Source: src/app/composition/_blocks/first-run-empty-state.tsx

First run
Connect an account to begin

Kinly reads your transactions and sorts them into categories. Most people are looking at a full month of spending within two minutes.

Works with

Summit CreditNorthbankLakesidePaylink
  • Read-only access

    Kinly can see transactions. It can never move money.

  • Disconnect anytime

    Your imported data stays; the connection stops.

  • Nothing is shared

    Only people you invite to your household can see it.

Rather not connect anything?

A first-session surface that explains the value and offers exactly one next step.

Loading skeletons

4×

Source: src/app/composition/_blocks/loading-skeleton-set.tsx

Loading

Skeletons shaped like the answer

Each skeleton matches the block it replaces, down to the column widths — so nothing jumps when the data lands.

Skeletons shaped like the real content — cards, table rows, and a chart.

System notices

4×

Source: src/app/composition/_blocks/system-notices.tsx

Notices

System messages

Every notice names the action it implies. A notice with nothing to do belongs in the activity feed, not here.

Info, success, warning, and error notices with the action each one implies.

Empty search result

3×

Source: src/app/composition/_blocks/empty-search-result.tsx

No matches for “shope”

Check the spelling, or try a merchant name, category, or a person in your household.

Similar to your search

A no-results surface that names the query, offers near matches, and clears in one tap.

Sync error & retry

3×

Source: src/app/composition/_blocks/sync-error-retry.tsx

Sync

Summit Credit stopped syncing

Error

Last successful sync was 2 hours ago. Nothing has been lost — new transactions are waiting on their side.

A sync failure with last-success context, an honest retry, and a visible recovery.

Setup checklist

3×

Source: src/app/composition/_blocks/setup-checklist.tsx

Getting started

Setup checklist

2 of 4 complete
  1. Connect a bank

    Northbank and Summit Credit are feeding your ledger.

    Done
  2. Add your household

    Hannah and Sam can see shared accounts.

    Done
  3. Set your first budget

    Pick envelopes for the categories you care about.

  4. Create a savings goal

    A target makes the surplus mean something.

    Up next

A step checklist with progress, done/active/next states, and one start button at a time.

Offline & stale data

4×

Source: src/app/composition/_blocks/offline-stale-data.tsx

You're offline

Showing the last synced data. Changes you make will sync when you're back.

Offline

Status

Stale data

Everything below is from the last successful sync — safe to read, not guaranteed current.

Last sync per account

  • Northbank ·· 441210:42
  • Summit Credit ·· 907110:42
  • Paylink wallet09:15

Reconnect to refresh

Offline changes are queued, never dropped.

An offline banner plus a stale-data card: per-account last sync, disabled refresh, queued changes.

Permission denied

3×

Source: src/app/composition/_blocks/permission-denied.tsx

You don't have access to Parker Family

This household is managed by Minh. Ask them to add you as a member — or switch to an account you can see.

Requests notify the household owner, never the household itself.

A locked-surface state that names the owner, offers request access, and a way out.

Per-row inline error

4×

Source: src/app/composition/_blocks/per-row-inline-error.tsx

Ledger

Per-row errors

One row failed to import; the rest of the ledger is untouched and trustworthy.

1 row needs attention
  • Corner Coffee
    −$7.40
    Dining08-08
  • Whole Foods
    −$50
    Groceries07-08
  • City Power
    −$30

    Duplicate of an imported row — skip it or review the original.

  • August salary
    +$1,300
    Income05-08

A ledger where one failed row carries its own message, retry, and dismiss — the rest stays clean.

07Composition group

AI & agents

Assistant surfaces that stay auditable: cited answers, visible tool calls, and approval before action.

18 built · 18 declared

Suggested prompts

3×

Source: src/app/composition/_blocks/suggested-prompts.tsx

Ask Kinly

Start with what changed

These come from your own accounts this month, not a generic list.

Starter questions grounded in the user's own accounts, not generic filler.

Streaming message

4×

Source: src/app/composition/_blocks/streaming-message.tsx

Assistant

How much did I spend on dining last month?
K
You spent $160 on dining in July across 42 transactions — about 16% of your total spending. The largest single one was Pizza Palace's at $57 on 12 July.
Read 42 transactions · 1.8s
And why is it higher this month?
K
August dining is at $190 with 9 days still to go, which is 18% above July at the same point. Two things changed: you ordered delivery 11 times versus 4 last month, and
Generating

An assistant reply mid-stream, with a stop control and a settled prior turn.

Tool calls in chat

4×

Source: src/app/composition/_blocks/tool-calls-in-chat.tsx

Tool calls in chat

Steps run inside the thread

The tools work in view, between question and answer — nothing runs off-screen.

Why is dining 118% of plan this month?
K
Dining is at $190 against a $160 plan, with 9 days left. Delivery orders nearly tripled — 11 this month versus 4 in July.
Each step above is expandable. Nothing ran silently.

Tool steps run in view inside the thread — running, done, and pending — between question and answer.

Chart artifact in chat

4×

Source: src/app/composition/_blocks/chart-artifact-in-chat.tsx

Artifacts in chat

A chart lands as a rendered artifact

The answer carries the chart as a real, inspectable object — not a description of one.

Where did August go?
K
Housing is the fixed floor as usual. The story is dining at $190 — 30% over plan — and groceries running lean because you've eaten out more.

August spending by category

Aug 1 – 21

Donut · interactive
SPENT$1,834
Housing$1,14062%
Dining$19010%
Groceries$1689%
Transit$965%
Everything else$24013%
Pulled from the live ledger at 09:41 · 214 transactions
Artifact · renders in place, opens full-size on tap
Can you break down the dining slice by merchant?

An answer carries a rendered financial chart as an artifact — header, live data body, and actions.

Answer with citations

4×

Source: src/app/composition/_blocks/answer-with-citations.tsx

Ask Kinly

Why is dining 118% of plan this month?

Dining is at $190 against a $160 budget, with 9 days left. Two things drove it. Delivery went from 4 orders in July to 11 this month1, which alone accounts for $67. And a single dinner at Pizza Palace's on 2 August came to $572 — 30% of the whole category in one evening. Your coffee habit is unchanged at roughly $7.40 a week3.

Where these numbers come from

Verifiable

Every figure above links to the transactions behind it. Nothing here is estimated.

A spending answer where every number links back to the transactions behind it.

Prompt composer

4×

Source: src/app/composition/_blocks/prompt-composer.tsx

Ask Kinly

Kinly-1 · your data stays private

Ask

Try asking

Kinly answers from your accounts, receipts, and household rules — and shows its sources.

A grounded prompt composer with example asks, attach/clear, and a private-by-default model note.

Attached context message

4×

Source: src/app/composition/_blocks/attached-context-message.tsx

Attached context

The assistant reads what you bring

Uploads are treated as sources of truth for the conversation — and shown as such.

statement-aug.pdf2.4 MBdelivery-export.csv86 KBreceipt-0821.jpg1.1 MB
Reconcile these against my ledger
K
All three check out. Your statement has 3 charges missing from the ledger — I've queued them for review with the receipts attached. The delivery export matches what I see in your accounts exactly.

What I read

  • statement-aug.pdfFound 3 charges not yet in your ledger — all under $40.Read
  • delivery-export.csvConfirms the delivery count: 11 orders in August versus 4 in July.Read
  • receipt-0821.jpgPizza Palace's · $57.00 · already matched to transaction #18243.Read

1 page was unreadable — a rotated scan of a bank card. I skipped it rather than guess.

3 files read · 0 guessed

User uploads shown in the thread with per-file provenance — what was read, what it said, what was skipped.

Tool call trace

3×

Source: src/app/composition/_blocks/tool-call-trace.tsx

Auditability

How Kinly answered

Every step of the last answer, with what it touched and how long it took.

  1. Matched 42 transactions across Northbank and Paylink, filtered to August.

2,140 tokens used · 1.2s total

An expandable trace of the assistant's tool calls — what matched, what changed, how long.

Approval gate

3×

Source: src/app/composition/_blocks/approval-gate.tsx

Approval needed

Kinly only acts on money with a human in the loop.

Proposed action

Dining is at 118% of plan. Moving $29 from Groceries keeps the month on track.

From
Groceries
To
Dining
Amount
$29
Date
Immediately

Auto-approval is off for moves over $25. You can change that in Settings.

A proposed money move with its reason, full row details, and an explicit approve/deny.

Agent plan

4×

Source: src/app/composition/_blocks/agent-plan.tsx

Plan before action

The agent states its plan first

Four steps, shown before they run. The last one is yours.

  1. Check Groceries balance

    Northbank · checking

    OK · $412 available
  2. Verify dining spend

    42 transactions · Aug 1 – 21

    118% of plan
  3. Draft the $29 transferRunning

    Groceries → Dining · splitting once

  4. Wait for your approval

    You review the exact rows before anything moves

Step 3 of 4

Nothing moves money until step 4 — the approval — completes.

A multi-step agent run shown in advance — done, running, and pending — with approval held for last.

Proposed change diff

4×

Source: src/app/composition/_blocks/proposed-change-diff.tsx

Proposed by Kinly

Suggested categorisation changes

Three rows would move categories. Select the ones you agree with — nothing changes until you apply.

3 of 3 selected
  • Grab · airport run

    Aug 8

    Driver services belong with transport — 92% confidence.

    DiningTransport
  • CVS Pharmacy

    Aug 7

    Prescription purchases match your Health pattern.

    GroceriesHealth
  • Blue Bottle Coffee

    Aug 6

    Coffee shop pattern matches 14 similar transactions.

    UncategorisedDining

AI-suggested category moves as a selectable diff with reasons, apply, and skip-all.

Knowledge sources

3×

Source: src/app/composition/_blocks/knowledge-source-list.tsx

Grounding

What Kinly knows

Answers come from these sources — and only these. Nothing else is read.

  • Connected accounts

    Northbank · Summit Credit · Paylink

    Live
  • Receipts

    August: 12 uploaded, 1 needs review

    Needs review
  • Household rules

    4 categorisation rules, first match wins

    Live
  • Manual entries

    Added by Minh and Hannah

    Live

The explicit list of what the assistant reads — accounts, receipts, rules, manual entries.

Categorisation review queue

4×

Source: src/app/composition/_blocks/categorisation-review-queue.tsx

Review queue

Categorisation suggestions

Kinly proposes; you dispose. High-confidence rows are marked, not auto-applied.

  • Whole Foods Market

    Aug 7

    Groceries96% confidence
  • Shell · Highway 1

    Aug 6

    Transport91% confidence
  • Blue Bottle Coffee

    Aug 5

    Dining74% confidence

AI suggestions with confidence scores and one-tap accept/reject — never auto-applied.

Insight digest

3×

Source: src/app/composition/_blocks/insight-digest.tsx

Weekly digest

Three things worth knowing

August 9, 2026

Picked from your own data — no generic advice.
  • Dining is pacing 18% over budget

    At this rate you finish August $64 over on dining.

  • You save about $240 every month

    Consistent with the last six months — the automation is doing its job.

  • City Power spikes in August

    Last year the bill jumped 22% in August. Budget for it now.

A weekly digest of three data-grounded insights, each with a why and a next step.

Follow-up suggestions

3×

Source: src/app/composition/_blocks/follow-up-suggestions.tsx

After the answer

Keep going from here

Each suggestion continues the answer above — never a topic jump.

Suggestions come from this answer and your data only.

Post-answer prompt chips that continue the thread, each with the reason it was offered.

Token cost meter

3×

Source: src/app/composition/_blocks/token-cost-meter.tsx

Assistant usage

Token cost meter

1,240

Monthly limit: 2,000

62% used

Estimated cost this month

$0.86

Where it went

  • Answers620$0.31
  • Categorisation380$0.19
  • Summaries240$0.12
Free tier resets on Aug 31Manage plan

Tokens used against the monthly limit with a cost estimate and a by-feature breakdown.

Assistant usage overview

3×

Source: src/app/composition/_blocks/assistant-usage-overview.tsx

Assistant

Usage overview

Queries
148
Tokens
12,400
Cost
$8.42
Hours saved
6.2

Weekly token usage

By feature

Ask drives most consumption; categorisation is the quiet workhorse.

Queries, tokens, cost, and saved hours with a switchable usage chart and feature split.

Scheduled agent run

3×

Source: src/app/composition/_blocks/scheduled-agent-run.tsx

Scheduled runs

Weekly money briefing

Mondays · 8:00

Mon · 08:00

Next run

Mon · 19 Aug

Runs every Monday at 8:00 while you sleep

Recent runs

~1,800 tokens per run

A recurring briefing the assistant runs on schedule — next run, last runs, and an honest pause.

08Composition group

Plans & billing

Plan comparison, invoices, payment methods, and the upgrade paths between them.

9 built · 9 declared

Plan comparison matrix

6×

Source: src/app/composition/_blocks/plan-comparison-matrix.tsx

Plans

Compare what each plan gives you

Free

Free

Current plan
Connected accounts
2
Transaction history
3 months
Category budgets
Category budgets: included
Receipt matching
Receipt matching: not included
Kinly assistant
Kinly assistant: not included
Household members
Household members: not included
CSV & PDF export
CSV & PDF export: not included

Plus

$3.16/month

Most households pick this
Connected accounts
10
Transaction history
24 months
Category budgets
Category budgets: included
Receipt matching
Receipt matching: included
Kinly assistant
Kinly assistant: included
Household members
Household members: not included
CSV & PDF export
CSV & PDF export: included

Household

$5.96/month

Connected accounts
Unlimited
Transaction history
Unlimited
Category budgets
Category budgets: included
Receipt matching
Receipt matching: included
Kinly assistant
Kinly assistant: included
Household members
6
CSV & PDF export
CSV & PDF export: included

Feature-by-plan rows with the current plan marked and one clear upgrade.

Invoice card

3×

Source: src/app/composition/_blocks/invoice-card.tsx

Invoice

KIN-2026-0814

Issued 1 August 2026

Paid
  • Household plan

    1–31 August 2026

    $5.96
  • Additional members

    2 beyond the 4 included

    Qty 2$2
  • Annual billing discount

    −$1.20
Subtotal
$6.76
VAT 8%
$1
Total
$7.76

Paid 1 August with Northbank ·· 4412

Billed to

Parker Family · Austin, TX

A single invoice with line items, tax, total, and a download action.

Payment methods

3×

Source: src/app/composition/_blocks/payment-methods.tsx

Billing

Payment methods

  • Visa ·· 4412

    DefaultExpires soon

    Northbank · expires 08/2026

    This card expires before your next renewal on 1 September. Update it to avoid an interrupted plan.

  • Paylink wallet

    (415) ··· 847

  • Bank transfer

    Summit Credit ·· 9071 · manual each cycle

Saved cards and bank transfers with a default marker and an expiry warning.

Change plan

4×

Source: src/app/composition/_blocks/change-plan.tsx

Plans

Pick your plan

Solo

Current plan

$4/ month

  • 1 household
  • Unlimited transactions
  • Basic categorisation
Most popular

Family

$8/ month

  • Up to 6 members
  • Splits & settle-ups
  • Categorisation rules
  • Priority support

Pro

$14/ month

  • Everything in Family
  • Unlimited households
  • Receipt scanning
  • AI insights

Switching mid-cycle prorates the difference — you only pay for the days you use.

Three plan cards with price, features, current marker, one popular plan, and proration note.

Payment history

4×

Source: src/app/composition/_blocks/payment-history.tsx

Billing

Payment history

All payments via Northbank ·· 4412
  • Aug 1, 2026
    $8
    PaidFamily
  • Jul 1, 2026
    $8
    PaidFamily
  • Jun 22, 2026
    $3.74
    PaidFamily (prorated)
  • Jun 1, 2026
    $4
    RefundedSolo
  • May 1, 2026
    $4
    PaidSolo

Past invoices with plan, amount, paid/refunded status, and a per-row download.

Billing FAQ

3×

Source: src/app/composition/_blocks/billing-faq.tsx

Billing

Frequently asked

The billing questions people actually ask — answered in the product, not in a help centre.

Yes. Switching mid-cycle prorates the difference — you only pay for the days you use. Upgrades apply immediately; downgrades apply at the end of the cycle.

Something else? Ask us anything

Accordion answers to the billing questions that decide whether people switch plans.

Upgrade to unlock

3×

Source: src/app/composition/_blocks/upgrade-to-unlock.tsx

Locked

Categorisation rules

Family · $8/mo

Rules that sort your transactions automatically are part of the Family plan — where the whole household already lives.

Unlocks on Family

  • Unlimited categorisation rules
  • Split any transaction across people
  • Priority support

A locked-feature card that names the plan, the price, and exactly what unlocks.

Product updates

2×

Source: src/app/composition/_blocks/product-updates.tsx

Changelog

What's new

Every change ships with a note about what it does for your money.

  1. v0.4.2

    Aug 8, 2026

    • NewSplit any transaction across people, with settle-ups.
    • ImprovedLedger sync is 40% faster on large months.
    • FixedDuplicate receipts no longer create ghost categories.
  2. v0.4.1

    Jul 29, 2026

    • NewBudget pace markers show where the month should be.
    • FixedCurrency rounding matched the bank's statements.
  3. v0.4.0

    Jul 15, 2026

    • NewHouseholds: share accounts with up to six people.
    • ImprovedCategorisation suggestions are twice as accurate.

A versioned changelog with New/Improved/Fixed badges and user-facing language.

Quota usage meter

3×

Source: src/app/composition/_blocks/quota-usage-meter.tsx

Usage

Quota usage

What your plan includes, and how much of it this month has used.

  • Receipt scans

    34 / 50

    16 left

  • AI queries

    148 / 200

    52 left

  • Categorisation

    1,240 / Unlimited

    Unlimited

All limits reset on Aug 31Family plan

Per-feature usage against plan limits with an unlimited case and reset date.

09Composition group

Receipts & media

Receipt libraries, attachment previews, and the pickers that feed them.

7 built · 7 declared

Receipt library

6×

Source: src/app/composition/_blocks/receipt-library-grid.tsx

Receipts

Receipt library

  • Whole Foods

    $50 · 07-08

  • Pizza Palace's

    $57 · 02-08

  • No transaction

    City Power

    $30 · 02-08

  • Corner Coffee

    $7.40 · 08-08

  • No transaction

    Shell

    $19 · 06-08

  • State Farm

    $130 · 01-08

1 selected

A thumbnail grid with type filters, search, and a bulk selection bar.

Receipt detail

3×

Source: src/app/composition/_blocks/receipt-detail.tsx

Receipt

Corner Coffee

Photographed 8 August, 09:14

Read automatically

Kinly read these figures from the photo. Tap any line to correct it.

Line items

  • Iced milk coffee ×2$3.60
  • Omelette baguette$2.60
  • Peach orange lemongrass tea$2.20
Subtotal
$8.40
VAT 8%
$1
Total
$9.40

Linked transaction

Corner Coffee · Northbank ·· 4412

Amount and date both match

−$9.40

A receipt preview with extracted totals, the linked transaction, and replace actions.

Avatar upload

3×

Source: src/app/composition/_blocks/avatar-upload.tsx

Profile

Profile photo

The same control across all four of its states. Initials are the resting state, not a failure.

No photo

MT

Your initials show wherever a photo would.

Uploading

MT

minh-thanh.jpg · 1,4 MB

Processing

MT

Cropping to a square and generating sizes…

Photo set

MT

Visible to everyone in Parker Family.

JPG or PNG, at least 200×200, up to 5 MB.

A circular profile photo across upload, processing, set, and remove states.

Receipt carousel

4×

Source: src/app/composition/_blocks/receipt-carousel.tsx

August receipts

Receipt carousel

Swipe through the month's receipts — every thumbnail links to its transaction.

Open receipt library

A swipeable strip of receipt thumbnails with merchant, date, and amount under each.

Receipt lightbox

4×

Source: src/app/composition/_blocks/receipt-lightbox.tsx

Whole Foods · Aug 7, 2026 · 14:32

Whole Foods

0014 · 08/07 14:32 · TERM 04

Total$50

*** THANK YOU ***

Scroll or pinch to zoom · Esc to close

A posed dark-stage lightbox with a paper receipt, zoom controls, and an open-original path.

Cover image picker

3×

Source: src/app/composition/_blocks/cover-image-picker.tsx

Household profile

Cover image

Shown at the top of the household page. 16:9 crops well.

Cover updated

A 16:6 cover preview across empty, uploading, and set states with change and remove.

Attachment strip

3×

Source: src/app/composition/_blocks/attachment-strip.tsx

Transaction · Whole Foods

Attachments

3 attached
  • receipt-0807.jpg

    Receipt · 1.2 MB

  • invoice-aug.pdf

    Invoice · 340 KB

  • note-rent.txt

    Note · 4 KB

Attachments stay with the transaction, not with whoever uploaded them.

A wrapping strip of file chips with kind, size, remove, and an add affordance.