1. Provision the operator workspace
Doyel Labs provisions the operator's blob namespace on Netlify Blobs and the Resend sending domain for stubs. You (the operator) provide:
- The domain the payroll app should live on (subdomain of your existing site works — e.g.
payroll.your-company.com). - The from-address stubs should be emailed from (e.g.
[email protected]). - The administrator account — usually one person on the operator side who signs in and runs the pay period.
2. Import the contractor register
Two paths, pick either:
- Paste CSV. Contractors tab → Import CSV → paste rows with headers
first,last,state,wd,contract,day_rate,min_wage,hw_fringe. - Type one at a time. Contractors tab → + Add Contractor. Every contractor needs at minimum: name, state (2-letter), a day rate, and a start date.
SSNs are encrypted at rest. The UI never shows more than the last 4 digits in a running app; the full SSN is only decrypted when generating a PDF stub.
3. Run wage-determination auto-lookup
SCA tab → enter the city and 2-letter state → wait for the four-step pipeline: geocode → SAM.gov find → download WD → parse rates. The rate preview shows base wage, H&W fringe, and the day-rate floor ((base + H&W) × 8).
If the WD hasn't been revised in over two years, the dashboard shows a WD reminder chip. Click "Verify WD rates" when you've confirmed the WD is still current.
4. Run the first pay period
Batch tab → set month + year + half → select contractors → review the batch → download every stub as PDF. Optional: email the batch to contractors from your own domain via Resend.
Every stub the app produces carries the SCA line: WD number, base wage, H&W fringe, resulting floor, met or not. Drafts below the floor are refused with a red banner explaining why.
5. Audit log + backup
Every draft, every emailed stub, every WD lookup, every rate change, every SCA-block leaves a row. Audit tab → Export CSV. Keep the CSV against the SCA's three-year retention rule; the server-side log auto-prunes at 180 days.
Also on the Backup tab: Download raw backup (.json) exports every contractor, every stub, every audit row. Keep one before any big change (WD revision, new contractor batch, etc.).
Preparing for a DOL inspection
If a Wage and Hour Division inspector reaches out, here's the list of files to hand them:
- The full audit CSV (Audit → Export CSV) for the requested date range.
- All generated PDF stubs for the requested date range (Backup → Download raw backup, then unzip the
stubs/folder). - The current WD file the app is using (SCA → Recent lookups → download the WD PDF).
- Your written contractor agreements (kept outside the app, in your ops folder).
If the inspector asks something the app doesn't cover, email [email protected] — we'll help you extract whatever else you need.