Construction Per Diem Travel Cost Calculator in Excel: Price the Nights, the Tax and the Drive

A Dallas electrical subcontractor is bidding a six-week tenant finish job in Midland, Texas, about 330 miles west. The crew is four people: a foreman, two journeymen and a helper. The estimator opens the GSA site, finds the Midland rate, and types one line into the bid: 4 people times 30 workdays times $210 a day, or $25,200 for travel. A construction per diem travel cost calculator in Excel built the way most people build it stops there. The job will actually spend $37,825 on getting the crew there, housing it and feeding it, which is $12,625 more than the bid carries.
That gap is 32 percent of the job's burdened field labor ($39,348 for six weeks of straight time). The GSA rate itself is right. The gap comes from three things the one-line formula cannot see: the crew sleeps in Midland on nights that are not workdays, the federal lodging rate does not include hotel tax, and the drive out and back is payroll, often at overtime. This article prices all three, shows where the federal rate stops being a cost estimate and starts being a tax ceiling, and ends with the weekend question every out-of-town job forces: keep the crew there, or bring it home.
Why crew times workdays times the GSA rate comes up $12,625 short
The GSA rate for fiscal year 2027 (October 1, 2026 to September 30, 2027) in the Midland/Odessa area, which covers Midland, Andrews, Ector and Martin counties, is $136 a night for lodging and $74 a day for meals and incidentals (M&IE). It is flat all year, so there is no seasonal step to track on this job. The standard rate for places without their own entry is $113 and $68.
The bid formula multiplies those rates by workdays. The hotel bills by night and the crew eats every calendar day it is away. If the crew drives out Sunday, stays through the weekends and drives home after the last shift on Friday of week six, the job runs 30 workdays, 40 hotel nights and 41 calendar days away from home.
| Line | One-line bid | Crew stays weekends | Difference |
|---|---|---|---|
| Hotel nights per person | 30 | 40 | +10 |
| Lodging, 4 rooms | $16,320.00 | $24,588.80 | +$8,268.80 |
| M&IE, 4 people | $8,880.00 | $11,988.00 | +$3,108.00 |
| Truck mileage, 2 one-way trips | $0.00 | $501.60 | +$501.60 |
| Paid drive time (foreman driving) | $0.00 | $746.66 | +$746.66 |
| Total travel cost | $25,200.00 | $37,825.06 | +$12,625.06 |
Three corrections are hiding in the lodging line alone.
- Count nights. Each of the five weekends in the middle of the job adds a Friday and a Saturday night, 10 nights in all, so 30 workdays become 40 nights.
- Hotel tax is on top. GSA publishes CONUS lodging rates without tax, and the Federal Travel Regulation reimburses lodging tax as a separate expense (41 CFR 301-11.16). Texas charges a 6 percent state hotel occupancy tax and Midland adds a 7 percent city tax under its ordinance 7837, so a $136 room costs $153.68 a night. Check for any county or venue tax at your own job location.
- Room count is a decision. The table assumes one room per person. Two to a room cuts lodging to $12,294.40 and the total to $25,530.66, which is close to the bid's $25,200 by accident. If the bid assumed doubled-up rooms, the crew needs to know that before it leaves the yard.
M&IE follows calendar days, with one adjustment: the departure day and the return day count at 75 percent. GSA publishes that figure for every M&IE tier, and for Midland's $74 tier it is $55.50. Section 6.04 of Rev. Proc. 2019-48 lets an employer use the same three-quarters rule for partial days, or any other method applied consistently. With 39 full days and 2 partial days per person, M&IE is $2,997 a head against $2,220 in the bid.
The federal rate is a tax ceiling, so pay it on purpose
The GSA number feels like a price because it is published like one. For a contractor it does a different job: it is the most you can pay a traveling employee without the money turning into wages.
Rev. Proc. 2019-48 is the IRS rule here. A per diem paid under an accountable plan, up to the federal rate for the locality, is not reported on the W-2 and is not subject to withholding or employment taxes, as long as the employee substantiates time, place and business purpose of the travel. The portion above the federal rate is reported as wages and taxed. Two details catch construction firms:
- An allowance computed like pay, per hour worked, is not a per diem at all under section 3.03(2) of the procedure. "Five dollars an hour travel pay" is wages.
- If the arrangement routinely pays above the federal rate with no process to catch and tax the excess, section 8.06 treats the whole allowance as paid under a nonaccountable plan. Every dollar becomes W-2 wages.
The Labor Department reaches the same boundary from the overtime side. Under 29 CFR 778.217(c)(2), a travel reimbursement at or below the Federal Travel Regulation or IRS per diem amount is per se reasonable and stays out of the regular rate used to compute overtime. Above that line there is no automatic presumption either way, and a "disproportionately large" excess goes into the regular rate.
Here is what that looks like when the company books the hotel and pays the crew a flat $100 a day for meals because it sounds generous and is easy to remember.
| Per person, 41 days away | Amount |
|---|---|
| Flat allowance paid, 41 days at $100 | $4,100.00 |
| Federal M&IE deemed substantiated (39 at $74, 2 at $55.50) | $2,997.00 |
| Excess reported as W-2 wages | $1,103.00 |
| Crew of 4, excess wages | $4,412.00 |
| Employer FICA plus unemployment tax, example 10.85% | $478.70 |
| If the whole allowance is recharacterized: crew wages | $16,400.00 |
| Employer tax on the recharacterized amount | $1,779.40 |
The $478.70 is a rounding error on a $37,825 travel budget. The $1,779.40 version arrives with a payroll tax notice and four employees who owe income tax on money they thought was expense reimbursement. Paying exactly the federal rate costs less than the flat $100, keeps every dollar off the W-2, and leaves nothing to explain. The simpler alternative, the IRS high-low method under Notice 2026-60, pays $230 a day for lodging plus M&IE in ordinary localities and $329 in high-cost ones from October 1, 2026. Midland is not on the high-cost list, which starts at a federal per diem of $280.
Drive time is payroll, and the Sunday clock sets the price
The bid line has no hours in it. The Fair Labor Standards Act regulation on overnight travel, 29 CFR 785.39, does. Travel that keeps an employee away from home overnight counts as hours worked when it cuts across the employee's workday, and that includes "the corresponding hours on nonworking days." If the crew normally works 7:00 to 3:30 Monday to Friday, then 7:00 to 3:30 on a Sunday is paid time for anyone in the truck. The Labor Department's enforcement policy in the same section does not count travel outside those hours for a passenger.
The driver is different. Under 29 CFR 785.41, an employee who drives the truck, or rides as a required assistant or helper, is working the whole time, except for bona fide meal periods. That applies whether the drive is Sunday at 9:00 in the morning or Friday at 6:00 in the evening.
Those hours land on top of a 40-hour week, so on a Sunday-to-Saturday workweek they are overtime. Loaded with the same burden assumptions used in the overtime premium versus second crew calculator (FICA 7.65 percent and unemployment taxes 3.2 percent on the full wage, workers comp 11.5 percent on the straight-time portion only), an overtime hour costs:
| Crew member | Base wage | Straight-time hour, burdened | Overtime hour, burdened |
|---|---|---|---|
| Foreman (driver) | $42.00 | $51.39 | $74.67 |
| Journeyman | $34.00 | $41.60 | $60.44 |
| Journeyman | $34.00 | $41.60 | $60.44 |
| Helper | $24.00 | $29.36 | $42.67 |
The drive is five hours each way plus a meal stop. Leave Sunday at 9:00 and arrive at 2:30: the whole drive falls inside 7:00 to 3:30, so the three passengers are on the clock for five hours each, $817.76 in overtime for that one trip. Leave at 4:00 in the afternoon and arrive at 9:30 at night: the passengers cost nothing and only the foreman is paid. Same truck, same road, same Monday start.
This is the federal floor. Some states count more travel time as work than the FLSA does, so before you set a departure policy, confirm your state's wage rules on travel. The burden percentages above are example values: replace them with your own payroll tax rates and your workers comp class code rate, the same inputs as in the labor burden rate calculator.
Stay for the weekend or drive home: the answer at 330 miles
With the drive priced, the weekend question has numbers on both sides. Four schedules for the same six-week job, same crew, same hotel rate, the truck charged at the IRS business mileage rate of 76 cents a mile (in effect from July 1 to December 31, 2026) as a stand-in for your own cost per mile:
| Schedule | Nights | Lodging and M&IE | Mileage | Paid drive time | Total |
|---|---|---|---|---|---|
| A. Stay weekends, leave Sunday 9:00 | 40 | $36,576.80 | $501.60 | $1,564.42 | $38,642.82 |
| B. Stay weekends, leave Sunday 4:00 pm | 40 | $36,576.80 | $501.60 | $746.66 | $37,825.06 |
| C. Home every weekend, leave Sunday 4:00 pm | 30 | $28,209.60 | $3,009.60 | $4,479.93 | $35,699.13 |
| D. Home every weekend, leave Sunday 9:00 | 30 | $28,209.60 | $3,009.60 | $9,386.52 | $40,605.72 |
The cheapest schedule (C) and the most expensive (D) differ only in the time the truck leaves on Sunday. That departure time is worth $4,906.59 over six weeks, more than twice the $2,125.93 that separates staying (B) from going home (C).
Each weekend the crew stays costs two hotel nights for four people, one more full M&IE day and the upgrade of two partial days to full days: $1,673.44. Each weekend it goes home costs a round trip in the truck and ten overtime hours for the driver: $1,248.26. At 330 miles, home is $425 cheaper per weekend. The mileage and drive hours grow with distance while the hotel side does not, and at the same average speed the two schedules break even at about 442 miles, or 6.7 hours of driving each way. At 450 miles staying is already $143.63 cheaper. At 200 miles going home saves $4,584.61.
Two adjustments move schedule C further. If a journeyman drives instead of the foreman, the overtime rate drops from $74.67 to $60.44 and the total falls to $34,845.81, another $853.32. And the foreman in schedule C works eight hours on Friday and then drives five more, every week. That is a fatigue question for whoever owns the truck and the insurance policy, and it is a good reason to rotate drivers rather than keep the cheapest one behind the wheel all six weeks.
If your estimators already use a go/no-go bid decision matrix that scores distance from the yard, this table is what that score should turn into once the job is a go: a dollar line in the bid, priced on the schedule you actually intend to run.
Build the calculator: one input block, eleven formula cells
Put every rate and every policy choice in one block, so the estimator changes a cell instead of rewriting a formula. The layout below rebuilds schedule B.
| Cell | Input | Example |
|---|---|---|
| B3 | Crew size | 4 |
| B4 | Job length in weeks | 6 |
| B5 | GSA lodging rate for the job location | $136 |
| B6 | Lodging tax, state plus local | 13% |
| B7 | GSA M&IE rate | $74 |
| B8 | Partial-day factor | 75% |
| B9 | One-way miles, yard to job | 330 |
| B10 | Truck cost per mile | $0.76 |
| B11 | One-way drive hours | 5 |
| B12 | Weekend plan, STAY or HOME | STAY |
| B13 | Sunday departure, DAY or EVE | EVE |
| B14 | Driver overtime cost per hour | $74.67 |
| B15 | Passengers' combined overtime cost per hour | $163.55 |
| B16 | M&IE allowance you actually pay per day | $74 |
Nights in B18: =IF(B12="STAY",B4*7-2,B4*5). Staying means every night from the first Sunday to the last Thursday; going home means Sunday through Thursday each week. This is the cell the one-line bid gets wrong.
Full M&IE days in B19: =IF(B12="STAY",B4*7-3,B4*4), and partial days in B20: =IF(B12="STAY",2,B4*2). Every trip out and every trip home creates a 75 percent day.
Lodging in B21: =B3*B18*B5*(1+B6). M&IE in B22: =B3*(B19*B7+B20*B7*B8).
One-way trips in B23: =IF(B12="STAY",2,B4*2), and mileage in B24: =B23*B9*B10.
Paid drive time in B25: =B23*B11*B14+IF(B13="DAY",B23/2*B11*B15,0). The driver is paid on every trip. The passengers are paid only on outbound Sunday trips that leave during normal hours, which is half of the trips. If your crew also drives home inside normal hours on some other day, add that case.
Total in B26: =SUM(B21:B22,B24:B25) returns $37,825.06 with the inputs above. Then two checks. B27 compares it with the one-line bid: =B26-B3*B4*5*(B5+B7) returns $12,625.06. B28 guards the payroll side: =IF(B16>B7,"EXCESS IS W-2 WAGES","OK"). Set B12 to HOME and the total drops to $35,699.13; set B13 to DAY as well and it jumps to $40,605.72.
Pull B5 and B7 from GSA for the county where the crew will sleep, which may differ from the job's county, and for the months the crew will be there if the location has seasonal rates. A job that crosses October 1 crosses a fiscal year, so check whether the rate changes on that date.
Before the travel line goes into the bid
- Look up the GSA lodging and M&IE rates for the county where the hotel is, for the fiscal year and months of the job.
- Add state and local lodging tax to the room rate. GSA rates exclude it.
- Count nights and calendar days from the schedule you will run.
- Decide room count before bidding and tell the crew.
- Set the Sunday departure time in writing. It is a cost decision.
- Price the driver's hours on every trip at the overtime rate if the week already holds 40 hours.
- Run STAY and HOME. At this crew size and these rates, home wins below about 440 miles.
- Pay M&IE at the federal rate and no higher, and keep the travel records your accountable plan requires.
- Carry travel as its own line in the bid and in the job budget, so actual hotel invoices land against it.
The last point is where most out-of-town jobs lose the money a second time. Travel buried in the labor rate cannot be checked against hotel invoices, and nobody notices that the crew stayed an extra weekend until the job closes. The construction labor cost calculator covers the crew's hours on the job; travel needs its own line next to it.
What to put in the bid
For this job, bid $35,699 for travel on schedule C with a Sunday 4:00 pm departure, not $25,200. If the client or the schedule forces weekend work and the crew has to stay, bid $37,825. If the crew insists on leaving Sunday morning, that request is worth $4,906.59 on this job, and it should be a decision someone makes knowingly, not a habit that shows up in the job cost report. Never pay a flat allowance above the federal rate without running the excess through payroll.
Once the bid is won, the travel line needs to be tracked like any other cost code. The Construction Budget Tracker lets you set up lodging, M&IE, mileage and travel labor as their own budget categories, log each hotel invoice and per diem payment against them, and watch budget versus actual and projected final cost update as the weeks go by. It does not look up GSA rates or count FLSA travel hours: build the calculator above for the bid, then carry its four totals into the tracker as the budget for the job.
Related template
Construction Budget Tracker
Track every line item, change order, and payment across your entire project. Spot a $23K billing discrepancy before it hits your bottom line — not after.
Get the Template — $49