Job Costing & Profit Analyzer

$39.00

the HVAC or plumbing shop that bids and bills a stack of jobs a month, instead of a spreadsheet you keep meaning to reconcile and never do.

Local-firstNo telemetry — nothing phones homeNo lock-inNo migration

Point it at your jobs CSV and it computes the true margin on every job, flags the ones running under your target, default 30 percent, and ranks all of them from most profitable to the ones quietly eating you.

$39 a month, flat, for the shop. No per-job fee, no per-seat charge. Cancel any day and the reports stay on your disk.

The job that looked profitable

The estimate came in clean, the customer signed, the crew ran it, and you invoiced it. On paper it felt like a good job. What you never did was open the spreadsheet and subtract the actual labor and material from the price, for that job and the fifty others.

So at year end the bank balance doesn’t match how busy you were, and you can’t say which work did that to you. The replacement that ran two techs a full extra day. The service call you underbid because you always underbid that kind. The cost of the current way isn’t the spreadsheet. It’s making next year’s bids blind to which jobs lost money this year.

CSV in, ranked margin out

  1. It reads JOBS_CSV with the columns you export: job id, customer, estimate, actual labor, actual material, and price. A dollar sign, thousands commas, and a parenthesized (500.00) read as negative all parse without a cleanup pass.
  2. It does the math per job. Actual cost is labor plus material, margin is price minus that cost, then margin percent, then the variance against your original estimate so you see which jobs ran over.
  3. It flags and ranks, then writes the reports to OUTPUT_FOLDER: every job ranked by margin, and the low-margin ones pulled out worst-first.

What it does

  • Computes real margin per job, price minus actual labor and material, so the job that felt profitable and wasn’t stops hiding inside the average.
  • Flags anything under your target margin, default 30 percent, into LOW_MARGIN.md worst first, so the jobs bleeding you are the first thing you read.
  • Shows estimate variance per job, actual cost minus what you bid, so you catch that you underbid the same kind of work every time before you bid it again.
  • Ranks every job highest profit to lowest in JOB_PROFITABILITY.md, with totals for revenue and average margin underneath, so you know which customer to go chase more of.
  • Parses accounting-style money, a $, commas, and (500.00) as negative 500, so your export drops straight in.
  • Writes profitability.csv as a workpaper, so your bookkeeper opens the numbers in a form they actually use.

Who costs jobs with this, and who doesn’t

Built for the field service shop running roughly a dozen up to a few dozen jobs a month, that bids and bills work and has never had time to check what each job actually cleared. HVAC, plumbing, electrical, landscaping. If you run a construction ERP or Sage that already does committed-cost job costing off live data, this is a step down and you should stay put.

Not for you if you don’t track actual labor and material per job, because it can only cost what you record. Bad columns in, wrong margin out.

What it replaces

Right now it’s a spreadsheet and the hope you’ll notice the thin ones, or the job-costing buried inside QuickBooks or a field platform like ServiceTitan or Jobber. Those are better at the parts around this. ServiceTitan tracks the job from the first phone call, and QuickBooks is where the actuals already live.

What none of them drop on your desk without you first building a report is a ranked profit-per-job list and a low-margin worklist. Point this at the export and the answer’s there in about a minute, which is the difference between checking every job and checking none.

What touches your numbers

No account holds your job data. The jobs CSV is read off your disk and the four outputs land in OUTPUT_FOLDER at 0600 permissions. jobs.json is the full machine-readable run, the summary plus every job, if you want it somewhere else, and profitability.csv is the workpaper for your accountant. Every write is checked against the output folder before it happens, so nothing escapes it. Nothing uploads, because there’s no uploader in it.

$39 a month, and the first run

$39 a month, flat, the whole shop, no charge per job or per seat. In the account you get the analyzer and its four files: the ranked profitability report, the low-margin worklist, the CSV workpaper, and the JSON. Setup is three values in a .env file. The first ranking comes out of the first run, about a minute on a normal month of jobs. Cancel any day and the reports stay on your disk.

Security and privacy

Handles client job-cost exports (estimates, actual labor/material costs, pricing). Security is designed in.

Principles
Local-first. JOBS_CSV is read from disk and never transmitted anywhere; nothing in this tool touches the network. Nothing is uploaded, no telemetry, no cloud dependency.
Non-destructive. The source CSV is only read, never modified or deleted.
Least privilege. Reads JOBS_CSV, writes only under OUTPUT_FOLDER.

Protections implemented (v0.1.0)
Path-traversal defense — every output filename is sanitized (safeSegment) and every write is checked with assertWithinRoot(), so the report can’t be written outside OUTPUT_FOLDER.
Fail-fast config validation — clear errors for missing/invalid JOBS_CSV/OUTPUT_FOLDER/TARGET_MARGIN_PCT before any file is touched.
Restrictive permissions — the generated report (JOB_PROFITABILITY.md, LOW_MARGIN.md, profitability.csv, jobs.json) is written 0600.
Defensive parsing — the CSV parser and currency parser never throw on malformed input (missing fields default to empty string, unparseable amounts default to 0); a bad row degrades the analysis rather than crashing it. Margin-percent computation guards against divide-by-zero when price is 0.
Secrets discipline.env and generated Job Costing/ output are git-ignored; no secrets or client data in the repo.

Distribution / AV trust

Known limitations / roadmap
– Cost is limited to actual_labor + actual_material in v0.1.0 — overhead, equipment depreciation, and drive time are not modeled; a job can look profitable here while still absorbing unallocated overhead.
TARGET_MARGIN_PCT is a single flat threshold across all jobs — different job types (e.g. small repairs vs large installs) may warrant different targets; per-job-type thresholds are on the roadmap.
– Column mapping is exact-header-name matching (case/whitespace-insensitive) — a CSV export with substantially different headers needs the COL_* overrides set in .env before jobs will parse correctly.

Reporting
Report suspected vulnerabilities privately to the maintainer before public disclosure.

Frequently asked questions about Job Costing & Profit Analyzer

What does the Job Costing & Profit Analyzer do?

The Job Costing & Profit Analyzer reads what you estimated for a job and what it actually cost in labor and materials, then shows you the true gross margin so you stop guessing which jobs make money. You import each job with its estimate and its actuals, run the analyzer, and get a per-job margin and variance report. The result ranks your work from the most profitable to the money-losers, which is a picture most trades never see clearly because the numbers live in different places.

The core of it is estimate versus actual. A quote is a prediction, and the job costing & profit analyzer compares that prediction against reality once the labor hours and material receipts are in. It breaks the gap into labor variance and material variance, so you can see whether a job bled margin because the crew took longer than quoted or because material prices moved. That distinction matters, because the fix for a labor overrun is different from the fix for underpriced materials.

Accurate labor cost is where this lives or dies, and that depends on real time records. Employers already have a duty to keep them. The Department of Labor explains in its Fact Sheet 21 on FLSA recordkeeping that businesses must preserve payroll records for at least three years and the records used to compute wages for two years. Those same time and wage records are what feed an honest labor number into the analyzer, so a duty you already carry doubles as the raw input for real job costing.

The tool is aimed at contractors and home-services owners who want per-job profitability without adopting a heavy construction-management suite. It does not try to run your scheduling, your dispatch, or your client portal. It answers one question that owners argue about constantly, which jobs actually made money, and it answers it from the estimate and actuals you already have rather than asking you to change how you run the business.

There is an honest limit to state. The Job Costing & Profit Analyzer is only as accurate as the actuals you feed it. If labor hours are guessed at or material costs are missing, the margins it reports will be off in the same direction. It does not manufacture data. What it does is take the numbers you have and turn them into a per-job margin and ranking you can act on, which is something a stack of invoices and a payroll export will never show you on their own.

To see the import-run-report flow and what the variance breakdown looks like, the product page walks through it from loading a job to reading its margin. The short version is that the tool takes two piles most trades keep separately, what you quoted and what you spent, and puts them side by side so the difference, and the reason for it, finally becomes visible per job. Most owners run on a gut feeling about which work pays, and a gut feeling is exactly what starts costing money once the business grows past a handful of jobs a month. A real margin number replaces the feeling with something you can defend.

How does the job costing & profit analyzer rely on proper payroll and time records?

True job costing runs on accurate labor numbers, and accurate labor numbers come from real time and payroll records. That is why the job costing & profit analyzer is only as honest as the wage data behind it. The good news is that this data is something employers are already required to keep. The Department of Labor lays it out in its Fact Sheet 21 on FLSA recordkeeping, which says businesses must preserve payroll records for at least three years and the records used to compute wages, such as time cards, for two years.

Those records are the exact input the analyzer needs to compute labor cost per job. When your crew’s hours are tracked and tied to specific jobs, the tool can turn them into a real labor figure and compare it against what you quoted. When hours are guessed at or lumped together, the labor variance the tool reports will be soft. So the FLSA duty to keep clean time and wage records is not just a compliance chore, it is the foundation that lets the job costing & profit analyzer tell you which jobs actually paid.

This is where a lot of small trades leak margin without knowing it. If nobody records how many hours a crew spent on a particular job, the true cost of that job is invisible, and an owner can keep taking similar work at a loss for months. Feeding proper time records into the analyzer surfaces the overrun as a labor variance, which turns a vague sense that a job type is not worth it into a number you can point to when you decide whether to bid it again.

It is worth being clear about the boundary. The tool uses your payroll and time data to compute job costs, and it does not run your payroll or keep your official FLSA records for you. Meeting the recordkeeping duty and preserving the records for the required periods remains your responsibility, guided by the Department of Labor’s own rules. The analyzer sits downstream of that, turning records you must keep anyway into profitability insight.

Kept well, those records serve two purposes at once. They satisfy the retention duty the DOL describes, and they give the job costing & profit analyzer the accurate labor input it needs to rank your jobs honestly. That overlap is worth recognizing, because time tracking often feels like pure overhead until you see it turned into a clear answer about which work makes money and which quietly drains it.

Contractors who want to see how labor records fit alongside the other paperwork a field business carries can start with the field service and trades overview. The steady idea is that the same time and wage records the FLSA requires are the fuel for real job costing. Keep them accurately, and the analyzer can finally show you the true margin on each job instead of the guess most trades run on. That is a rare case where doing the compliance task properly pays you back with information you can actually use to run the business better.

Is my job, cost, and payroll data kept private?

The data behind job costing is sensitive. It includes what you charge, what your labor and materials cost, and payroll information about your crew. The Job Costing & Profit Analyzer is built to keep that data close to the business that owns it rather than scattering copies across services you would then have to secure. Your estimates, actuals, and the labor figures behind them stay tied to your own setup, so you know where the information sits and who can reach it.

That approach fits the plain advice the FTC gives small businesses in its guide, Protecting Personal Information: A Guide for Business. It sums up sound data handling in one honest sentence, take stock, scale down, lock it, pitch it, and plan ahead. Keeping your job and payroll data in one known place supports the take stock and scale down steps directly, because you are not spreading crew wage details and customer pricing across several apps that would each become another thing to lock down and later clean out.

Consider what this data would reveal in the wrong hands. Your margins are competitive information, and your payroll data is personal to your crew. Neither is something you want loose. Holding it inside the job costing & profit analyzer, rather than duplicating it into every tool that asks, shrinks the number of places it could leak from, which is the exact reasoning behind the FTC’s scale down and lock it steps.

Locking it still falls to you, and the tool does not pretend to do that part for you. The machine and account that hold the data should sit behind a strong password, disk encryption is worth turning on, and access should be limited to the people who genuinely need to see margins and wages. Software that keeps your data in one controlled place helps with the FTC principles, and it does not remove the ordinary duty to secure the device it runs on. That honest split is the right way to think about it.

Because the tool keeps a record of the jobs and margins it analyzed, you also get an organized history of your profitability over time. That history lives with your own records rather than only behind a vendor account you might lose, so you are not at risk of losing your job costing trail if a subscription ends. Keeping that history under your own control is part of the same instinct the FTC guide describes, know what you hold and keep it where you can protect it.

For a fuller look at how the tool handles your job and payroll data and what stays with you, the product page describes the import and analysis workflow. The guiding idea is straightforward. Keep pricing, cost, and payroll data in one place you control, hold few copies rather than many, and follow the FTC’s take stock and lock it steps so sensitive business and crew information does not travel further than the work requires. Your margins and your crew’s wages are two of the things you would least want a competitor or a stranger to see, which is reason enough to keep them tightly held.

How is this different from JobTread, Knowify, or QuickBooks Online?

JobTread, Knowify, and QuickBooks Online Plus are broad platforms. JobTread and Knowify aim to run much of a contractor’s operation, and job costing in Knowify sits on a higher-priced tier, while QuickBooks Online Plus folds project costing into full accounting. Each carries a lot beyond profitability analysis, and a price to match. The Job Costing & Profit Analyzer starts narrower and cheaper. It reads estimates and actuals, computes gross margin per job, and ranks your winners and money-losers, and it leaves the rest of your stack alone.

The first difference is focus. Those platforms want to be your operating system or your accounting system, which means migration, setup, and paying for a wide feature set you may not use. The job costing & profit analyzer wants to answer one question well, which jobs actually made money, and to work from the estimate and actuals you already have. If your books live in QuickBooks and your scheduling lives elsewhere, the tool does not ask you to move either one.

The second difference is price and reach. Getting real job costing out of the incumbents often means their higher tiers, which for a small trade is a real jump in monthly cost. The analyzer is priced to put per-job margin within reach of the owner who cannot justify a heavier suite just to learn which jobs pay. It is a focused instrument, not a platform, and it is priced like one.

The third difference is what it treats as a record. The job history and margins it produces are meant to be kept as part of your business records. The IRS guidance on how long you should keep records expects the documents supporting your income and expenses to be retained for defined periods, and a dated per-job cost and margin history fits that expectation. The bigger platforms hold this data too, behind their own logins and pricing that a small trade was never really the target for.

There is an honest boundary to draw. If you want one system to run estimating, scheduling, invoicing, and full accounting together, one of those platforms may serve you better, and this is not trying to replace all of that. The Job Costing & Profit Analyzer is a focused tool for the owner who mainly wants profitability clarity. Choosing it means accepting a narrower feature set on purpose, in exchange for a per-job margin answer you can get without a platform migration.

For a fuller sense of where this fits among the tools a trades business already runs, the field service and trades overview gives the wider picture. The takeaway is that the Job Costing & Profit Analyzer is not a smaller JobTread. It is a different shape of tool for an owner who wants to know which jobs make money, without buying and learning a full operating platform to find out. There is no multi-week onboarding, no per-user pricing that grows every time you add a crew member, and no pressure to move your accounting off whatever you already trust. You bring the estimates and actuals you already track, and the tool gets to work.

How do the estimate-versus-actual and margin ranking features actually help me?

The features at the heart of the Job Costing & Profit Analyzer are estimate versus actual, the labor and material variance breakdown, and the ranking of your most and least profitable jobs. Together they answer a question trades ask constantly and rarely get a clear answer to, which work is actually worth doing. You import a job with its estimate and its real costs, run the analyzer, and read a per-job margin plus the variance that explains it.

Estimate versus actual is the anchor. Your quote was a prediction, and the job costing & profit analyzer measures how close reality came. When the two diverge, the variance breakdown tells you why, splitting the gap into labor and material. A job that lost margin because the crew ran long is a scheduling or scoping problem. A job that lost margin because material costs jumped is a pricing problem. Seeing which one it was is what lets you fix the right thing instead of guessing.

The ranking is where the insight becomes action. Once every job carries a real margin, the analyzer sorts them so your best and worst work is obvious. Owners are often surprised. The job type that felt busy and important turns out to run thin, and the quieter work carries the margin. That ranking is the kind of thing that changes which jobs you bid and how you price them, which is worth far more than the report itself.

The labor side of all this rests on accurate time records, and those are records you are required to keep anyway. The Department of Labor’s Fact Sheet 21 on FLSA recordkeeping explains that employers must preserve payroll records for at least three years and wage-computation records like time cards for two. Feeding those same records into the analyzer is what makes the labor variance real, so a duty you already have becomes the fuel for honest job costing.

There are honest limits to keep in view. The margins and rankings are only as accurate as the actuals behind them, and the job costing & profit analyzer will not invent labor hours or material costs you never recorded. If the inputs are rough, the output is rough in the same direction. The tool sharpens decisions when it is fed clean data, and it cannot rescue a job costing picture built on guesses and missing receipts.

To see estimate versus actual, the variance breakdown, and the job ranking in practice, the product page walks through the flow from importing a job to reading its margin. The core idea holds throughout. Compare what you quoted against what you spent, break the difference into labor and materials so you know what to fix, and rank the jobs so you finally know which work to chase and which to price differently or turn down. Owners who run this on a few months of past jobs often find one or two job types quietly eating the profit the rest of the shop worked to earn, and once that is on the screen it is hard to keep bidding the same way.

Attributes Value
Deployment

Cloud

Platform

Web

License Type

Subscription

Billing Period

Monthly

Target Customer

Contractors & Trades

Free Trial

Yes

Reviews

Be the first to review “Job Costing & Profit Analyzer”

Your email address will not be published. Required fields are marked *