Check a crew's pay against the wage determination
check_crew_payUse when the user wants to know whether each worker on a Davis-Bacon job was paid at least the WD rate for a payroll week. For every worker and classification it computes the base and fringe due vs. paid, recomputes overtime (hours over 40 in the workweek, 29 CFR 5.5(b)(1) and 5.32), checks apprentice registration and the daily apprentice ratio (29 CFR 5.5(a)(4)), and totals the restitution owed, each amount with its CFR citation; also returns the WH-347 lines as paid. Up to 50 workers. Either pass the pasted WD text (wdText) and link each segment to a row with wdRowId (from get_wage_rates on the same text), or give the WD rate of each segment directly (rate) as the user reads it in the contract. Example: wdText="General Decision Number: TX20260291 …", weekEnding="2026-06-07", workers=[{name:"Crew 1", segments:[{classification:"Welder", wdRowId:"r1", stByDay:[8,8,8,8,8], paidBaseRate:22}]}].
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wdText | No | Full text of the general wage determination, pasted by the user from the contract or from the sam.gov page, from "General Decision Number" to "END OF GENERAL DECISION", line breaks kept (max 400000 characters). Pass the same text again in later calls so rowId values stay valid. | |
| workers | Yes | ||
| weekEnding | Yes | Last day of the payroll week. | |
| overtimeClause | No | CWHSSA overtime clause applies (contracts over $100,000). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| card | Yes | ||
| view | Yes | ||
| flags | Yes | ||
| ratios | Yes | ||
| source | Yes | ||
| workers | Yes | ||
| disclaimer | Yes | ||
| wdRowsUsed | Yes | ||
| weekEnding | Yes | ||
| wh347Lines | Yes | ||
| notImplemented | Yes | ||
| totalRestitution | Yes |