KBS Data Analytics See clearly.
Decide confidently.
Sage 100 Contractor specialist

Your job cost data already knows. It just can't tell you.

Sage 100 Contractor holds everything. Getting a straight answer out of it is another matter. I build Power BI reporting directly on the Sage database — WIP, margin, aging, cash — all current as of the last refresh and unable to drift from the accounting system.

See clearly. Decide confidently.
The problem

Most contractors find out about a bad job after it closes

The numbers exist. They are spread across a schema nobody documented, exported into spreadsheets that go stale the moment they're saved, and reconciled by hand once a month if anyone has time. By the time a job's overrun is visible in a report, the money is spent.

Reporting built on the live database changes the timing. You see the job while it is still running, not at closeout — and the figure on screen is the same figure your Controller sees in Sage.

Why Sage 100 Contractor specifically

The database is undocumented. I've already mapped it.

Sage 100 Contractor stores everything in tables with six-character names and no published documentation — jobcst, bdglin, aiafrm, lgtnln, acrinv. Working out what they mean, how they join, and which columns are running totals rather than period amounts is most of the work on a project like this.

That work is done. The schema is identical at every Sage 100 Contractor installation, which means your build starts from a working model rather than from nothing.

Work-in-progress schedule

Cost-to-cost percent complete, earned revenue, estimated cost at completion, over and under billing — job by job.

Income statement that ties out

Reconciled line for line against your Sage 3-1-2 report, including the voided-transaction handling most exports miss.

AIA billing done correctly

Pay application tables hold running totals, not period amounts. Summing them multiplies your revenue. This model doesn't.

Receivables and payables aging

Aging on real invoice terms rather than assumed ones, with retainage separated out so the picture isn't overstated.

Live cash position

Every bank account identified from the general ledger, including the ones Sage's own bank feed misses.

Job cost by code and type

Labor, material, equipment, subcontract and other, against budget, at whatever level of the cost code structure you use.

Secure gateway connection

Read-only access through an on-premises data gateway. Nothing is copied off your server and nothing is written back.

Full documentation

Every measure, table and assumption written down and handed over. If you ever replace me, you're not starting over.

Results

What this work tends to turn up

BP Builders asked for one thing: a single-page executive summary dashboard. What they have now is a fully dynamic, multi-page command center for the CEO — executive summary, work-in-progress schedule, job-level cost and margin, operating expense, cash position and aging, with period switching and drill-through across all of it, on a desktop or a phone.

The scope grew because the data kept answering questions nobody had been able to ask. Building that first page surfaced things their existing reporting had no way to show — not unusual findings, and not a reflection on how the company was run. A well-kept accounting system will still hold things nobody has had the tools to go looking for.

Active jobs running past contract
caught while the work was still moving, when there was still something to be done about it rather than at closeout
Real cost sitting on jobs with no budget
quietly pulling down reported gross margin, with nothing on any existing report to explain why
Receivables aging worse than anyone thought
because the aging was measured against assumed terms rather than the terms actually recorded on the invoices

Drawn from client work and described in general terms. Every contractor's data is different. What's consistent is that this kind of reporting finds things the monthly close does not — and that most of what it finds is fixable.

How it works

Three steps, and you can stop after any of them

Every engagement starts small and proves itself before it grows. No long discovery phase, no six-figure commitment before you've seen anything.

Step one

Data assessment

A quick-turnaround diagnostic run directly against your Sage database. Jobs carrying cost with no budget. Jobs past budget and past contract. Receivables and payables terms and aging. Transactions dated outside the period they belong to. Budget baselines that were never recorded.

You get a written findings memo with dollar figures attached. It stands on its own whether or not you ever build a dashboard.

Fixed fee · delivered in one week
Step two

Dashboard build

A Power BI model built on your Sage data through a secure on-premises gateway. Executive summary with a tied-out profit and loss, work-in-progress schedule, job-level cost against budget, over and under billing, operating expense by category and live cash position.

Published to your Microsoft tenant, refreshed on a schedule, and viewable on a phone. Read-only for anyone who shouldn't be editing it.

Fixed fee · typically three to five weeks
Step three

Ongoing support

A monthly retainer at one of three tiers. The first keeps the reporting healthy — refresh monitoring, gateway upkeep, fixes when Sage changes underneath the model, and someone to call when a number looks wrong.

The second adds a monthly exception report that flags only what's wrong. The third adds standing analytics consulting: recommendations from the data and leadership questions answered as they arise.

Compare all three tiers

Monthly retainer · cancel anytime
Beyond Sage

Other data work

Construction reporting is the specialty, not the limit. The underlying work — getting at numbers locked inside an operational system and turning them into something a decision-maker can act on — applies to any industry and any system. If your data lives somewhere and the answers don't, there's a fit.

Forecasting and projection

Forecasts, revenue and backlog projection, cost-at-completion modelling, seasonal demand and staffing plans — built on your own history rather than a rule of thumb, and rerun automatically as new data lands.

Excel enhancement and workflow

The workbook everyone depends on and nobody trusts…rebuilt with the formulas documented, the manual steps automated, and the inputs validated so it stops breaking when someone pastes in the wrong column.

Reporting automation

The report somebody rebuilds by hand every Monday. Scheduled, refreshed and delivered on its own — to a dashboard, a workbook, or an inbox — so the time goes into reading it instead of assembling it.

Power BI development

Data models, DAX measures, report design and performance tuning. New builds, or fixing an existing model that's slow, wrong, or that nobody left behind any documentation for.

SQL Server and database work

Query development, views and stored procedures, and full documentation of a database nobody has mapped — tables, columns, relationships and what each field actually means in practice.

Data cleanup and integration

Pulling two systems into one view, reconciling records that should match and don't, deduplicating a customer or vendor list, and standardising data that was entered five different ways over ten years.

KPI and scorecard design

Deciding what should be measured before deciding how to display it — defining the metric, agreeing what counts, and building it so the number means the same thing to everyone reading it.

One-off analysis

A question that needs answering, with a written answer and the working shown. Pricing, profitability by segment, customer concentration, a decision that needs support before it goes to a board.

Talk through a project

About

You work with me, not an account team

Hi, I'm Kyle, and KBS Data Analytics is my one-person practice based in Esko, Minnesota, serving contractors and businesses across the Upper Midwest and remotely nationwide.

The person who scopes the work is the person who writes the queries, builds the model and explains the numbers to your leadership. No handoffs, no junior analyst learning your business on your budget, and no layer between you and whoever actually understands the data.

It also means I take on a limited number of engagements at a time. If the timing doesn't work, I'll tell you rather than stretch.

Get in touch

Start with the assessment

A quick turnaround against your database, a written findings memo, a fixed fee. If what it turns up isn't worth more than it cost, we stop there.