Skip to content
Today
What needs doing
This week & focus
This week
Sticky note this device only
Jobs & activity
Live job progress
Recent activity
Recent jobs

My Jobs

New estimate Total ex VAT £0.00

New estimate

Sections

Each section is a separately-priced scope (e.g. "Floor refit", "Uplift & disposal"). For a simple job, just leave the single section.

Site measurements (this section)

Enter floor area + perimeter — line quantities below auto-fill. Tip: you can type dimensions like 2.4 x 4, 2.4*4 + 1.2*3, or a comma list 2.4, 4, 1.2 — they're computed when you tab out.

Subfloor & adhesive (this section)

Pick how the subfloor is prepped and the right adhesive is suggested from the floor you've chosen. These just pre-fill line items you can still edit.
Draws a direction arrow on this room's plan — for plank and board floors. Roll floors get theirs from the seam plan automatically. Drawing only.
0

Section checklist

More options

Pricing mode

Most jobs use Itemised — line items + labour. For large commercial work priced flat per square metre, switch to Per m² / yd². Quick price is the shortcut when the full catalogue build-up is more than the job needs: pick what is going down and type a rate per m² for each line — three for carpet, four for LVT.

Exclusions

Rooms or items the quote does not cover. Shown verbatim at the bottom of the customer sheet.

Project timeline & custom intro

Office notes — internal only

Prices, margins, account numbers, anything money. Never seen by fitters or customers.

Site / access notes — your fitters see these

Keys, parking, timing, on-site instructions. No prices. Never shown to the customer.
Quick site facts for the fitters — who to ask for, when to start, how to get in, where the materials are. Your fitters see these. Keep money out.
Customer price (excl. VAT)
£0.00
Enter measurements above to begin.
Preview customer estimate sheet
Show breakdown & edit individual lines

Materials & line items

Labour

Schedule

Jobs grouped by scheduled date. Unscheduled quotes/jobs sit at the top with a "Schedule" button — tap to set a date.

Planner

Jobs you know are coming — set a rough planned start week and estimated duration. Use this for forward planning beyond the operational week. Move a job to a firm schedule with the "Schedule firmly" button when timing is confirmed. For work you have not won yet, see Pipeline under Sales.

Stock check

Quick lookup for estimators. Type a product, brand or code — see what's free to use in metres and m², how many Full vs Part rolls, longest single roll. Anything reserved, booked, tagged or in quarantine is already off the total.
▸ Full operator system (movements, receipts, health check, Sage export)
Live warehouse system. All operations happen here.
↗ Open in new tab

Product catalog

Editing your price book is a desktop job — open Flooring First on a computer to add or re-price products.

Product catalog

Edit any price, rename a product, or add new ones. These appear when you tap "+ Add from catalog" on a new estimate.

Equipment

Track every tool — where it lives (van or warehouse), what condition it's in, what's in for repair, and what needs ordering. Visible to all logged-in users.

Inventory

Upcoming shortfalls

Stock that won't cover jobs scheduled in the next 7 days. One tap adds it to the shopping list.

Suggested order

Materials below their reorder level, after subtracting what's already reserved for jobs. Review, then add to the shopping list.

Shopping list

New equipment to buy. Mark as ordered → received as they come in.
Purchase orders
Groups your to-order items by supplier. Email or copy each order, then mark it ordered.

Customers

All customers you've quoted. Generated from your jobs — no duplicate data entry. Click a customer to see every job, contact details, and lifetime value.
CHANNELS
JOB THREADS

Van stock

What's on each van right now. Tap a tool to edit it.

Compliance

Track training certificates + expiry. Expiring/expired certs surface on the Dashboard Urgent feed. Keeps you audit-ready for NHS, commercial, and insurance checks.

Training certificates

Vehicle register

Track MOT, service, insurance + tax due dates per van. Expiring/overdue surfaces on the Urgent feed.

RAMS — Risk Assessment & Method Statements

Master template SF-RAMS-001 (healthcare-compliant: Manx Care · Whiterock · DOI). Generate a per-job RAM by filling project details — produces a complete Word doc to hand the main contractor. Issued RAMs tracked below.

Site paperwork

Blank printable templates to fill on site — a site induction record and a daily sign-in / attendance register (fire roll-call). Each downloads as Word.

COSHH register

Control of Substances Hazardous to Health. One assessment per hazardous product — hazards, PPE, controls, first aid, storage + link to the supplier SDS. The seed button loads your standard F.Ball / Amtico / Altro products with known controls; tweak from there.

Tenders

Build and submit gov / contractor tender packs.

Floor-care contracts

SOPs / Knowledge base

How-to guides, safe-working methods + onboarding. Searchable by all staff.

Site Capture

Capture rooms + rough info on site. No prices here — turn it into a quote back at the office.

Projects

Internal stuff we're working on — uniform, shop form, building this system. Not customer jobs.

Learnings

Your own business lessons — jot what you learn, and keep the daily ones worth remembering.

Money

Profit & loss
Aged debt
Budgets — this month
Set monthly £ amounts in Settings → Monthly budgets. Materials and Wages come from the expenses you log against jobs. Other categories use the manual expense log.
Recent expenses
12-week forecast
Revenue & profit trend
Margin per completed job
Cashflow settings — starting balance & lead time
12-week cashflow forecast. Inflows = expected deposits + final invoices. Outflows = material spend before each job — real order £ where you've ordered, otherwise the job estimate — plus warehouse stock top-ups. Each spend is counted once. Everything refreshes as jobs move through the funnel.
Set the bank balance and supplier lead time at the top of the forecast above — both are saved, so the forecast starts from a real number each time. Lead time = days before a job starts that you pay suppliers (match your trade terms).
Sage export
Export invoices + expenses as a Sage 50 import CSV for your bookkeeper. Set codes in Settings ▸ Sage export.

Marketing

Braindump
Note to self — capture now, sort later

History

Assistant

AI-suggested replies to your inbox. Nothing sends until you approve.

Tap any cell to edit — totals update live.
Activity In / Out hours Hrs / wk Business impact Effort Outcome / benefit Priority Status Progress / job
In hours / wk0
Out of hours / wk0
Total / wk0
Tender Library

Master content reused across every tender. Edit once, reuse forever.

Product catalog

Pricing now has its own home — open Mill → Pricebook to edit sell prices, costs and products.

Labour rates

Stage templates

Defines the work stages each job tracks. Edit existing templates or add new ones for different job types (e.g. hospital fit, carpet domestic). Jobs pick a template on the Job progress card.

Stale-job threshold

days idle

Tap feedback (this device)

Diagnostics

Click below to test Firestore connectivity. Runs four checks in sequence and shows exactly which one fails — so we know whether it's auth, rules, or network.

Section templates

Templates pre-fill a section's materials and labour. Built-in templates show as plain rows; your overrides + custom templates show with a ★. Edit a built-in to change what it seeds going forward — your edit lives separately from the original.

Full-job templates

Save a whole estimate — all sections, materials and labour — as a reusable starter. Loading one prices identically to building it by hand because prices are re-read from your live catalog. Use it for repeat jobs like a Ward 2 refit or a standard Amtico room.

Team members

People who work on jobs. Used to assign scheduled jobs and roll up weekly hours in the Schedule tab.

Holiday allowance

Annual holiday entitlement per person and when your leave year resets. Balances show in Schedule ▸ Availability.

Sage export

Codes used when exporting invoices + expenses to Sage 50 (Money ▸ Sage export). Match these to your Sage nominal + tax codes.

Suppliers

Material + tool suppliers (Bostik, Sphere, Altro etc). Each catalog item can link to one or more suppliers with their price + lead time. The shopping list and cashflow forecast use this.

Stock app sync

Catalog and Stock app stay in sync both ways. Push catalog → stock fills in any new products. Pull stock → catalog mirrors back any prices/supplier/reorder changes the warehouse made. Live listener keeps both up-to-date automatically.

Business details

Shown on invoices and quotes sent to customers.

Quote terms & trust

SafeContractor, Constructionline, CIOMAS, Amtico-approved, insurance… Paste a label and an https link to the certificate or badge page. Internal RAMS/COSHH are never shown.

Online payment

Customer-facing "Pay this invoice" button uses this link. Easiest source: Stripe Dashboard → Payment Links → create a generic link → paste it here.

Push notifications (FCM VAPID key)

One-time setup. After pasting, go to Settings → Browser notifications → Enable real push. Then closed-app pushes send via /api/push (needs the FIREBASE_SERVICE_ACCOUNT secret set).

Bank details (printed on invoices)

Insurance & accreditations (printed in the Company Information section of generated RAMS documents)

RAMS master review (competent-person review of master SF-RAMS-001 — stamped on every generated RAM)

Invoice settings

Set to 0 if not VAT-registered.

Encrypted backup

Download a passphrase-encrypted snapshot of every job, customer, expense, task, supplier, and setting. Store on USB / external drive / password manager. Recovers from Firestore outage, accidental mass-delete, lost account, or vendor failure. Recommended weekly.

▾ How encryption works
Backup uses AES-256-GCM with a key derived from your passphrase via PBKDF2 (100,000 iterations, SHA-256). Without the passphrase the file is unreadable — Anthropic, Cloudflare, Firebase, Apple, Microsoft, anyone can hold a copy and never decrypt it. Write the passphrase down in your password manager. Lose the passphrase = lose the backup permanently.

Scope: this passphrase encryption protects the downloadable backup file only. Your live data — in the cloud and cached on this device for offline use — is not separately passphrase-encrypted; it's protected by your Google sign-in, the account allow-list, and this device's own security. So keep a screen-lock + full-disk encryption on any device that opens this app (FileVault on Mac, BitLocker on Windows, on by default on iPhone/iPad) — that is what keeps the on-device data safe if the device is lost or stolen.

Version history (this device · last 20 saves)

Every save is snapshotted locally on this device. If jobs ever go missing, restore a recent version in one tap — works even if the cloud is having a bad day.

Security — active sessions

Devices currently signed in. Click Sign out on any device you don't recognise — that device will be kicked back to the login screen within ~60 seconds. Admins see everyone; everyone else sees their own only.

Crew sign-in links

Each crew phone signs in by its own link — send it once on WhatsApp, they add it to their home screen, and tapping the icon signs them in every time. Nothing to remember, nothing typed. The link shows once — losing it just means issuing a new one. Switch a link off here and that phone is out at its next open.

What the team uses

View opens across office devices — so you build for what's actually used, not guesses. Private to your own data; no third-party analytics.

Browser notifications

Get alerted when a task is assigned to you, an invoice is paid, or a new walk-in is captured — even when the app isn't the active tab. Local-only (works when app is open). For push-when-closed (e.g. lad on van with screen off), needs server-side push pipeline (deferred).

Marketing — suppression list (GDPR)

Permanent block list. Emails added here never receive any campaign or auto-message, regardless of per-job consent state. Add when a customer unsubscribes or asks not to be contacted. Removing requires a confirmed re-opt-in from them.

Import supplier price list

Paste a markdown table of product names + prices (Altro, F. Ball, Farrow & Ball etc) — or photograph a printed price list and let AI read the rows. Either way you review every match before anything changes. Updates cost field on matched catalog items. Customer sell prices unchanged. Audit log records every change.

Monthly budgets (£)

Set a monthly £ amount per category. Money tab shows variance vs actuals — Materials and Wages come from the expenses you log against jobs; other categories use your manual expense log.

Job-wide defaults

Cost, not the charge-out rate card. Out-of-hours is costed at 1.5× and doubletime at 2× of this automatically. Leave blank to keep the old charge-rate costing. Per-person overrides (e.g. an apprentice at £20) live below.
Suggested carpet hours

What the estimator suggests for one room. The first two cover fitting only — laying underlay and carpet, no prep or stairs — started from the 44 Ard Ryt job (0.85 hrs a room plus 0.25 hrs a m²). The third adds time for lifting out the old gripper, carpet and underlay, and it is only ever applied when that section's Lift & dispose box is ticked. It comes from the six-room job of 25 Aug (65 clocked hours over 163 m²). Set it to 0 if you price uplift as a whole-job line instead. Correct all three as real clocked hours come in.

AI Assistant

The "Ask" copilot answers questions about your business and drafts messages — office/admin only, read-only (it can't change or send anything). Runs on your Anthropic API key.

Daily wisdom

A short business quote, lesson or fact each day — pops up once when you open the system, and lands in your inbox each morning. Save the good ones to your Learnings.

Morning digest (office)

A once-a-day 7am summary of what's on today — jobs and crews, the first start time, tasks due, and how many invoices are overdue to chase. Arrives as a notification so you don't have to open the calendar. Office only; never shows any money figures. Off by default.

Customer reminders

Automatic customer-facing emails, sent from your business system. Both stay off until you switch them on, and every send waits for your email relay to be live.

Data & privacy (Isle of Man)

This tool stores customer data (names, addresses, phone numbers) in your cloud business system — hosted for you by Google (Firebase) and Cloudflare, with AI assistance from Anthropic and Google (Gemini — creates the floor-preview images from customer room photos). The Isle of Man Data Protection Act 2018 (Applied GDPR) applies because you're processing personal data — here are the controls to help you stay compliant.

Find a customer's data (right of access / erasure)

Who viewed this customer's records? (DSAR Article 15)

A customer can ask "who at Swales Flooring has seen my data?" Search by their name or email to list every staff member who opened their job or profile in the last 12 months. Copy as a formatted DSAR response.

JavaScript errors (last 30 days)

Silent bugs caught by error monitoring. Helps diagnose "why won't it save?" issues users don't report. Click an entry to see stack trace.

Data health — sync-failure early warning

Predicts silent sync failures before they bite: the whole-state cloud blob nearing Firestore's 1 MB per-document cap (past it, saves are blocked with no visible error), and any single record too big for per-record sync. Computed locally from this device's data.

Audit log — who did what when

Business-significant changes (job edits, invoice paid, stage changes, deposits, expenses, tasks) are logged automatically with the staff member's email + timestamp. Useful for fraud / dispute investigations + accountability when more than one admin is on the system.

Retention review

Isle of Man data protection law requires that personal data not be kept longer than necessary. A common retention period for completed jobs is 6 years (matching the limitation period for contract claims).

Privacy notice for your customers

A short notice you can give to customers explaining how you use their data. Edit to suit your business.

Compliance reminders

  • If you handle personal data for business purposes, you likely need to register with the Isle of Man Information Commissioner (inforights.im) and pay the annual registration fee.
  • Only collect what you need (name, address, phone for the job).
  • If a customer asks you to delete their data, find them above and delete the relevant jobs.
  • If a device or account is compromised, treat it as a potential data breach — assess whether to report to the Isle of Man Information Commissioner within 72 hours.
  • Consider a screen-lock passcode and full-disk encryption (FileVault on Mac, BitLocker on Windows, default on iPhone) as basic security.
  • This tool is not legal advice. The Isle of Man Information Commissioner has guidance at inforights.im.

Auto-backup & multi-device

Pick a folder once and every change you make automatically writes a backup file there. Choose a folder inside iCloud Drive or Dropbox and the file syncs to your phone. On the phone, tap "Pull latest backup" each time you open the app to load whatever your desktop most recently saved.

Workflow: Set folder once on desktop → auto-backup runs silently. On iPhone, open Files app → tap the .html file (also stored in iCloud) → tap "Pull latest backup" → pick the JSON. Changes you make on phone need to be exported and pulled back on desktop, since iOS browsers can't write directly to a folder.

Backup & data export

Your jobs and settings are stored on this device. If you don't back up regularly and your device is lost or its browser data is cleared, all jobs are lost. Export a backup file every so often (and after big jobs) and keep it in iCloud/Dropbox.

What's new

Running list of recent changes to the app — what shipped and when. Also reachable by typing "what's new" into search (Cmd+K).

Feedback inbox

Friction notes you submit via the Flag button are saved to Firestore /feedback. List newest first. Use Copy all for Claude to dump everything to clipboard, then paste into a new chat.

Estimating house rules

Rules the AI follows when pricing — e.g. "Always add F49 adhesive on Whiterock", "Coving labour £12/lm". One rule per line. The AI reads these each time it prices a capture.

Auto-tuning (learns from completed jobs)

Adjusts new quotes per work-type from how past jobs actually ran (≥4 jobs needed). Shows as an "Experience adjustment" line you can see. Never changes saved quotes.

About

Single-file flooring estimator. Works offline. Save to iCloud/Dropbox to access from any device — open the .html file in your mobile browser.

On iPhone: open in Safari → Share → "Add to Home Screen" for an app-like icon.