Skip to content

How It Works

Hardhat Flow organizes every project around a single, linear pipeline. Work enters the system as a Bid, advances to a Job when approved, generates an Invoice, and closes out when payment is complete. This page explains each stage, who controls the transitions, and what happens automatically.


The Full Lifecycle

New Bid
  └─► Bid Awaiting PO
        └─► Bid Approved ──► Job Created (automatic)
              └─► Ready to Start
                    └─► In Progress
                          └─► Completed / Needs Invoice
                                └─► Invoice Submitted
                                      └─► Partially Paid
                                            └─► Paid
                                                  └─► Workflow Complete

At any point an Owner can cancel a bid or job, and an Owner can reject a bid that has not yet been approved.


Stage 1: Bid

A bid represents a proposed scope of work with associated pricing and details.

Available to: Owner, Project Manager

Only Project Managers and Owners can create and edit bids. Accounting cannot create bids. Supervisors and Badge Workers have no access to bids at all.

Bid Statuses

Status Meaning Who sets it
New Bid Freshly created, work in progress Auto-set on creation
Bid Awaiting PO Submitted and waiting for purchase order Project Manager or Owner
Bid Approved Client approved — triggers automatic Job creation Owner only
Bid Rejected Declined — no job created Owner only
Bid Cancelled Withdrawn at any time Owner only

Only Owners can approve, reject, or cancel bids.

Project Managers can create and edit bids and advance them to Awaiting PO, but cannot approve, reject, or cancel.

Auto-Job Creation

When an Owner sets a bid to Bid Approved, Hardhat Flow automatically creates a Job linked to that bid. The job is set to Ready to Start and the assigned Project Manager receives an SMS notification. No manual step is required.


Stage 2: Job

A job represents active work being executed in the field.

Available to: Owner, Project Manager, Supervisor (assigned only), Badge Worker (assigned only)

Job Statuses

Status Meaning Who sets it
Ready to Start Job created, not yet underway Auto-set on bid approval
In Progress Active field work Project Manager or Owner
Completed / Needs Invoice Work done, awaiting invoicing Project Manager or Owner
Job Cancelled Job halted Owner only

Job Assignment

Each job has exactly:

  • One Project Manager — responsible for the job end-to-end
  • One Supervisor — oversees field execution
  • One or more Badge Workers — perform the work (also used as site escorts)

Change orders on the job detail page track approved add-on scope and amounts beyond the original PO. See Change Orders.


Stage 3: Invoice

Once a job reaches Completed / Needs Invoice, the Accounting team creates an invoice.

Available to: Owner, Accounting

Project Managers, Supervisors, and Badge Workers cannot create or edit invoices.

One invoice per job

Each job may have exactly one invoice. Multiple payments against that invoice are allowed, but you cannot create a second invoice for the same job.

Invoice Statuses

Status Meaning Who sets it
Invoice Submitted Invoice sent to client Accounting or Owner
Partially Paid One or more payments received, balance remains Auto-set on first payment
Paid Full balance received Auto-set when balance reaches zero
Workflow Complete Final state — job and invoice fully closed Set by system

Stage 4: Payment

Payments are recorded against an invoice by the Accounting team or Owner. Each payment reduces the outstanding balance. When the balance reaches zero, the invoice status advances to Paid and the system automatically sets the workflow to Workflow Complete.


Full Status Transition Reference

Bids

New Bid → Bid Awaiting PO → Bid Approved
                          → Bid Rejected   (Owner only)
        → Bid Cancelled   (Owner only, any time)
Bid Awaiting PO → Bid Cancelled (Owner only, any time)
Bid Approved    → Bid Cancelled (Owner only, any time)

Jobs

Ready to Start → In Progress → Completed / Needs Invoice
                             → Job Cancelled (Owner only)
In Progress    → Job Cancelled (Owner only)

Invoices

Invoice Submitted → Partially Paid → Paid → Workflow Complete

Status transitions are enforced server-side.

The API rejects any transition that does not follow the allowed sequence. Skipping statuses is not possible.