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.
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.
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.
Cost-to-cost percent complete, earned revenue, estimated cost at completion, over and under billing — job by job.
Reconciled line for line against your Sage 3-1-2 report, including the voided-transaction handling most exports miss.
Pay application tables hold running totals, not period amounts. Summing them multiplies your revenue. This model doesn't.
Aging on real invoice terms rather than assumed ones, with retainage separated out so the picture isn't overstated.
Every bank account identified from the general ledger, including the ones Sage's own bank feed misses.
Labor, material, equipment, subcontract and other, against budget, at whatever level of the cost code structure you use.
Read-only access through an on-premises data gateway. Nothing is copied off your server and nothing is written back.
Every measure, table and assumption written down and handed over. If you ever replace me, you're not starting over.
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.
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.
Every engagement starts small and proves itself before it grows. No long discovery phase, no six-figure commitment before you've seen anything.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Each tier includes everything in the one before it. Move between them as the need changes — there's no penalty for stepping down a tier or pausing.
| What's included | Tier one Maintenance |
Tier two + Exceptions |
Tier three + Consulting |
|---|---|---|---|
| Keeping it running | |||
| Refresh monitoring — I find out before you do | ✓ | ✓ | ✓ |
| Gateway, credential and licence upkeep | ✓ | ✓ | ✓ |
| Fixes when Sage changes underneath the model | ✓ | ✓ | ✓ |
| Small additions — new measures, visuals, roll-ups | ✓ | ✓ | ✓ |
| Someone to call when a number looks wrong | ✓ | ✓ | ✓ |
| Catching problems early | |||
| Monthly exception report | — | ✓ | ✓ |
| Cost with no budget, cost above contract | — | ✓ | ✓ |
| Billings with no contract, forward-dated entries | — | ✓ | ✓ |
| Budgets changed without a change order | — | ✓ | ✓ |
| Receivables aging past recorded terms | — | ✓ | ✓ |
| Accounts miscategorised against the P&L | — | ✓ | ✓ |
| Deciding what to do about it | |||
| Business recommendations drawn from the data | — | — | ✓ |
| Margin, job-type and bid profitability analysis | — | — | ✓ |
| Cash position and forward projection | — | — | ✓ |
| Help with Microsoft Excel spreadsheets | — | — | ✓ |
| Leadership questions answered ad hoc, no new Scope of Work (SOW) | — | — | ✓ |
Fixed monthly fee at every tier. Cancel or change tiers with 30 days' notice.