Four labor codes. That is the entire billing taxonomy for a spray foam and coating crew: Prep Work, Foam Operations, Apply Coating, Clean Up. When those codes map directly to payroll and billing rates, every daily report that logs them correctly is a timesheet and a job cost entry simultaneously.

The UCI daily report is built for a crew that works on two active jobs — Koch Aurora and Bee Sweet — with twelve named crew members, four job managers, and five product SKUs. The template does not pretend to be generic. It encodes the actual operational reality of this specific crew, which is why it works.

Why a Daily Report Needs to Be Filled In Before the Drive Home

The 12-person spray foam crew finishes a day at the Koch Aurora site. They have applied Ultra Thane foam at 90°F ambient temperature after a two-hour Ultra Bond primer dry time, switched to Ultra Flex coating in the afternoon when the cloud cover dropped the surface temperature enough to get a clean application, and spent the last 45 minutes on cleanup. By 5:30 PM, seven people are in trucks heading in different directions.

By the time the job manager reconstructs the day from memory at 7 PM — which products were used, which crew members were present, how many drums of foam went down — the details are already compressing. The drill was running hot from 10 AM, which is why they pushed the foam application earlier than planned, and that detail matters for the moisture content note that needs to go into the Job Notes field. But it is gone now.

The daily report filled in on-site before the trucks leave captures the day as it actually happened. Not as the job manager remembers it happening two hours later.

The Crew Members Field as Attendance and Liability Record

The multichoice Crew Members field is not a formality. It is the site attendance record for every day, on every job, with every combination of crew that the multichoice field allows.

On a job where something goes wrong — an Ultra Shield coating that failed to cure properly because someone pulled off the poly too early, or a substrate that was visibly wet when the foam went down — the crew members field on the daily report for that date shows exactly who was on site. Not who was scheduled. Not who the foreman thought was there. Who was actually checked off in the record.

The Job Mgr Name field adds the accountability layer. Kevin Robertson ran the Bee Sweet job on Tuesday. That attribution matters when the general contractor calls with questions about Thursday's application.

Product Quantity as Daily Material Burn Rate

Product #1 and Product #2 with their respective integer quantities are the material consumption records that drive job cost accounting.

A day that logged 8 units of Foam-Ultra Thane on Job 11-11 Koch Aurora is a cost entry. Aggregated across the duration of the job, the daily product logs produce the total material consumption, which reconciles against the job estimate and the purchase orders. If the job estimate budgeted 60 drums of Ultra Thane and the daily reports show 74 have been logged over the first three weeks of a five-week job, that is a procurement alert and a margin conversation — visible in the data before the job closes over budget.

Labor Codes logged daily against each job are the activity tracking layer. A day with codes 130 (Prep Work) and 162 (Foam Operations) logged against Job 11-13 Bee Sweet maps directly to the billing rate structure for those activities. Cross-referenced with crew count and date, it is the raw input for the payroll run.

The Job Photos field makes the daily report a site documentation system as well. Before-state, application progress, problem areas, completion confirmation — timestamped to the day, attached to the specific job number. When the GC does a walkthrough and identifies a section of coating that looks thin, the photos from that week's daily reports show what the surface looked like at application. The documentation was built as a byproduct of the daily workflow, not assembled retroactively from memory.