Features / Estimating

Estimating.

billWright's Estimating area covers the full arc from pricing a job to watching it close: a visual pipeline, quote management, reusable calculators, a flat-rate price book, a trade-specific estimate calculator, and a rate analyzer that checks whether your prices are working.

Pipeline

In the app#/pipeline
Pipeline screen in billWright

The Pipeline screen gives a visual lifecycle view of every deal in the system, derived from quotes, jobs, and invoices.

Reading the pipeline

Each deal card moves through up to seven named stages:

StageSub-label
Draftedinternal
Sentto client
Acceptedjob opened
Workingin shop
Completework done
Awaiting payinvoiced, unpaid
Closedpaid, filed
  • A deal's current stage is highlighted; completed stages show a check mark.
  • T&M / direct jobs (no governing quote) skip the Drafted and Sent stages.
  • A deal marked lost stops at the Accepted node and the remaining stages are shown as skipped.
  • A settled deal (fully paid or completed with nothing owed) shows its final node as static rather than pulsing.

Sorting

Deals are ordered by most-recent activity timestamp, newest first.

Quotes & Proposals

In the app#/quotes
Quotes screen in billWright

The Quotes screen lists every quote and every T&M job that has no governing quote, letting you track the full sales pipeline from draft to payment.

Quote lifecycle states

A quote can be in one of the following states:

  • Draft - created but not yet sent
  • Submitted - sent to the client
  • Accepted - client said yes; a job is opened
  • Declined - client said no (shown as "lost")
  • Invoice drafted / Invoiced - billing is in progress
  • Paid - all invoices settled

T&M / direct jobs

Jobs that were opened directly (no linked quote) appear as their own pipeline cards in the quotes list. They show the job reference number and total billed instead of a quote number.

Reading the list

Each row shows:

  • Quote or job number and title
  • Client name
  • Total value
  • Current state
  • Days since last activity
  • Payment status (paid date when applicable)

Finalized quotes

A quote can be marked finalized. Finalized quotes are tracked separately and their IDs are available for filtering.

Estimator

In the app#/estimator
Estimator screen in billWright

The Estimator screen runs an existing calculator against a set of inputs and shows a live itemized cost breakdown.

Running an estimate

  1. Navigate to #/estimator.
  2. If you have more than one calculator, use the Calculator dropdown at the top to select the one you want.
  3. Fill in the Inputs fields on the left panel. Each field shows its label and accepts the type defined in the calculator (number, text, etc.). Default values are pre-populated.
  4. The output panel on the right updates live as you change inputs, showing every formula row with its computed quantity, cost, and a running total.
  5. Input values are remembered for the session, so switching between calculators and returning preserves your last entries.

When no calculators exist

If no calculators have been built yet, the screen shows an empty state with a Build a calculator button. Clicking it navigates to #/calculators/new.

Editing the active calculator

The screen header includes an Edit calculator link that opens the current calculator in the builder (#/calculators/<id>), and an All calculators link that returns to the calculator list.

Calculators

In the app#/calculators
Calculators screen in billWright

The Calculators screen is the builder where you create and manage reusable estimating calculators.

Creating a new calculator

  1. Navigate to #/calculators and click New calculator, or go directly to #/calculators/new.
  2. Give the calculator a name and an optional description.
  3. Add input fields. Each input needs a key (used in formulas), a label, a type, and an optional default value.
  4. Add formula rows. Each row is either a qty row (computes a quantity) or a cost row (computes a dollar amount). Enter the formula using the input keys you defined.
  5. The live preview panel updates as you type, running the engine against current defaults and showing computed values for every row.
  6. If a formula contains an error, an inline validation message appears under that row. Errors are reported by the engine, not parsed in the browser.
  7. Click Save to persist the calculator.

Editing an existing calculator

  1. Navigate to #/calculators and click the calculator you want to edit.
  2. Modify inputs or formula rows as needed. The preview updates live.
  3. Save when done.

Price Book

In the app#/pricebook
Price Book screen in billWright

The Price Book holds your standard flat-rate items. You can search, filter, add items to a running estimate cart, and manage the catalog.

Browsing items

  1. Navigate to #/pricebook.
  2. Use the search box to filter by item code or name (case-insensitive, live filter).
  3. Use the trade filter buttons (All + one button per trade) to narrow to a specific trade category.
  4. The item count badge updates to show how many items match the current filter.

Reading an item row

Each row shows:

  • Item name (bold) with code and trade below it
  • Unit price in the format $X.XX / unit
  • An Add button, an Edit button, and a Delete button

Adding items to an estimate

  1. Click Add on any item row (or click anywhere on the item's main area).
  2. A toast confirms "Added to estimate."
  3. The estimate cart panel on the right updates with the item and its quantity.
  4. Clicking Add again increments the quantity for that item.

Creating a new item

  1. Click New item in the screen header.
  2. Fill in the item editor (code, name, trade, price, unit).
  3. Save the item.

Editing an item

  1. Click Edit on the item row.
  2. Modify the fields in the item editor.
  3. Save.

Deleting an item

  1. Click the trash icon on the item row.
  2. A confirmation dialog appears: "Delete this item? <name> will be removed from the price book."
  3. Click Delete to confirm. The item is removed immediately.

Estimate Calculator

In the app#/pricing
Estimate Calculator screen in billWright

The Estimate Calculator is a trade-specific estimating module with four tabs.

Tabs

TabPurpose
Weld estimatorStructural-steel fillet weld cost calculator calibrated from shop observations
Generic estimatorLine-item estimator available to all tenants
Rate settingsEdit the underlying rate inputs that drive weld cost calculations
Observation logRecord and review weld observations used to calibrate rates

Weld estimator tab

  1. Select an AISC W-shape from the dropdown. The hint line below the field shows the shape's depth, flange width, flange thickness, and web thickness.
  2. Select a Connection type. Only Fillet is currently active; Groove and Plug are listed as coming soon.
  3. Select a Position: Flat (1F/1G), Vertical (3F), or Overhead (4F).
  4. Select a Batch handling method: Floor / in-jig or Ladder.

Rate Analyzer

In the app#/rate-analyzer
Rate Analyzer screen in billWright

The Rate Analyzer answers the question "Are my prices right?" by comparing real billed amounts against real hours logged.

Reading the KPI cards

Three headline numbers appear at the top:

  • Blended effective rate - your average realized revenue per billable hour, across all jobs
  • Cost per hour - what one hour of work actually costs your business (labor, overhead, and other factors combined)
  • Margin per hour - the difference between the two, with a percentage of effective rate shown as a delta indicator (green if positive, red if negative)

Cost breakdown donut

A donut chart shows how each cost category contributes to the total cost per hour. Each slice is labeled with its category name and dollar amount. A legend beside the chart lists every category with its color swatch and per-hour cost.

Per-job effective rate table

The table lists every job with:

  • Job name and client
  • Hours logged (one decimal place)
  • Amount billed

This lets you see at a glance which jobs came in above or below your blended rate.

The honest read

A narrative section below the charts states your blended effective rate, your cost per hour, and how much you actually keep per billable hour in plain language.

Acting on the results

If a specific client or job type is pulling your effective rate down, the screen includes an informational alert linking to #/rates where you can add a per-client rate override.