Timecard CSV formats: what each payroll provider expects
7 minute read
Every payroll provider takes hours as a CSV, and no two of them take the same CSV. The differences are not cosmetic: they disagree on how a time of day is written, on whether a meal break is a duration or a pair of punches, and on who computes the overtime split. Here is what each one asks for.
Why the layouts differ at all
A payroll provider is not reading your timecard for its own sake. It is loading rows into a pay engine that already knows the contract, the union agreement and the account coding for the production. The CSV is the narrow part of that pipe, so each provider shaped it around whatever its engine needs first.
That produces three real splits. Time of day is written as military time by some and as ordinary punches by others. A meal break is captured as a duration in minutes by some and as an out-and-in pair by others, which is the difference between recording that a crew member took thirty minutes and recording exactly when. Overtime is computed by the provider in one case and expected pre-split in another.
The layouts side by side
These are the exact columns Breadshift writes for each provider, read from the export code itself:
Wrapbook hours import
Wrapbook's digital-timecard upload. Includes SSN4, loan-out FEIN, kit fees, and meal penalties.
19 columns
- Project Code
- Employee Email
- Employee Name
- SSN Last 4
- Loan-Out Company
- FEIN Last 4
- Department
- Position
- Union
- Work Date
- Call
- Wrap
- Meal 1 (min)
- Meal 2 (min)
- Hours Worked
- Rate Type
- Rate
- Kit Fee
- Notes
Cast & Crew Start+ / Hours+
Cast & Crew's Hours+ digital timecard import. Times in tenths of an hour, with project + account-number coding.
20 columns
- Project Number
- Account Number
- Employee ID (SSN4)
- Employee Name
- Loan-Out Co.
- Loan-Out FEIN Last 4
- Union Local
- Union ID
- Occupation Code
- Day Type
- Work Date
- Call (Military)
- Meal 1 Out (min)
- Meal 2 Out (min)
- Wrap (Military)
- Hours (Decimal)
- Rate
- Rate Basis
- Box Rental
- Comments
Entertainment Partners SmartTime / Hours+
EP SmartTime + Hours+ digital timecard layout. Six-punch times, guarantee + box-kit columns.
23 columns
- EP Project ID
- Account
- Employee SSN4
- Employee Name
- Loan-Out Co.
- Loan-Out FEIN4
- Union Local
- Union Card #
- Occupation
- Day Type
- Work Date
- In
- Meal 1 Out
- Meal 1 In
- Meal 2 Out
- Meal 2 In
- Out
- Worked Hrs
- Guarantee Type
- Rate
- Box Kit
- Mileage
- Notes
GreenSlate timecard import
GreenSlate's accounting-side CSV import. Straight-time hours; payroll house computes OT splits on ingest.
23 columns
- Project
- Account
- Employee
- SSN4
- Loan-Out Company
- FEIN4
- Union
- Union ID
- Position
- Day Type
- Date
- In
- Meal 1 Min
- Meal 2 Min
- Wrap
- ST Hours
- OT 1.5x
- OT 2x
- Rate Type
- Rate
- Box Rental
- Mileage
- Notes
Generic (wide)
Universal columns covering every payroll-adjacent field. Use this if your provider isn't listed.
31 columns
- Work date
- Production
- Project code
- Week ending
- Crew name
- Crew email
- SSN last 4
- FEIN last 4
- Loan-out (Y/N)
- Loan-out company
- W-9 on file (Y/N)
- I-9 on file (Y/N)
- Department
- Position
- Classification
- Cost center
- Union
- Union member ID
- Pay rate kind
- Pay rate ($)
- Kit fee daily ($)
- Call
- Wrap
- Wraps next day (Y/N)
- Meal 1 minutes
- Meal 2 minutes
- Meal late (Y/N)
- Hours worked
- Mileage miles
- Status
- Notes
Where they diverge
| Provider | Time notation | Meals | Overtime |
|---|---|---|---|
| Wrapbook | Call and wrap as written | Duration in minutes, two meals | Provider computes |
| Cast & Crew Start+ / Hours+ | Military time | Meal out in minutes, two meals | Provider computes from decimal hours |
| Entertainment Partners SmartTime | Six punches (in, two meal pairs, out) | Out and in punches, two meals | Provider computes from worked hours |
| GreenSlate | In and wrap | Duration in minutes, two meals | You supply the split: ST, 1.5x, 2x |
GreenSlate is the outlier worth planning for. Its import carries separate straight-time, time-and-a-half and double-time columns, so something upstream has to decide where the boundaries fall. Cast & Crew takes hours as a decimal, which means a wrap at 18:45 has to become 0.75 of an hour before it reaches the file rather than after.
EP asks for six punches rather than two. If your crew only ever record call and wrap, the meal punches have to be reconstructed from a duration, and a reconstruction is a guess about when the break started.
What every one of them wants
Despite the differences, four groups of field appear in all of them:
- Project coding. A project number or code, and for three of the four an account or cost code alongside it. This is how the cost lands in the right budget line.
- Identity, partially masked. Last four of the SSN, and for a loan-out the company name plus the last four of its FEIN. Full numbers are not in the file.
- Union classification. Local and member ID, plus an occupation or position code. Dues and rate floors hang off this.
- Rate basis. The rate itself is not enough; the provider needs to know whether it is daily, hourly or weekly, and whether a kit or box rental rides alongside it.
What makes an import bounce
In practice the rejections cluster:
- A missing project or account code, which the provider cannot infer.
- A loan-out marked yes with no FEIN, or a FEIN with no company name.
- A union member with a local but no ID, or an ID with no local.
- A wrap time earlier than the call time, which is a post-midnight wrap recorded without the day it belongs to.
- A rate with no basis, which the engine will not assume.
The post-midnight case is the one that quietly produces wrong pay rather than a rejection. A wrap at 02:10 belongs to the previous work date, and a system that stores wrap as a bare time on the same date will read it as a negative day or a two-hour one, depending on how the arithmetic falls.
How Breadshift handles it
The five layouts above are built in, and the export screen checks the rows before it writes the file: it lists the fields a given provider needs that are missing, and how many rows are affected, so the gaps are visible before the accountant is the one to find them.
If your provider is not one of the four, the generic layout carries every payroll-adjacent field the app holds, which is usually a superset of what an unlisted provider or an accountant asks for.
Questions
- Can I just send a spreadsheet?
- Yes, and plenty of productions do. The generic layout exists for exactly that. The named layouts save the step where someone rearranges columns by hand every week, which is also the step where a column ends up shifted by one.
- Who computes the overtime?
- The payroll provider, in three of the four cases. GreenSlate expects the straight-time and overtime split to arrive already made. Breadshift does not compute pay in either case; it supplies the hours and the classification the provider computes from.
- Are full Social Security numbers in the export?
- No. The layouts take the last four digits, and the same is true of a loan-out FEIN. That is what the providers ask for.