Yardstick Daybook — Internal Product Roadmap · May 2026

Financial control layer for small NZ trade businesses.

Daybook connects jobs, invoices, and GST so operators know what they have made and what they owe — without enterprise overhead. This is a working build brief: what is live, what is committed next, and what is explicitly out of scope.

Emotional promise: “I finally know what money is actually mine.” The product should create calm and control, not more admin anxiety.

"Tradies don't lose money on bad work — they lose it in the gap between jobs, invoices, and tax."
Legend: Live in app now Roadmap — committed next build Placeholder — scoped but not built
Core thesis The atomic unit of this business is not a standalone invoice. It is a coherent customer outcome from first enquiry through quote, invoice, payment, and tax clarity inside one job thread.

Ideal customer

Who this product is for (and not for)

Best fit

  • NZ sole traders and small trade businesses
  • 1 to 5 people
  • Owner-operator is still on the tools
  • Invoice-first businesses with reactive work
  • Currently using spreadsheets, Notes, or underusing Xero/MYOB
  • Mobile-first workflow from van/site, not office-first

Not ideal

  • Retail and inventory-heavy operations
  • Payroll-heavy businesses needing payroll as core workflow
  • Dispatch/scheduling-first operations
  • Enterprise admin teams with full GL complexity

Positioning clarity

Why Daybook exists despite Xero and MYOB

Xero / MYOB / QBO mindset Daybook mindset
Accounting-first, chart-of-accounts workflow Operator-first, job-thread workflow
Desktop/admin energy Mobile/on-site energy
Bookkeeping system focus Money control system focus
Accountant-primary flow Owner-operator primary flow with accountant collaboration

Product identity

Local-first is a philosophy, not an implementation detail

  • Works in bad reception and on-site environments
  • Usable immediately — open the app on Free; sign in for cloud sync
  • Survives offline conditions and syncs later when signed in
  • Built for phone-first field use, not office browser-tab behaviour
  • Creates a fast path to first value, then upgrades into cloud continuity

Packaging

Two tiers — Free and Paid

No Guest / Solo / Team SKUs. Free is the full quote-to-invoice workflow at $0/month and still earns when clients pay via Pay now (Stripe + Akahu platform clip). Paid adds bank connections, automations, and accountant access.

Free

$0 Yardstick account · no monthly fee

  • Core workflow: quotes, invoices, jobs, clients, library
  • Cloud sync, overview, reports, GST on documents
  • PDF, public share links, quote accept, convert to invoice
  • Manual expenses, record payment, payment terms presets
  • Pay now on public invoice — Stripe + Akahu (platform clip per payment)
  • Credit notes, recurring profiles (manual); mailto overdue shortcuts
  • No linked bank accounts, nightly match, or tax set-aside
  • No accountant seat; no server automations

Paid

$39 /mo NZD inc. GST

  • Everything in Free
  • Akahu bank link + nightly reconciliation + match queue
  • Expense suggestions from bank; tax / GST / ACC set-aside sweeps
  • Automations: recurring scheduler, server overdue reminders
  • Accountant read-only seat — no extra fee
  • Custom branding on PDF + links (target)
  • Org members and roles — no separate Team SKU
  • Pay now clip still applies on client payments

Core features

What we are building and why

Route /app

Overview — the engine room

The primary operational surface. It should answer three things at a glance: what is outstanding, what just happened, and what needs attention right now. It is not a list page — it is a command centre.

Primary user story Operator opens app, sees two overdue invoices, two unmatched transactions. Taps new invoice. Comes back later and taps the unmatched card to triage.
Live now

Does

  • New invoice and new quote as primary actions
  • Recent invoices and quotes for quick re-entry
  • Workspace counts (jobs, clients, library)
  • Navigation hub to all core and secondary areas

Does not

  • No full searchable document list — by design
  • No live money dashboard — requires bank feed
  • No unmatched transaction queue — requires reconciliation engine

Next build

  • Attention strip: up to 4 unmatched transaction cards for fast triage when bank is live
  • Money signal: open invoice total and recent paid summary
  • "Yours vs Government" pocket balances once sweeps exist

Route /app/invoice/:id

Invoices

The primary commercial document. Operators invoice for labour and materials; it needs to be fast, professional, and shareable from a phone on site. GST must be automatic, not a configuration exercise. The document is also the entry point for payment — client sees the same link as the PDF.

Key workflow Finish the job → create invoice in split-pane editor → pick client, insert line items from library → preview exactly what customer sees → share link via WhatsApp, SMS, or email from own phone → client pays via bank transfer with reference pre-filled (Pay now on Free) → invoice marks paid.
Live now

Does

  • Create, edit, and view invoices with split-pane editor + live preview
  • NZ GST 15% calculated on all line items automatically
  • Insert line items from reusable library
  • Pick or create client inline
  • PDF output and shareable public link
  • Mark as paid manually
  • Convert quote to invoice preserving line items
  • Public view accessible without client login
  • Contact sender action from public view

Does not

  • No dedicated invoice list/hub — coming next
  • No in-app card payment yet
  • No automatic bank match to payment yet
  • No mileage line items (not in MVP)
  • Custom PDF branding not live (roadmap Paid feature)

Next build

  • Light invoice hub at /app/invoices with status buckets (Draft, Sent, Awaiting Payment, Paid)
  • Pay now on public view — Free + Paid
  • Real-time webhook + SMS confirmation on payment
  • Custom logo and primary colour on PDF and public view
  • Auto-match to bank transaction once reconcile is live

Route /app/quote/:id

Quotes

Quotes are the start of the money thread. Operators need to quote fast on a call or walk-through, share it cleanly, and convert without re-entry. The acceptance model is different to invoices — client accepts online, not pays.

Key workflow Estimate on site → quote created same day → share link → client accepts online (no login needed) → quote converts to invoice with one tap → work continues on same job thread.
Live now

Does

  • Same split-pane editor as invoices
  • GST shown on quote document
  • Online quote acceptance via public link (no client login)
  • Convert accepted quote to invoice without re-entry
  • PDF and shareable link

Does not

  • No dedicated quote hub — coming next
  • No expiry enforcement on quote links yet
  • No quote revision/version history
  • No conditional line items or optional extras builder

Next build

  • Light quote hub at /app/quotes with status buckets (Sent, Accepted, Converted, Expired)
  • Quote link expiry policy and visual indicator
  • Custom branding on Paid tier

Route /app/jobs

Jobs

Jobs are the operational spine of Daybook. The atomic unit of the business is not a standalone invoice — it is a coherent customer outcome: from first enquiry through billing, payment, and tax clarity under one thread. Even informal work gets a home in the Core Job bucket when no job is named.

Key workflow Client calls about a bathroom reno → create job or assign to Core Job → attach quotes and invoices under that job → operator can see total quoted, total invoiced, total paid at a glance → optional: share a job portal link with the client.
Live now

Does

  • Create and manage job records with stages
  • Core Job bucket for unnamed / informal work
  • Access documents from within job context
  • Local-first with cloud sync when signed in

Does not

  • No external client-facing job portal live yet
  • No scheduling or dispatch board (not in Daybook scope)
  • No per-job profit/loss breakdown yet (costs require expenses)

Next build

  • Auto-suggest "bucket by client" when creating invoice with no job selected
  • Job detail view: linked invoice list, quote list, balance summary
  • Customer-facing job portal link (same public-link pattern as documents)

Route /app/expenses

Expenses

Expenses complete the money picture — without them, "what did I really make on this job" remains guesswork. Receipt capture on a phone, policy-enforced thresholds, and reconciliation matching turn expenses from a quarterly headache into something operators can keep up with as they go.

Target workflow Buy materials at Bunnings → tap Expenses → photo receipt → description and amount auto-populated → nightly run matches to bank transaction → or: tap to manually declare "no receipt, $30 at Bunnings" — receipt waived under policy threshold.
Placeholder only

Does (today)

  • Route and navigation slot reserved in product IA
  • Visible as intended area to set user expectations

Does not (yet)

  • No photo or file upload capture
  • No receipt policy rules (threshold, tax-deductibility)
  • No reconciliation matching to bank transactions
  • No swipe-to-triage expense flow

Next build

  • Camera / upload-first expense ingestion mobile UX
  • Threshold policy: receipt required for spend over $X
  • Manual no-receipt declaration path with narrative note
  • Nightly match engine: suggest bank transaction → expense link
  • Expense landing similar to invoice/quote hub

Secondary features

Supporting surfaces

Route /app/clients

Clients

Address book and lookup for documents. Operators repeat-invoice the same clients constantly — entering contact details every time is wasteful. Clients are created inline during document authoring or managed here.

Live now

Does

  • CRUD client records: name, contact, address, GST number
  • Inline creation from invoice/quote editor
  • Client picker in document authoring
  • Local-first with cloud sync

Does not

  • Not a CRM pipeline or opportunity tracking
  • No email history or communication log
  • Not yet extracted as shared package module

Next build

  • Client detail view with linked invoice/job history
  • Extract to shared @yardstick/customers package when second product needs it

Route /app/library

Line items (Library)

Reusable line items cut repeated entry of labour rates, materials, and standard services. An electrician who charges $85/hr for callout labour should not have to type that every invoice. The UX name may become "Line items" or "Catalog" — the route may stay as-is.

Live now

Does

  • CRUD reusable line items: description, unit, unit price
  • Insert from library into invoice/quote editor
  • Local-first with cloud sync

Does not

  • No stock/inventory tracking or quantity management
  • No supplier pricing integration
  • Not yet extracted as shared package module

Next build

  • Nav rename to "Line items" once UX decision is final
  • Extract to @yardstick/catalog when second product uses it

Money layer — Paid

The paid-tier value engine

Public document view — Free + Paid (clip)

Akahu B2B payment button

The payment button closes the collection loop that operators currently manage by chasing bank references and following up on late payments. It is bank-to-bank (not escrow, not card), pre-fills the correct reference and builder's account, and fires a real-time confirmation on arrival. This is not about card processing — it is about making correct bank transfer frictionless.

Target workflow Operator sends invoice → client sees "Pay now" button on their phone → taps it → Akahu pre-fills account number and reference → client approves in their banking app → payment lands → operator receives SMS "You've been paid: INV-042 $1,345.50" → invoice auto-marks paid.
Roadmap — Paid

Will do

  • Direct bank-to-bank payment with pre-filled reference
  • Optional: client pays the ~$0.20 Akahu fee (convenience fee) or creator absorbs it
  • Real-time webhook fires when payment lands
  • SMS notification to operator on payment
  • Invoice auto-reconciles on payment confirmation

Does not

  • Not escrow — money goes directly to operator's account
  • Not a card payment gateway
  • Bank link not on Free — Pay now is on Free

Next build

  • Pay now on public view for Free + Paid; bank link for Paid
  • Webhook receiver and invoice status update in backend
  • SMS delivery via provider
  • Test on real NZ bank accounts before launch claim

Settings / setup wizard

Banking setup and account linking

Before the money automation layer can run, operators need to link their bank accounts and tell Daybook where to move tax money. This is a one-time setup flow — not always visible in the nav, more like a setup wizard that unlocks the money features. Users choose which accounts serve as GST pocket, tax pocket, and ACC reserve — these can be the same account or different.

Roadmap — Paid

Will do

  • Link NZ bank accounts via Traverse/Akahu open banking
  • Select target accounts for GST, income tax, and ACC set-aside (same or separate)
  • Read-only transaction access for reconciliation matching
  • Unlock nightly reconciliation and sweep features on save

Does not

  • Number of linked accounts TBD — product decision before launch
  • Does not control or access customer accounts
  • Does not move money without explicit operator configuration

Next build

  • Banking setup wizard (not in primary nav — behind a trigger)
  • Account limit decision and display
  • Test on real accounts before advertising

Background job + Overview match queue

Nightly bank reconciliation

This is the most mechanically ambitious part of the money layer. Each night: pull incomings and outgoings from linked accounts, run a matching engine against existing invoices and expenses, and produce a suggestion queue. The operator then triages it in Overview with fast binary decisions for unmatched transactions.

Target workflow Morning: open app → Overview shows "4 transactions need review" → tap first card: $1,345.50 received matches INV-042 → confirm → next card: $48.00 at Bunnings → mark as job expense → next card: $890.00 unknown → mark personal and dismiss → nightly run has reduced outstanding from 12 to 3.
Roadmap — Paid

Will do

  • Nightly import of bank transactions from linked accounts
  • Fuzzy match against invoices (amount + timing + reference)
  • Suggest expense matches for outgoing transactions
  • Surface up to 4 priority unmatched items in Overview
  • Card-based triage: match, mark personal, mark expense, dismiss

Does not

  • v1 does not auto-confirm matches without user approval
  • Does not try to be clever about expense offset logic in v1
  • Not a full bank statement view

Next build

  • Backend nightly job (platform boundary TBD)
  • Match engine with confidence scoring
  • Overview attention queue UI with swipe/tap triage
  • Full unmatched list for power users who want the full picture

Paid / My Money vs Tax view

Tax set-aside sweeps (My Money vs Tax)

The tightest pain in small-trade cash flow is accidentally spending GST money. Daybook's answer is to move a prudent GST/tax-related amount into a separate user-owned bank pocket every time a payment lands. It does not pay the IRD for you — it just keeps the money out of sight until filing time. Operators can see exactly what is "theirs" versus what is "the government's" without ever opening a spreadsheet.

Target workflow Payment of $1,150 inc. GST lands → Daybook calculates $150 GST component → transfers $150 to nominated GST savings account → operator's operating account shows $1,000 → at filing time, GST savings account has the exact amount owed (or close to it) already sitting there.
Roadmap — Paid

Will do

  • Trigger set-aside transfer on confirmed payment
  • Calculate maximum prudent tax amount (conservative — no expense offset in v1)
  • Transfer to operator-nominated account (GST / tax / ACC)
  • Show "My Money vs Tax" balance view in app
  • On transfer failure: surface insufficient funds notification
  • Manual retry button for failed sweeps
  • "Accept not moved" acknowledgment for when operator chooses to skip

Does not

  • Does not pay the IRD directly — moves between user-owned accounts only
  • Does not guarantee exact IRD liability — conservative estimate
  • Does not factor in expense offsets in v1
  • Does not hide failure states from the operator

Next build

  • Sweep logic wired to payment confirmation event
  • My Money vs Tax dashboard card on Overview
  • Failure states: notification + manual retry button (build this first)
  • Transfer audit log visible to operator and accountant

Platform capabilities

Access, settings, and admin

Permission model

Accountant access — no extra seat fee

On Paid subscription, the accountant gets a proper seat inside the client's system — not a PDF dump at year end. They see job-threaded records and GST-ready views, with access limited by permission model. This is a major differentiation: Xero and MYOB charge for accountant seats; Daybook includes accountant on Paid.

Live now (permission model)

Does

  • Accountant gets a read-only (or limited) login on the same app
  • Permission-driven access via daybook:accountant:read
  • No separate product URL or separate product needed
  • Included on Paid — no extra subscription

Does not

  • Accountant invite flow not fully built yet
  • No accountant-specific views or exports built yet

Next build

  • Email invite to accountant from org settings
  • IRD GST101-oriented export for filing prep
  • Accountant sees same job-threaded views, filtered to what they need

Settings + admin.yardstick.nz

Company settings and admin hub split

Company trading details, logo, primary colour, BCC for emails, and core branding are not Daybook-specific — they also apply to Logistics and any future Yardstick product. The direction is to hoist these to a shared admin surface (admin.yardstick.nz) that both products read. Daybook-specific workflow settings (onboarding, module toggles) stay in Daybook itself.

Roadmap

Does (today)

  • Logout action in authenticated shell
  • Permission-based access model already defined

Does not (yet)

  • No in-Daybook company profile editing
  • No module toggle controls (hide Quotes, hide Jobs, etc.)
  • No onboarding flow for new business setup

Next build

  • Daybook onboarding: NZBN if company, other-income path if sole trader
  • Module toggles in settings (e.g. hide Quotes removes nav + routes)
  • Admin hub at admin.yardstick.nz for trading name, logo, primary colour, BCC
  • Daybook reads org config from admin hub via API

Hard boundaries

What Daybook is not — by design

Not a full general ledger Larger or more complex businesses that need a full GL stay on Xero/MYOB. Daybook is not trying to replace their chart of accounts.
Not scheduling or dispatch software No calendar-first job board, no GPS, no crew rostering. That is ServiceM8/Tradify territory. Daybook is admin-first and money-first.
Not payroll Payroll is out of Daybook scope. If it needs to connect, it connects to a payroll product via export/integration.
Not an IRD filing robot Daybook prepares records and separates money — the operator or accountant files. We do not claim automatic GST filing.
Not escrow Akahu payments go directly bank-to-bank to the operator. No held funds, no Daybook intermediary.
Not inventory or warehouse management Line items are for invoicing speed, not stock tracking.
Not an SMS marketing product SMS in the Daybook context is payment confirmation only — not outbound reminders or marketing messages.
Not built for enterprise admin teams If a business has full-time admin staff and complex GL requirements, Daybook is not the right fit.