Skip to main content
Doyel Labs

Services · payroll

Pay day-rate contractors and prove SCA compliance.

For federal service contractors and small operators who pay independent contractors by the day and have to hold up their pay records to a Department of Labor inspection. The software prepares the pay run. Your bank pays the money. The two are on purpose.

Not a payroll processor · Not a money transmitter · Not tax filing

The SCA floor

Every draft passes the floor before it leaves the app.

Under 41 U.S.C. §§ 6701–6707 the day rate must clear (base wage + H&W fringe) × 8. The app enters the base wage and the H&W fringe from the wage determination for the contractor's county, computes the floor, and refuses to issue a stub below it. The whole transaction is on the stub.

Base wage

$20.73

per hour

H&W fringe

$5.55

per hour

Day-rate floor

$210.24

8-hr day

Day rate on paystub

$277.23

Compliant

$277.23 ≥ $210.24 · SCA §41 U.S.C. 6707

WD 1977-0194 · Sheridan County, MT · verified via SAM.gov

Demo · Synthetic data
SCA / Wage Determination
SCA compliance panel — day-rate floor check

Pay run

One period, one form, one signed batch.

Pick month, year, and half. Pick contractors. The app pulls each contractor's day rate and WD profile, runs the SCA check on every row, and produces a batch of PDF stubs. Stubs email from the operator's own domain via Resend; the app never emails from a Doyel Labs address.

Period

Sep 1 — 15

Contractors

3

Batch gross

$10635.75

ContractorDaysGrossSCA
OPERATOR 0413$3603.99ok
J. REED12$3326.76ok
OPERATOR 1113$3705.00ok
Totals38$10635.75clean
Demo · Synthetic data
Batch / Period
Batch pay run — one form, many contractors

Stub

Every stub carries the compliance line.

The stub names the wage determination, the base wage, the H&W fringe, the resulting floor, and whether the day rate cleared it. YTD gross and YTD net are on the stub, tabular-numbered. Deduction lines are freeform, added by the operator; the app does not compute federal withholding.

SteadFast Transportation Inc.

301 E 1st Ave, Plentywood, MT 59254

EIN ••-••••••• · Contract #691A3

Pay period

Sep 1 — Sep 15, 2026

Pay date 2026-09-18

Contractor

OPERATOR 04

Driver / Caser · MT

SSN •••-••-•••• · WD 1977-0194

SCA line

Base $20.73 + H&W $5.55/hr

Floor $210.24 per 8-hr day

SCA compliant

Regular days worked (13 × $277.23)$3603.99
Holiday worked (0 × $277.23)$0.00
Vacation cash-in-lieu$0.00
Gross$3603.99
Deductions$0.00
Net pay$3603.99

YTD gross $46875.87 · YTD net $46875.87

Demo · Synthetic data
Paystub / Live Preview
Paystub preview — every stub carries the SCA floor line

Audit

A DOL inspector should read this without a phone call.

Every draft, every emailed stub, every rate change, every WD lookup, and every blocked SCA-short draft leaves a row. The log exports to CSV. Retention is 180 days by default; the operator is expected to keep the CSV against the SCA's 3-year rule.

AllCompliantNon-compliant180-day retention

paystub.generated

2026-09-18 08:14 MDT

OPERATOR 04 · 1st–15th · SCA floor met

by admin@steadfast

paystub.emailed

2026-09-18 08:14 MDT

OPERATOR 04 · via Resend · delivered

by admin@steadfast

sca.day-rate.below-floor

2026-09-16 14:02 MDT

Draft blocked — day rate $205.00 < floor $210.24

by admin@steadfast

wd.lookup.success

2026-09-16 14:00 MDT

Plentywood, MT → Sheridan County → WD 1977-0194 rev 26

by admin@steadfast

contractor.rate.updated

2026-09-01 09:30 MDT

OPERATOR 04 · $270.00 → $277.23 · reason: WD revision

by admin@steadfast

Demo · Synthetic data
Audit / Log
Every draft, email, and blocked action leaves a row

What is in the app today

Features, from the actual code.

Contractor register

Names, SSN (encrypted at rest), state, WD, contract number, day rate, min wage, H&W fringe, vacation handling (cash-in-lieu under §4.173 or accrue), YTD gross, YTD deductions.

Pay period

Month + year + half (1st–15th, 16th–end, or full-month variants). Federal-holiday auto-detection for the period. Pay date defaults to the operator's schedule.

WD auto-lookup

Enter city + state. The app geocodes to a county, finds the active SCA wage determination on SAM.gov, downloads it, and parses base wage and H&W fringe. Two-year revision reminder is on the dashboard.

Batch run

Select the active contractors, review the batch, download every stub as PDF, or email the batch.

Stub email

Sent via Resend from the operator's own address (e.g. [email protected]). Reply-to is the operator's inbox. Doyel Labs is not on the email header.

Passkeys

Passkey enrolment for the operator workspace. Optional. Falls back to a strong password with PBKDF2 hashing and a lockout after repeated failures.

Server storage

Contractor records, drafts, audit rows, and passkey metadata live in Netlify Blobs scoped to the operator. Local browser cache is a fallback.

Security audit console

Every sign-in, password change, passkey add / remove, and reset event. Filter chips, CSV export, and a retention cleanup.

Backups

Export a full JSON backup, download a formatted DOCX report, or pull the server's own backup file. Import merges without overwriting.

What the payroll app does not do

Read this before you compare it to a payroll processor.

No tax filing

The app does not file federal, state, or local returns. It does not compute federal income-tax withholding. Deduction lines are freeform, entered by the operator.

No money movement

The app does not run direct deposit, ACH, wire, or any form of wage transfer. The operator pays through their own bank. Doyel Labs never touches funds.

Not a payroll processor

The software is a compliance and record-keeping workspace. The operator is the payer of record. Doyel Labs LLC is not a payroll processor, professional employer organization, or reporting agent for any tax authority.

Not a money transmitter

No customer funds are held, at any time, in any account controlled by Doyel Labs. The software cannot move money even if a user asked it to.

Payroll data

Held by the operator, held by us, held by nobody.

The operator's own machine

  • Downloaded stubs
  • Backup exports (JSON, DOCX)
  • Local cache of contractor list

Doyel Labs (server side)

  • Contractor register, drafts, audit rows
  • Passkey metadata, password hash (PBKDF2)
  • Retention: 180 days on the security audit
  • Storage: Netlify Blobs, per operator

Never held anywhere by us

  • Bank routing or account numbers
  • Contractor wages as a transferrable balance
  • Card numbers (Stripe if billing exists)

The full data-processing description, retention windows, and subprocessors will publish at /legal/payroll-data once counsel signs.

Payroll software from Doyel Labs is one tool inside an operator's own accounting stack. If you need tax filing or wage transfer, you need a payroll processor; we can integrate ours with theirs. Ask [email protected].

The payroll product prepares pay runs and records; it does not file taxes, does not move money, does not run direct deposit, and is not a payroll processor or money transmitter under any state law. The operator pays through their own bank; Doyel Labs never touches funds.

Source of truth · index/steadfast-payroll-app.html · index/netlify/functions/payroll.js