How project controls managers track field expenses in real time without waiting for month-end actuals to update cost-to-complete forecasts.
Andrew Grosser
June 10, 2026 • 11 min read
How project controls managers track field expenses in real time without waiting for month-end actuals to update cost-to-complete forecasts.
You're managing a $4.2M highway expansion project with three crews across two states. Your burn rate is $180K per week. It's Thursday afternoon, and you need to update your cost-to-complete forecast for tomorrow's executive review. The problem: your last expense batch closed two weeks ago. You're flying blind on $360K of field spending—fuel receipts, hotel stays, equipment rental, subcontractor invoices—all sitting in text messages, email attachments, and paper logbooks. By the time accounting processes everything, you'll be three weeks into the next billing period.
Sourcetable's AI data analyst is free to try. Sign up here.
This is the core problem for project controls managers on fixed-price contracts: you own the earned value analysis and cost-to-complete forecasts, but you're always working with stale data. The gap between when expenses occur in the field and when they hit your ERP system creates a blind spot that can turn a 6% margin project into a loss before you see it coming.
Traditional construction accounting runs on a monthly close cycle. Field supervisors collect receipts, office staff keys them into the ERP, accounting reviews and codes them, and you finally get usable data 10-15 days after month-end. For a project controls manager tracking earned value, this creates three specific problems.
First, your Estimate at Completion (EAC) calculation relies on Actual Cost of Work Performed (ACWP). The standard EAC formula is: EAC = ACWP + (BAC - BCWP) / CPI, where CPI is your Cost Performance Index (BCWP / ACWP). If your ACWP is two weeks old, your CPI is wrong. On a $4M project with a 0.92 CPI, a two-week lag representing $360K in unrecorded costs changes your EAC by $39K. That's the difference between a profitable project and a margin call.
Second, fixed-price contracts require you to recognize revenue using percentage-of-completion accounting. Your completion percentage is BCWP / BAC. If costs are lagging, you're either over-billing (creating a liability) or under-billing (leaving money on the table). A road construction company I worked with discovered they'd under-billed $127K across three projects because their cost recognition lagged their physical progress by 18 days.
Third, your variance analysis is always reactive, never predictive. By the time you see a cost overrun in your ERP, the damage is done. You need to catch the variance when it's $12K and fixable, not when it's $85K and structural.
Real-time expense tracking doesn't mean instant ERP posting—that's neither practical nor necessary. It means capturing field expenses within 24-48 hours and making them visible in your cost forecasting model before they hit the general ledger. Here's the framework that works for project controls.
Start by mapping every field expense type to your WBS cost codes. For a typical highway project, this looks like:
| Cost Code | Description | Expense Types | Typical Weekly Spend |
|---|---|---|---|
| 1100 | Earthwork Labor | Crew wages, per diem, overtime | $42,000 |
| 1200 | Equipment | Rental, fuel, maintenance, repairs | $38,500 |
| 1300 | Materials | Aggregate, asphalt, concrete | $67,200 |
| 2100 | Subcontractors | Utility relocation, traffic control | $24,800 |
| 3100 | Field Overhead | Hotels, meals, small tools, supplies | $7,500 |
The key is granularity that matches your earned value baseline. If your baseline tracks earthwork and paving separately, your expense tracking must do the same. Otherwise, you can't calculate meaningful CPI by work package.
Field crews won't use complicated expense systems. The capture method must be faster than texting a photo to the office manager. For each expense type, define the minimum viable data:
The traditional approach is paper receipts mailed weekly or photographed and emailed. This creates a 5-7 day lag and requires manual data entry. A better approach: mobile photo capture with automatic text extraction. The superintendent takes a photo of the fuel receipt, the system reads the vendor, date, and amount, and writes it to a staging table within 60 seconds.
You need a database table that sits between field capture and your ERP. This staging table holds unprocessed expenses with enough metadata to feed your cost forecasting model. Here's the schema:
| Column | Type | Purpose |
|---|---|---|
| expense_id | UUID | Unique identifier |
| project_code | String | Links to ERP project master |
| cost_code | String | WBS element for earned value |
| expense_date | Date | When cost was incurred |
| expense_type | Enum | Fuel, hotel, rental, sub, material, other |
| vendor | String | Who was paid |
| amount | Decimal | Dollar value |
| status | Enum | Pending, approved, posted, rejected |
| submitted_by | String | Field person who captured it |
| approved_by | String | Project manager or controls lead |
| posted_date | Date | When it hit the ERP |
| receipt_image_url | String | Link to source document |
This structure lets you run earned value calculations on pending expenses before they're formally posted. Your ACWP becomes: Posted Costs + Approved Pending Costs + (Estimated Pending Costs × Confidence Factor). For most projects, a 0.85 confidence factor on pending expenses gives you a forecast that's within 2-3% of actual.
Once you're capturing expenses within 24-48 hours, you can feed them directly into your earned value calculations. Here's how to modify your standard EVM formulas to use real-time data.
Your traditional ACWP pulls from the ERP general ledger. With real-time tracking, you calculate Adjusted ACWP as:
Adjusted ACWP = GL Posted Costs + Approved Pending + (Submitted Pending × 0.85)
For example, on June 5th, your highway project shows:
Your Adjusted ACWP = $2,847,000 + $87,400 + ($23,600 × 0.85) = $2,954,460. Compare this to the traditional approach, which would use only the $2,847,000 GL balance. You're now seeing $107,460 of costs that won't hit the books for another 10 days.
With Adjusted ACWP, you can calculate CPI daily instead of monthly. Your BCWP (earned value) comes from your physical progress measurement—for road construction, this might be lane-miles completed, cubic yards of earthwork, or square yards of paving. If your project has earned $2,980,000 of value and your Adjusted ACWP is $2,954,460, your CPI is 2,980,000 / 2,954,460 = 1.009. You're running slightly ahead on cost efficiency.
The power of daily CPI tracking is variance detection speed. On June 3rd, your CPI might be 1.012. On June 4th, it drops to 1.009. On June 5th, it's 1.006. This three-day trend tells you something changed on June 3rd. You investigate and discover your asphalt supplier raised prices 8% without notice. You catch this on June 5th instead of June 20th, saving two weeks of overpriced material purchases.
Your EAC formula becomes: EAC = Adjusted ACWP + (BAC - BCWP) / CPI. Using the numbers above with a $4,200,000 BAC:
EAC = $2,954,460 + ($4,200,000 - $2,980,000) / 1.009 = $2,954,460 + $1,208,720 = $4,163,180
Your project is forecasting to come in $36,820 under budget. But here's the critical insight: if you'd used the old $2,847,000 ACWP, your EAC would be $4,056,540—showing a $143,460 underrun. That's a $106,640 difference in your forecast. The real-time data prevents you from over-committing that phantom savings to other projects or bonuses.
Project controls managers need to report cost status weekly, not monthly. A real-time expense tracking system should produce a weekly summary that shows: current week spending by cost code, cumulative spending vs. budget, variance trends, and forecast changes. Here's what that dashboard should contain.
Show this week's expenses broken down by your WBS structure, with posted and pending costs separated:
| Cost Code | Posted This Week | Pending This Week | Total This Week | Budget This Week | Variance |
|---|---|---|---|---|---|
| 1100 Earthwork Labor | $38,200 | $4,800 | $43,000 | $42,000 | -$1,000 |
| 1200 Equipment | $29,400 | $11,300 | $40,700 | $38,500 | -$2,200 |
| 1300 Materials | $67,200 | $0 | $67,200 | $67,200 | $0 |
| 2100 Subcontractors | $24,800 | $0 | $24,800 | $24,800 | $0 |
| 3100 Field Overhead | $5,100 | $3,200 | $8,300 | $7,500 | -$800 |
| Total | $164,700 | $19,300 | $184,000 | $180,000 | -$4,000 |
This table immediately shows you're running $4,000 over budget this week, driven by equipment ($2,200) and labor ($1,000). The pending column tells you that $11,300 of equipment costs haven't been approved yet—those are likely fuel and maintenance receipts still being reviewed.
Show cumulative performance with your updated EAC:
| Metric | Value |
|---|---|
| Original Budget (BAC) | $4,200,000 |
| Earned Value (BCWP) | $2,980,000 |
| Planned Value (BCWS) | $2,940,000 |
| Posted Actual Cost | $2,847,000 |
| Pending Actual Cost | $107,460 |
| Adjusted Actual Cost (ACWP) | $2,954,460 |
| Cost Performance Index (CPI) | 1.009 |
| Schedule Performance Index (SPI) | 1.014 |
| Estimate at Completion (EAC) | $4,163,180 |
| Variance at Completion (VAC) | $36,820 |
This summary gives executives exactly what they need: you're 1.4% ahead of schedule, 0.9% under budget on cost efficiency, and forecasting to finish $36,820 under the original contract value. All of this is based on data that's current within 48 hours, not 15 days old.
The dashboard should automatically flag cost codes that are trending over budget. Set thresholds based on your risk tolerance—typically 5% variance for labor and equipment, 3% for materials and subs. When a cost code exceeds its threshold, the system highlights it and shows the trend:
| Cost Code | Budget to Date | Actual to Date | Variance | Variance % | Status |
|---|---|---|---|---|---|
| 1200 Equipment | $685,000 | $724,300 | -$39,300 | -5.7% | 🔴 Over |
| 3100 Field Overhead | $133,500 | $142,800 | -$9,300 | -7.0% | 🔴 Over |
| 1100 Earthwork Labor | $748,000 | $756,200 | -$8,200 | -1.1% | 🟡 Watch |
| 1300 Materials | $1,196,800 | $1,189,400 | $7,400 | 0.6% | 🟢 OK |
Equipment is 5.7% over budget and field overhead is 7.0% over. These flags trigger investigation. You discover the equipment variance is driven by unexpected repair costs on an aging excavator ($22,000) and higher fuel prices than budgeted (8% increase = $17,300). The field overhead variance is hotel rate increases in the second crew location. Both are legitimate cost increases that need to be absorbed or negotiated with the client as a change order.
Building this system manually requires a database, ETL pipelines, OCR for receipt processing, and custom dashboards. A pipeline subcontractor I worked with spent $47,000 and four months building a homegrown solution. Sourcetable's AI eliminates all of that infrastructure.
Sourcetable connects to your email inbox (Gmail, Outlook), cloud storage (Google Drive, Dropbox, OneDrive), accounting system (QuickBooks, Sage 100, Viewpoint), and databases (PostgreSQL, MySQL). Field crews email receipts to a dedicated address, Sourcetable pulls them automatically, extracts the expense data using OCR, and writes it to your staging table. You ask: 'Pull all expense receipts from the field-expenses folder and extract vendor, date, amount, and description.' The AI handles the entire pipeline.
The most time-consuming part of expense processing is coding—deciding which WBS element each expense belongs to. Sourcetable's AI learns your cost code structure and classifies expenses automatically. You provide a few examples: 'Fuel receipts for excavators go to 1200 Equipment. Hotel stays go to 3100 Field Overhead. Asphalt deliveries go to 1300 Materials.' After 20-30 examples, the AI classifies new expenses with 92-95% accuracy. You review the classifications, approve them, and they're ready for your earned value calculations.
Instead of building SQL queries and pivot tables, you ask: 'Show me this week's expenses by cost code, including pending items, compared to budget.' Sourcetable generates the table in 3 seconds. You ask: 'Calculate my adjusted ACWP including pending costs with 0.85 confidence.' It returns $2,954,460. You ask: 'Recalculate EAC using the adjusted ACWP and current CPI.' It returns $4,163,180. You ask: 'Flag any cost codes more than 5% over budget.' It highlights Equipment and Field Overhead with variance details.
Every question is answered instantly using your live data. No waiting for month-end. No manual Excel updates. No stale forecasts. You go from expense receipt to updated EAC in under 48 hours instead of 15 days.
Once you've asked these questions once, Sourcetable saves the sequence as a reusable workflow. Every Friday at 4 PM, the system automatically pulls the week's expenses, classifies them, calculates adjusted ACWP, updates your EAC, flags over-budget items, and emails the summary to your executive team. You set it up once through conversation, and it runs forever. No code, no configuration, no maintenance.
Real-time expense tracking sounds simple, but project controls managers face specific obstacles when implementing it. Here's what actually goes wrong and how to fix it.
The biggest failure mode: field supervisors are too busy to photograph and submit receipts every day. By Friday, they have 40 receipts in their truck and no memory of what half of them were for. Solution: make submission easier than not submitting. Give them a dedicated phone number to text receipt photos to. The system processes them automatically. Or integrate with their existing workflow—if they're already texting the office manager, intercept those texts and process them. The key is zero additional steps.
Optical character recognition works well on printed receipts but struggles with handwritten invoices from small subcontractors or sun-faded fuel receipts. You'll get 85-90% accuracy, not 100%. Solution: flag low-confidence extractions for manual review. If the OCR is only 60% confident it read the amount correctly, route it to a human. For high-value items (over $5,000), require manual verification regardless of confidence. For low-value items (under $100), accept the OCR result and fix errors in batch during weekly reconciliation.
The same receipt gets submitted twice—once by the superintendent, once by the office manager who received the paper original. Your system needs duplicate detection. Match on vendor + date + amount within $5 tolerance. If a $127.43 fuel receipt from Shell on June 3rd appears twice, flag it. Manual review takes 10 seconds per flag. Without duplicate detection, you'll overstate ACWP by 3-8% depending on how chaotic your document flow is.
Your controller doesn't want 'unposted' expenses in management reports because they haven't been through the approval workflow. This is a policy issue, not a technical one. Solution: run two versions of your earned value report—one for project controls (includes pending costs with clear disclosure) and one for financial reporting (posted costs only). Make it clear that the pending costs are forecasting inputs, not GAAP-compliant financial statements. Most controllers accept this once they understand you're not trying to circumvent their approval process.
Your traffic control subcontractor bills monthly, and their invoice arrives 15 days after month-end. You can't track their costs in real time because you don't have visibility into their daily work. Solution: accrue expected costs based on their contract rate and your progress measurements. If they're billing $800 per day and you know they worked 18 days this month, accrue $14,400 as a pending cost. When their actual invoice arrives for $14,250, you're within 1%. This requires good contract management—you need to know their rates and track their presence on site—but it's doable for major subs.
A pipeline installation subcontractor in Texas was managing six projects simultaneously with a combined value of $18.3M. Their project controls manager, Maria, was responsible for earned value reporting to the general contractor on all six jobs. The GC required weekly cost updates, but the company's accounting system closed monthly. Maria was spending 14 hours every week manually reconciling field expense reports, estimating pending costs, and updating her EAC spreadsheets.
The company had three field superintendents who collected receipts in manila envelopes and mailed them to the office every Friday. The office manager would receive them Monday or Tuesday, key them into QuickBooks, and Maria would get usable data by Thursday—six days after the expenses occurred. For a $180K-per-week burn rate, this meant she was always forecasting with a $108K blind spot.
Maria set up Sourcetable to pull expense data from three sources: the company Gmail account (where superintendents now emailed receipt photos), the QuickBooks Online connection (for posted costs), and a Google Sheet where the office manager tracked approved-but-not-yet-posted expenses. She connected all three sources and asked Sourcetable: 'Combine posted costs from QuickBooks with pending costs from the Gmail receipts and the pending expense sheet. Break them down by project and cost code.'
The AI built a unified view in 12 seconds. She then asked: 'For each project, calculate adjusted ACWP including pending costs at 0.85 confidence. Show me the CPI using earned value from my progress measurements.' She uploaded a CSV with her BCWP calculations (which she was already tracking), and Sourcetable joined it with the cost data and calculated CPI for all six projects.
Finally, she asked: 'Create a weekly summary showing this week's expenses by project and cost code, cumulative spending vs. budget, current CPI, and updated EAC. Flag any cost codes more than 5% over budget.' Sourcetable generated the complete report. She saved this as a workflow that runs every Friday at 3 PM.
Maria's weekly reporting time dropped from 14 hours to 2 hours—an 86% reduction. More importantly, she caught three cost overruns within 48 hours instead of two weeks later. On Project Falcon (a $2.9M pipeline installation), equipment rental costs spiked 12% in week 7 due to unexpected soil conditions requiring larger excavators. Maria saw this on Friday of week 7, negotiated a change order with the GC on Monday of week 8, and recovered $18,400 in additional costs. Under the old system, she wouldn't have seen the variance until week 9, after $37,000 in overruns had accumulated—half of which would have been unrecoverable.
Across all six projects, the real-time visibility improved her EAC accuracy from ±8% to ±2.5%. The general contractors noticed—one of them specifically cited Maria's 'best-in-class cost reporting' when awarding the company a $4.1M follow-on contract.
Stop waiting for month-end actuals. Get started free.
References and methodologies used in this guide