PiTime

Voice-activated timesheet and invoice app for PiRisk Management.

v0.6 · User Guide · Updated 4 Apr 2026
In This Guide
💡

Overview

What PiTime does

Voice Time Entry

Speak naturally to log time. PiTime uses Wispr Flow (OS-level speech-to-text) plus a local fuzzy parser to extract hours, client, project, and mileage from plain English.

Core

Client Management

Track clients with hourly or daily rates. Each client can have multiple projects. Contact details, ABN, and rate configuration stored per client.

Manage

Invoicing

Generate invoices from unbilled time entries. Sequential numbering (INV-YYYYMM-NNN), automatic GST calculation (10%), mileage at ATO rate ($0.91/km).

Bill

Dashboard

At-a-glance view of today's hours, weekly totals, unbilled amounts, and outstanding invoices. Charts for utilisation and revenue by client.

Track

Xero Integration

Connect to Xero for automatic invoice syncing and payment tracking. Contacts sync, invoices push, and payment webhooks mark invoices as paid.

Phase 7

Settings

Configure your business profile, bank details, invoice prefix, GST rate, mileage rate, standard day hours, and payment terms.

Configure
🏗

Data Hierarchy

How everything fits together
■ Acme Construction (Client — daily rate $1,800) ▸ Contract Dispute (Project) ▶ 4 hours — "Reviewed tender docs" (Time Entry — 3 Apr 2026) ▶ 85 km mileage — "Site visit Parramatta" (Mileage Entry) ▸ Delay Claim (Project) ▶ 8 hours — "Full day on-site" (Time Entry — all day) ■ INV-202604-001 (Invoice — $5,400.00 + $540.00 GST)
■ Metro Rail Pty (Client — hourly rate $250) ▸ Project Recovery (Project)
Rate types: Clients can be set to hourly or daily rate. Daily-rate invoices convert logged hours to days using your Standard Day Hours setting (default: 8 hours).
🔄

Typical Workflow

From time logged to invoice paid
The PiTime Cycle
1
Speak or type time
Voice or manual entry
2
Parser fills fields
Hours, client, project, mileage
3
Review & save
Confirm or adjust details
4
Generate invoice
Select unbilled entries
5
Push to Xero
Auto-sync (Phase 7)
6
Payment received
Webhook marks paid
🎤

Voice Entry

Speak naturally to log time

PiTime uses Wispr Flow (OS-level speech-to-text) which types spoken words directly into the browser. A local fuzzy parser then extracts structured data from the natural language text. Press Ctrl+N from anywhere to jump straight to the voice entry field.

You SayPiTime Extracts
"4 hours on Acme contract dispute"4h · Acme Construction · Contract Dispute
"all day Metro Rail project recovery"8h · Metro Rail · Project Recovery
"half hour call with Acme"0.5h · Acme Construction
"2 and a half hours plus 85km mileage"2.5h · 85km mileage
"sixty hours Parnell Systems"60h · ParnellSystems
"a hundred and sixty hours total"160h (full month)
"forty five hours site work"45h · description: site work
💡 Smart fuzzy matching: The parser uses Levenshtein distance (edit distance) to match client and project names even with spelling variations, typos, or speech-to-text quirks. "Tessie" matches "Tess", "Akme" matches "Acme", and PascalCase names like "TessTantrums" are automatically split into separate words for matching.
🔢 Word-form numbers: PiTime understands spoken numbers from one to three hundred and twenty — including compounds like "forty five" and "a hundred and sixty". Digit form (60, 160) also works.
🛠 Mileage tracking: Say "plus 85 km mileage" or "85 kilometres" and PiTime will add a mileage line item at the ATO rate ($0.91/km for 2025-26). This appears as a separate line on invoices.

Time Entries

Log and manage your time
ActionHow
Log via voiceTime Entries page → speak into voice input field → review → save
Log manuallyTime Entries page → fill date, client, project, hours, description
Add mileageEnter km in the mileage field (invoiced at $0.91/km)
Mark non-billableUncheck the "Billable" toggle (won't appear on invoices)
Edit entryClick entry in list → modify fields → save
Delete entryClick entry → delete button (only unbilled entries)
Entry types: Each entry is tagged as voice, manual, or timer to track how you prefer to log time.
👥

Clients & Projects

Organise your work
ActionHow
Add clientClients page → Add Client button → fill name, contact name, email, phone, rate type, rate → Save
Set rate typeChoose Hourly (e.g. $250/hr) or Daily (e.g. $1,800/day) when creating or editing a client
Edit clientClick the pencil icon on any client card → modify name, contact details, rate → Save Changes
Delete clientClick the trash icon on a client card → confirm deletion. Cannot delete a client that has time entries — you must delete the entries first.
View projectsClick any client card to expand it → shows projects list with status badges
Add projectExpand a client → click Add Project → enter project name and optional code → Add
View contact infoExpand a client card → email and phone shown below the card header
💰 Daily rate invoicing: When a client is set to daily rate, PiTime converts logged hours to days using your Standard Day Hours setting (Settings → Invoice Settings). 8 hours = 1 day, 4 hours = 0.5 day.
🔒 Delete protection: Clients with time entries logged against their projects are protected from deletion. This prevents accidental loss of billing data. Delete the entries first if you need to remove the client.
💰

Invoices

Bill your clients
Invoice Creation Flow
1
Select client
Choose who to bill
2
Pick unbilled entries
Select date range or entries
3
Generate invoice
Auto line items + GST
4
Send / Print
PDF or push to Xero
DetailHow It Works
Invoice numberAuto-generated: INV-YYYYMM-NNN (e.g. INV-202604-001). Atomic counter per month ensures no gaps.
Line itemsEach time entry becomes a line item. Mileage entries added separately at ATO rate.
GST10% applied automatically to all line items including mileage.
TotalsSubtotal + GST = Total. Calculated from line items, not a flat amount.
StatusDraftSentPaid (or Overdue, Void)
Payment termsConfigurable in Settings (default: 30 days)
📊

Dashboard

Your daily overview

Today's Hours

Total hours logged today across all clients and projects.

This Week

Running total for the current week (Mon-Sun).

Unbilled

Total value of billable time entries not yet on an invoice.

Outstanding

Total value of sent invoices awaiting payment.

The dashboard also shows your 5 most recent time entries from the current week, and a Quick Time Entry card that takes you straight to the voice entry form with one click.

Quick entry: Click the New Entry button on the dashboard Quick Time Entry card — it opens the Time Entries page with the entry form already open and the voice input field focused, ready for dictation.

Settings

Configure PiTime for your business

Business Profile

Business name, ABN, address, email, phone. Appears on invoices and correspondence.

Invoice Settings

Standard day hours (8), mileage rate ($0.91/km), payment terms (30 days), invoice prefix (INV), GST rate (10%).

Bank Details

Bank name, BSB, and account number. Displayed on invoices for payment reference.

Xero Connection

OAuth2 connect button. Once linked, invoices and contacts sync automatically. Coming in Phase 7.

Keyboard Shortcuts

Speed up your workflow

PiTime has keyboard shortcuts for common actions. Press ? anywhere in the app to see the shortcuts panel, or click the keyboard icon in the top header bar.

ShortcutAction
Ctrl+N / Cmd+NNew time entry — opens the entries page with the voice input field focused
?Toggle keyboard shortcuts help panel
EscClose any open modal or help panel
💡 Ctrl+N works from any page. Whether you're on the dashboard, clients, invoices, or settings — Ctrl+N always takes you straight to a new time entry with the voice field ready for input.
💡

Tips & Tricks

Get the most out of PiTime
🎤 Use Wispr Flow for hands-free entry. Enable Wispr Flow in macOS settings, then just speak into the voice input field. PiTime's parser handles the rest — no need for exact phrasing.
💰 Log mileage as you go. Add "plus 45 km" to any voice entry and PiTime creates a separate mileage line item on the invoice at the current ATO rate.
📋 Daily vs hourly rates matter. Set the right rate type per client. Daily-rate clients have their hours converted to day fractions on invoices (e.g. 4 hours = 0.5 days at $1,800/day = $900).
📈 Check unbilled regularly. The dashboard shows your unbilled total — don't let billable hours pile up. Generate invoices at least monthly.
🛠 Set up your business profile first. Go to Settings and fill in your business name, ABN, and bank details before generating your first invoice.