OpenCollar Technologies logo

Case study · Specialty trade & industrial contracting

Construction Quotes: a contractor’s spreadsheet, rebuilt as a system

A browser-based operations platform for US industrial and mechanical contractors. One quote number carries a job from the first estimate through field labor, materials, rentals and payroll to the invoice and the cash collected, with the margin visible at every step.

Industry
Specialty trade & industrial contracting
Built for
Plant maintenance, demolition, fabrication, rigging
Client
A US industrial and mechanical contracting company
Delivery
Live in production · multi-tenant · self-hosted
The Construction Quotes owner dashboard: open quotes, work in progress, total quoted value and planned gross profit, with quoted value charted against actual cost by month.
Screen 01 of 7: the owner dashboard, a real capture from the live system with identifying detail blurred.
  • 124

    delivered capabilities, from estimating through to collected cash

  • 1

    quote number carrying the job end to end - no re-keying between steps

  • Owned

    source, data and hosting - a capital asset, not a per-seat subscription

What Construction Quotes is

Construction Quotes is custom estimating and job costing software for contractors who bid work, send crews and bill for it. It does the arithmetic the spreadsheet did, prints the same documents, and keeps an audited record of what every job actually cost.

Most US specialty contractors estimate out of one workbook. That works until the company outgrows the person who built it: the pricing knowledge sits in one file, with no record of what the work cost to deliver.

Same family as the custom software services we deliver for US operators, and the same phased development approach.

The industry it serves

NAICS 238 - specialty trade contractors

Company size
15 to 250 employees
Bid types
Fixed-price and time-and-materials, side by side
Equipment
Rented, and costed back to the job
Biggest cost
Field crew hours - the largest and least-tracked cost in the business
Called in when
A line goes down, a structure needs demolishing, a platform needs fabricating, a chiller needs replacing
  • Mechanical & HVAC contracting
  • Industrial services
  • Plant maintenance
  • Millwrighting
  • Structural steel
  • Rigging
  • Equipment installation

Built against one such company’s real workbooks and real job history. Other industries we build operational systems for.

How one quote number carries a job from bid to cash

One quote number runs all four stages - estimate, win the work, do the job, get paid - and nothing is re-keyed between them, so planned cost and real cost sit on the same record while the job is still open.

  1. 01

    Estimate

    Break a job into tasks under lettered categories, then price labor, materials, equipment and rentals on each one.

    • Markup per quote
    • Overtime factor
    • Rate snapshot on every saved line
  2. 02

    Win the work

    Print the quote as a PDF, email it from the app, and track it through the pipeline under the company’s own status names.

    • Estimate · Quote · Project
    • Duplicate for a new number
    • Frozen revisions
  3. 03

    Do the job

    Crew hours are typed into a weekly grid and land on the task they were worked on as real labor cost.

    • Friday to Thursday
    • Regular and OT per day
    • Rental POs at internal cost
  4. 04

    Get paid

    Invoice ticked work or build a custom invoice, then record what comes in and see what is late.

    • Staged draws
    • Payments and reversals
    • Past-due total
    • QuickBooks import file

Where the margin becomes visible

The quote holds planned spend; payroll and vendor bills record actual spend. The Quote Summary puts the two on the same row, per task, with the gross profit and margin that resulted. A year of that is what makes next year’s bids better.

What the client asked for

The engagement started from the company’s live estimating workbook, a quote log going back years, and one sentence: make it at least as functional as the Excel file we use now. Every item below was asked for by the client, and every item was built.

The original ask

Match the workbook, do not simplify it.
Pricing arithmetic, markups, the overtime factor and the task lettering behave exactly as the spreadsheet did.
Keep the paperwork.
Quote PDF, estimate document, purchase order and invoice keep printing as the company’s own documents.
Laymen must be able to edit the lists.
Customers, materials, rentals and rates maintained by office staff, not by a developer.
Sensitive numbers stay hidden.
Pay rates, margins, SSN and date of birth visible only to the right people - which became the permission grid.
Excel stays in the loop.
History comes in from workbooks, reports go back out, and nothing syncs behind anyone’s back.

What they asked for after seeing it working

  • A task-breakdown export laid out the way their own estimators read it.

  • A Friday-to-Thursday labor grid usable on a phone held sideways - how the office actually collects hours.

  • Per-customer quote numbering: their own log proved they pre-allocate blocks of numbers per customer.

  • A QuickBooks invoice file, so the bookkeeper stops re-typing invoices.

  • Email quotes, invoices and POs as PDFs from the app, with a record of what was sent.

  • Bill a job in draws against agreed payment terms rather than one invoice at the end.

  • Find old drawings and quotes by name, including links into supplier portals.

  • Payroll: pick the workers first, let an administrator define new kinds of cost code, override a pay figure when the hours do not come to it, and record regular and overtime as a pair every day.

Where we pushed back - and why that mattered

“Anyone can edit any list” collided with “pay rates must stay private”. The honest answer was a permission grid, not a blanket yes.

Per-customer numbering was questioned, because the customer code already sits inside the number - until their own quote log showed reserved blocks per company. Then it was recommended and built.

The client got a system that reflects how they really work, not how a brief described it.

The screens that run the business

Seven screens carry most of the working day - dashboard, quote register, task breakdown, planned-against-actual summary, weekly payroll grid, invoice register and Excel Bridge - and every capture below is from the live system, not a mockup.

  • 7

    screens shown here, of a far larger application

  • 40+

    server-side modules behind the interface

  • 1

    number that carries a job from estimate to cash

Every screen shown here is a real capture from the working application. Company names, staff names, customer names and contact details have been blurred to protect the client’s commercial information. Layout, figures and behaviour are untouched.

  1. Screen 01: Owner’s dashboard

    Every headline number on one screen, and every row is a link into the quotes behind it.Open quotesWork in progressTotal quotedPlanned gross profitWaiting on a priceQuoted value against actual cost by monthPipeline by status and phase
  2. Screen 02: Quote register

    Every quote and estimate in one filterable table, with running totals at the foot.CustomerFixed-price or T&MStatusPhaseQuoted totalInternal costGross profitMarginFilter by customer, status, phase, date, value or margin bandExport the result
  3. Screen 03: Task breakdown

    A job split into tasks under lettered categories, with every labor, material and rental line hanging off a task.AdminFabricationConstructDemolitionEngineeringClean-upMaterial handlingCode, schedule, status and value per task
  4. Screen 04: Planned against actual, per task

    The screen that tells an owner where a bid was wrong while there is still time to act on it.Quoted laborQuoted materialInternal costReal payroll spentVendor billsTrue costGross profit and margin per task and per job
  5. Screen 05: The weekly payroll grid

    Hours save as they are typed, total into pay at the rates in force, and land on the job as real labor cost.Friday to ThursdayEvery worker against a job and cost codeRegular and overtime side by sideEvery day of the week
  6. Screen 06: Money owed, at a glance

    Every invoice with what is outstanding, what is past due and what has already gone to QuickBooks.Record a paymentAdd a noteReprint the PDFEmail the customerVoid itEvery action recorded against the person who took it
  7. Screen 07: The Excel Bridge

    Years of history move in from the company’s own workbooks, and reports move back out.Always by handAlways previewed before anything is writtenAlways undoableEvery skipped row explained by sheet and line

What is not shown here

These seven are the screens an owner sees most. Behind them sit:

  • Quote log
  • Global search
  • Customer records
  • Employee records
  • Vendor catalogue
  • Materials catalogue
  • Rental purchase orders
  • Payment links
  • Staged billing plans
  • Company file library
  • Permission grid
  • Activity log
  • Database backups
  • Platform owner panel
  • Printed quote
  • Estimate document
  • Printed invoice
  • Purchase order
  • Payroll documents

The full delivered list of 124 capabilities is next.

Everything the system does

124 delivered capabilities, grouped by the part of the business they serve: quoting, numbering, job costing, payroll, invoicing, purchasing, documents, master data, the Excel and QuickBooks bridges, access control and the platform itself.

Showing 124 of 124 delivered capabilities.

Quoting & estimating18

  • Quote register
  • New quote builder
  • Tasks by category
  • Task codes per job
  • Labor lines
  • Material lines
  • Equipment lines
  • Rental lines
  • Duration pricing
  • Markup per quote
  • Overtime factor
  • Rate snapshots
  • Live totals
  • Fixed price or T&M
  • Contractor breakout
  • Duplicate a quote
  • Frozen revisions
  • Auto-supersede

Numbering & status10

  • Per-customer numbers
  • Reserved number pool
  • Void a number
  • Release a number
  • Restore a number
  • Bulk number actions
  • Custom status list
  • Estimate / Quote / Project
  • Phase chips
  • Stats exclusions

Job costing8

  • Planned vs actual
  • Cost per task
  • Real cost so far
  • Gross profit
  • Margin percentage
  • Variance view
  • Vendor bill capture
  • Job cost from hours

Payroll15

  • Weekly hours grid
  • Friday to Thursday
  • Regular and OT pairs
  • By job or by worker
  • Cost code book
  • Admin-defined code kinds
  • Non-job time codes
  • Pay override
  • Overtime check
  • Week notes
  • Submit a week
  • Payroll PDF
  • Payroll Excel
  • Email the week
  • Phone landscape use

Invoicing & cash15

  • Invoice ticked work
  • Custom invoice builder
  • Staged billing plans
  • Progress draws
  • Derived invoice status
  • Read-only invoice numbers
  • Void an invoice
  • Invoice number recovery
  • Record a payment
  • Reverse a payment
  • Outstanding total
  • Past due total
  • Payment links register
  • Invoice notes
  • Invoice attachments

Purchasing7

  • Rental purchase orders
  • Vendor picked per PO
  • Lines at internal cost
  • Delivery charge
  • PO PDF
  • PO status
  • Buy list export

Documents12

  • Quote PDF
  • Estimate document
  • Invoice PDF
  • Quote summary PDF
  • Email quotes
  • Email invoices
  • Email POs
  • Email delivery log
  • Notes on any record
  • File attachments
  • Links to portals
  • Company file library

Master data9

  • Customers
  • Company contacts
  • Vendors
  • Employees, full HR
  • Pay rate history
  • Materials catalog
  • Rental catalog
  • Categories
  • Durations

Excel & QuickBooks8

  • Pull from Excel
  • Preview before commit
  • Undo a session
  • Redo a session
  • Push to Excel
  • QuickBooks import file
  • Blank template
  • Per-row skip reasons

Control & security10

  • Custom designations
  • Permission grid
  • Pay visibility control
  • SSN locked to admin
  • Login lockout
  • Activity log
  • Process run log
  • Database backups
  • Data cleanup preview
  • Bulk delete guard

Platform12

  • Multi-tenant
  • White-label per client
  • Company logo upload
  • Platform owner panel
  • Request access signup
  • Per-org reporting
  • Mail server test
  • Global search
  • Search down to tasks
  • Clean deep links
  • Quote log register
  • Self-hosted

What it runs on

PHP 8.2 on CodeIgniter 4.7 with a MySQL database, built as a single-page application with real clean URLs - so every screen, down to an individual job, is a link that can be bookmarked, emailed or opened directly.

  • PHP 8.2
  • CodeIgniter 4.7
  • MySQL
  • Single-page application
  • Real clean URLs
  • Server-side PDF generation
  • Native Excel read/write
  • Self-hosted

Documents are generated server-side as true PDFs, and Excel is read and written natively, so workbooks move in and out with no conversion step and no third-party service.

More on the technologies we build production systems on and on application security and access control.

The engineering decisions that matter

  1. Numbers never break relations.

    Every record has an internal identity separate from its business number, so re-issuing a quote number can never orphan the work attached to it.

  2. Saved lines keep their own rates.

    Changing a rate or a markup today does not silently reprice a quote sent last month - a rule that protects the company in a dispute.

  3. Nothing syncs behind anyone’s back.

    Every Excel transfer is triggered by a person, previewed before it writes, and undoable afterwards.

The problems US contractors keep running into

Every row below is a well-documented failure mode in American specialty contracting, and the right-hand column is what this system does about it.

The problemOne spreadsheet, built and fully understood by one person.
Resolved byPricing rules, markups and task structure in a shared system any trained estimator can use.
The problemField labor is the biggest cost and the least tracked; hours arrive on paper, late, and never reach the job.
Resolved byA weekly grid ties every hour to a job and a cost code and posts it as real labor cost that week.
The problemMargin erosion is invisible until the job closes.
Resolved byPlanned against actual, per task, updated as costs land - while the job is still open.
The problemSlow billing strangles cash flow: work finishes in week one, the invoice goes out in week five.
Resolved byInvoices raised from work already itemised and priced, including staged draws against agreed terms.
The problemReceivables age quietly; nobody can say on a Monday what is overdue.
Resolved byOutstanding and past-due totals on the invoice screen, with per-invoice status and payment history.
The problemThe same data is typed three times - estimate, payroll, accounting package.
Resolved byOne record throughout, with a QuickBooks import file and Excel transfer in both directions.
The problemOvertime is worked out by hand, inconsistently, creating wage-and-hour exposure.
Resolved byRegular and overtime recorded as a pair on every day, with an overtime check across the week.
The problemChange orders are agreed verbally on site, then never billed or later disputed.
Resolved byFrozen revisions keep every version of the paper that was sent, with notes, files and an audit trail.
The problemQuote numbers collide or go missing when several people issue them.
Resolved byA controlled number pool per customer - reserved, issued, voided and released on the record.
The problemEveryone sees everything, including pay rates, margins and employee personal data.
Resolved byDesignations with a permission grid; pay and margin hidden by role, personal data restricted to admins.
The problemSkilled-labor shortage meets admin overhead: growth adds office staff faster than it adds crews.
Resolved byThe re-keying, chasing and reconciling that consumed most of the administrative day is removed.
The problemYears of job history are locked in old workbooks, so the same bidding mistakes repeat.
Resolved byHistory imported through the Excel Bridge, and every new job recorded comparably from then on.

If several of those describe your week, the where-to-start guide sets out how we scope a first phase, and the outcomes we hold ourselves to explains how delivery is measured.

What changes for the company that owns it

Quoting stops being one person’s job, labor cost lands on the job the week it happens, and invoices go out from work that is already itemised and priced. Because the system is owned rather than rented, the cost history it accumulates is an asset on the company’s own books.

Faster
quote-to-cash cycle, because billing starts from work already priced and recorded
Visible
margin per task, per job, while the job is still open and can still be corrected
Lower
administrative hours per job - the office scales without adding office staff

The software pays for itself on administrative time alone. The compounding value is a bid book that gets sharper every quarter.

The day-to-day outcome

  • Quoting stops being one person’s job.

    The pricing rules live in the system, so a second estimator works without inheriting a workbook.

  • Labor cost lands the week it happens.

    Not at month end, not in a separate payroll file, and not as a guess.

  • Invoices go out faster.

    The work is already itemised and priced, which is the most direct improvement there is to cash flow.

  • The bookkeeper stops re-keying.

    Invoices reach QuickBooks as a file, not as thirteen manual entries with thirteen chances to fat-finger a figure.

  • Nothing is lost between steps.

    One number carries the estimate, the PO, the hours, the invoice and the payment.

  • Every action has a name and a time on it.

    Internal and customer disputes are settled with a record rather than a recollection.

Owning it against renting it

Software a company rents disappears the day it stops paying; software it owns is capital that appears in due diligence, transfers in a sale and carries no per-seat penalty for growth.

Renting a commercial job-cost platform compared with owning a system built for your business
Renting a platformOwning this one
Cost rises with every user you hire, every year - commercial job-cost platforms charge per seat per month, forever, and that bill rises exactly as the company succeeds.Adding a user costs nothing. Growth is free at the licence line.
You fit your process to the product, and pay to change what does not fit - if it can be changed at all.The product fits your process, because it was built from your workbooks and your week.
Your history sits in a vendor’s database, exportable on their terms and readable only in their format.The database is yours, hosted where you choose, with Excel in and out by design.
An operating expense that leaves nothing behind the day you stop paying it.An asset that appears in diligence and transfers with the company in a sale.

How ownership is structured commercially: pricing models and the pricing page.

What compounds over time

  • Cost history becomes a bidding advantage.

    Every finished job deposits a comparable record of what that work really costs, so the bid book sharpens each quarter instead of resting on the owner’s memory.

  • Growth stops costing administration.

    Doubling the crew does not double the office, because the reconciling and re-keying was removed rather than distributed.

  • Key-person risk falls away.

    The knowledge that lived in one estimator’s workbook now lives in a system the company owns and can train staff on.

  • It is already multi-tenant.

    The same platform can carry further entities, divisions or acquisitions under one roof, or be white-labelled entirely.

Every year it runs, it is worth more, not less.

What it is worth at the point of sale

Buyers discount heavily for anything that looks like it lives in the owner’s head. A platform you own, holding years of clean job-cost history, proves the company can price and deliver without the founder in the room: the difference between selling a book of relationships and selling a business that runs.

What the outcome depends on, said plainly

No system delivers this on its own. The returns arrive when hours are entered every week rather than every month, when vendor bills are filed against the job that incurred them, and when the office stops keeping a private spreadsheet alongside the application. Those are habits, not features.

The software makes the right habit the easy one: hours save as they are typed, a purchase order is one click from the rental lines, and the margin is on screen while the job is open. But a company that does not enter its hours will learn nothing from any system, including this one. That was said to the client before a line was written.

Build one for your business

Construction Quotes was built for one company’s workbooks, numbering and week, and we build the same class of system for yours - estimating, job costing, field labor, purchasing, invoicing and reporting, shaped around how your business actually runs.

Contractor, manufacturer, distributor or service business, the pattern is the same: the spreadsheet that got you here will not get you where you are going. As a US custom contractor software developer we take the same route whether the target is a quote-to-invoice system, a plant maintenance platform or an AI automation layer over work you already do.

How an engagement usually goes

  1. We start from what you already use.

    Your spreadsheet, your quote log, your documents - not a generic template.

  2. You get a working phase early.

    The first delivery is a complete workflow you can run the business on, not a twelve-month wait.

  3. You own the result.

    The source code, the database and the data are yours, hosted where you choose.

  4. It keeps growing with you.

    New requirements become the next phase, priced and built on the same foundation.

The kind of work this is

  • Estimating & job costing

    Pricing that matches how your estimators already work, with planned-against-actual once the job is running.

  • Field & workforce

    Timekeeping, scheduling and cost-code capture that survives a job site and lands on the right job.

  • Billing & bridges

    Invoicing, staged draws, receivables, and clean transfer into the accounting package you already use.

Browse the wider engineering capabilities and solutions we deliver.

Three questions worth answering before you commission anything

  1. Q1

    What breaks first if your key person leaves?

    That is usually the part to systematise first.

  2. Q2

    Where is the same number typed twice?

    Every duplicate entry is a standing cost and a standing risk.

  3. Q3

    Can you say today what last quarter’s jobs actually cost?

    If the answer takes a week to assemble, you are bidding on memory.

Questions US buyers ask before commissioning a system

Ownership, migration, field use, accounting and access control are what owners ask about first. The answers below describe how Construction Quotes was actually delivered.

Do we own the source code and the data?

Yes. The source code, the database and the data are yours, hosted where you choose, so nothing disappears and no data is held hostage if you stop paying a vendor.

Can it import our existing estimating spreadsheets?

Yes. The Excel Bridge pulls years of history in from your own workbooks and pushes reports back out, and every transfer is started by a person, previewed before anything is written, and undoable afterwards.

Does it work on a phone in the field?

The weekly payroll grid was built to be usable on a phone held sideways, because that is how the client office collects hours. The application is browser-based with real clean URLs, so any screen can be bookmarked, emailed or opened on a phone or tablet.

How does it get invoices into QuickBooks?

Invoices are exported as a QuickBooks import file, so the bookkeeper loads one file instead of re-typing thirteen invoices. There is no background sync: the export is triggered by a person.

Is the system priced per seat?

No. Adding a user costs nothing because the system is owned rather than rented, while commercial job-cost platforms charge per seat per month and that bill rises exactly as the company succeeds.

Who can see pay rates, margins and employee records?

Only the roles you allow. Custom designations drive a permission grid: pay rates and margin are hidden by role, Social Security numbers and dates of birth are admin-only, and every action is logged with the name of the person who took it.

What does it cost to replace a spreadsheet estimating system?

Scope sets the figure, so we do not publish one; budget is agreed per engagement against the workflows in your first phase. Send us the spreadsheet you run on today and we will tell you plainly what it would take to replace it.

Could this be built for a business that is not a contractor?

Yes. The pattern - estimate, deliver, cost, invoice, collect, all under one number - is the same in manufacturing, distribution and field service, and we start from the documents and spreadsheets you use today rather than a generic template.

Still deciding? Read more answers about working with us, see what clients say about delivery, or go back to the full project portfolio.

Send us the spreadsheet you run on today

Send us the spreadsheet you run on today and we will tell you, plainly, what it would take to replace it - scope, sequence and the first phase worth building, with no obligation to proceed.

Or email contact@opencollartech.com and call +1 516 373 0561. Prefer a form? Use the contact page.

Take the whole story with you

The delivered 12-page portfolio document covers the same material in print, including all seven screens and the full capability list.

Download the 12-page portfolio (PDF, 3.7 MB)

Live in production · multi-tenant · self-hosted