Technical requirements document
Sub pay requests and lien waivers: technical requirements
Purpose and outcome
This document lists what the sub pay request system must do for AFC, in plain words, so each group can check it and sign off before we build it in AFC's account.
Today the field marks work done, and subs find out what they are being paid after the fact. This flips that. The sub asks to be paid for the lines they finished. The field checks the work. The office approves and bills. The sub sees every step.
It is built on the proof of concept BlueCollar showed at the Greenville onsite on 2026-10-07. Where the onsite changed something, the onsite wins, and this document says so.
Sub pay requests live in the AP workbench, one home for AP with five modules: Intakes, Compliance, Pay When Paid, Sub pay requests and Lien waivers. All five are in this release. Most of this document is about pay requests, because that is where the work changes most. The other modules have their own sections below.
Subs know by Tuesday night
Every sub sees exactly what they will be paid on Friday by Tuesday night.
Paid on Friday
The week runs backward from the bank, so the ACH file goes out Thursday and subs are paid Friday.
Committed cost is visible
The full subcontract PO goes in at the start, so the budget shows what is committed, not just what is billed.
No manual workers' comp step
The workers' comp credit is made and applied when the bill is created. Nobody keys it on Thursday.
Target. In AFC's account and piloting with a few subs by the end of October 2026.
Who uses it
| Role | Who | Where they work | Sees dollars | What they do |
|---|---|---|---|---|
| Subcontractor | One login per sub to start. The person who signs waivers is an office person or the owner at the sub. | Vendor Center, on a phone first, saved to the home screen | Yes | Marks lines complete, adds notes and photos, submits the SPR, watches its status, signs lien waivers. |
| Site lead | Foreman or general superintendent, assigned per project | View and Approve license, phone first, works on a laptop | No | Calls each line 50%, 85%, 100% or rejected, then sends the SPR on. |
| Ops manager | Will, Lupe | Full NetSuite access, desktop | Yes | Reviews and batch approves SPRs by Tuesday close of business. Handles repeat bounces between sub and site lead. |
| Home office / PX | Matt, Ori | NetSuite, the Pay requests screen | Yes | Creates the bills for approved SPRs by end of day Wednesday. Puts a payment on hold when something is missing. |
| Accounting / AP | AFC accounting | NetSuite, the AP workbench | Yes | Turns bills into payments Thursday, sends the ACH file, sends lien waivers after the ACH clears. Invites and approves new vendors, reviews compliance documents, and runs Pay When Paid holds. |
| Project managers | AFC PMs | NetSuite | Yes | Raise subcontract change requests for extra work orders (EWOs) and deductions. Can reset a sub's password. |
The weekly rhythm
The week is worked backward from the bank. Each step has a deadline so the ACH file goes out on Thursday.
| When | Who | What happens |
|---|---|---|
| Mon 6 AM | System | Reminder email to every sub with an open subcontract PO. |
| Mon noon | System | Second reminder to any sub with no SPR yet. |
| Mon | Subs, site leads | Subs submit for work done the Monday to Saturday before. Site leads review. |
| Mon to Tue | Subs, site leads, ops managers | Feedback and resubmits. Ops manager hard stop: Tuesday close of business. |
| Tue night | Subs | Subs know their exact Friday payment. |
| Wed | Home office / PX | Creates the bills for approved SPRs before leaving for the day. |
| Thu by noon | Accounting | Turns bills into payments. ACH file to Hancock Whitney by 5:45 PM, with an internal target of noon to 2 PM. |
| Fri | Sub, accounting | The sub is paid. The lien waiver is sent after the ACH clears. |
Whether the Tuesday hard stop is enforced by the system or by practice is still open. See decision D-01.
One SPR, end to end
This is one sub pay request on its way from the sub's phone to a signed lien waiver.
- SubMarks finished lines complete, adds notes and photos, submitsMonday
- Site leadCalls each line 50, 85, 100 or reject. No dollars shown.Monday
- Ops managerOpens the SPR in the workbench, with dollars. Calls the lines if the site lead has not, then approves one at a time or in a batch. New step.By Tue close
- Home office / PXCreates the bill. Workers' comp credit applied automatically.Wednesday
- AccountingPays by ACH, net of workers' comp and deductionsThursday
- SubPaid. Signs the unconditional waiver the office sends after the ACH clears.Friday on
If the site lead rejects a line, the sub sees why, fixes it and resubmits with a note. The resubmit goes back through the same chain. If the site lead bounces it again, it goes to the ops manager, who sees the whole history.
If the site lead is out, the ops manager makes the calls from the workbench instead, and the history shows who made them.
If something is missing at home office, such as safety docs or certified payroll, the bill is still created so the cost lands. The payment is put on hold until it is fixed.
The AP workbench
The AP workbench is one page in NetSuite where AP does its vendor work. A rail down the side lists the modules, each with a count of what is waiting. Switching modules does not reload the page. AFC gets five modules:
| Module | What it is for | Who works there |
|---|---|---|
| Intakes | Bringing on a new vendor: invite by email, the vendor fills in a form with their W-9, COI and other documents, AP reviews, and approval creates the vendor. | AP |
| Compliance | Keeping each vendor's documents current: review what vendors upload, see what is expiring, and see each vendor's compliance status. | AP |
| Pay When Paid | Holding sub and material bills until the owner pays the invoice they depend on, then releasing them. | Accounting |
| Sub pay requests | The ops manager's review and approval, then home office creating the bills. | Ops managers, home office / PX |
| Lien waivers | Sending waivers after payment, tracking signatures, voiding. | Accounting |
Each module has its own requirements below. The workbench itself has a short list too (WB).
How to read the requirements
Each requirement has a number, one line saying what the system must do, and a check that tells you when it is done. Each one is marked:
- Built in POC It works in the proof of concept today and carries forward as is.
- Change from POC It exists in the proof of concept, and the onsite changed how it should work.
- New It does not exist yet.
For the Intakes, Compliance and Pay When Paid modules and the workbench itself, "POC" means BlueCollar's existing build of those apps, as it runs today in BlueCollar's demo account.
Anything in a highlighted box like [this] is information we still need from AFC. They are all listed again under What we need from AFC.
Purchase orders and setup
| ID | Requirement | Done when | Status |
|---|---|---|---|
| PO-01 | AFC creates the full subcontract PO off the requisition at the start of the job, not a new PO each week. | A sub opens the project and sees their whole contract on the PO, every line. | New |
| PO-02 | Committed cost shows on the project budget once the full PO is in. | The budget for a test project shows the sub's full PO as committed before any bill is entered. | New |
| PO-03 | A sub can have more than one PO on a job, for example one per phase or building, for very large jobs. | A sub with two POs on one project can claim against either one, and each SPR belongs to one PO. | Change from POC |
| PO-04 | Only subcontract POs show in the sub app. Materials POs stay as they are. | A vendor with both a subcontract PO and a materials PO sees only the subcontract PO. | Built in POC |
| PO-05 | Each project names its site lead, and that is who reviews its SPRs. | Changing the site lead on a project moves its new SPRs to the new person's list. | Built in POC |
| PO-06 | Jobs already running cut over at a line in the sand: a new PO for the remaining scope, and no history loaded. | A test project in progress gets a new PO for what is left, the old weekly POs stay closed, and the sub claims only against the new one. | New |
| PO-07 | At cutover, the sub can see a paid-to-date report for the job. | A sub on a cutover job can see what they were paid before the line in the sand. | New |
The sub pay request
| ID | Requirement | Done when | Status |
|---|---|---|---|
| SPR-01 | Each request is called a sub pay request and numbered SPR-1, SPR-2 and so on, so it never gets mixed up with a purchase requisition. | Every screen, email and report says "SPR" and the number. None says "PR". | Change from POC |
| SPR-02 | An SPR moves through these statuses in order: Submitted, Ops review (site reviewed, waiting on the ops manager), Ready for home office, Billing, Billed, Paid, Closed (waiver signed). A rejection sends it back to the sub, and a resubmit starts again at Submitted, marked as a resubmit. | A test SPR shows each status in order, the sub sees it tick over at each one, and a resubmitted SPR carries the resubmit mark. | Change from POC |
| SPR-03 | The SPR shows a week ending date, for work done the Monday to Saturday before. The time it was submitted is kept as the real "as of". | An SPR submitted on a Monday shows the week ending date for the week before, and its submit time. | Change from POC |
| SPR-04 | A PO line can be on only one open SPR at a time. Billed and rejected lines can be claimed again. | A line already on an open SPR cannot be ticked on a second one. | Built in POC |
| SPR-05 | Every step keeps who did it, when, and their note, as a history anyone with access to the SPR can read. | The history of a resubmitted SPR lists each submit, each call and each approval with name and time. | Change from POC |
Sub app
| ID | Requirement | Done when | Status |
|---|---|---|---|
| SUB-01 | The sub signs in through Vendor Center on a phone and can save the app to the home screen under one name, [app name; "AFC Pay" was suggested]. | A sub saves it to a phone home screen and opens straight to their projects after signing in. | Built in POC |
| SUB-02 | The sub only marks a line complete. They do not pick a percent. | The sub screen has one "complete" choice per line and no 50 or 85 option. | Change from POC |
| SUB-03 | The sub can add a note and photos to any line. | A note and a photo taken on the phone show up for the site lead on that line. | Built in POC |
| SUB-04 | When a sub has more than one PO on a project, they pick the PO first. | A sub with two POs on one project sees a PO picker under the project. | New |
| SUB-05 | Large POs stay usable on a phone: a search box that matches part of a description, a filter by cost code, lines that load as you scroll, and long descriptions cut short with a tap to expand. | A PO the size of AFC's largest, [largest PO line count from AFC] lines, opens and searches on a phone without stalling, using AFC's own project lists. | New |
| SUB-06 | The sub sees dollars when they submit, and the expected payment net of workers' comp and any deductions. | The review screen shows the claimed amount, the workers' comp, any deduction lines and the expected payment. | Change from POC |
| SUB-07 | The sub must tick a statement that the work is complete before Submit works. | Submit stays off until the box is ticked. | Built in POC |
| SUB-08 | The sub watches the status timeline, with each call the site lead made and the site lead's note and photo. | After the site lead sends an SPR on, the sub sees each line's call and the real amount, which arrives within 24 hours of the site lead's review. | Change from POC |
| SUB-09 | The sub sees the site lead's name on the SPR. Whether the sub also sees contact details for the site lead is decision D-14. | The SPR status screen shows the site lead's name. | Built in POC |
| SUB-10 | After a rejection, the sub can resubmit with a required note, and it goes back through the same chain with no shortcut. | A resubmit without a note is refused, and a resubmit with one lands back with the site lead. | New |
| SUB-11 | When a sub has been paid but has not signed the waiver, a reminder appears as soon as they sign in or pick a project. | A sub with an unsigned waiver sees "You've been paid. Please sign your lien waiver." with a button to sign it. | New |
| SUB-12 | If a submit fails, nothing the sub entered is lost. | With the connection dropped during submit, the notes and photos are still there on retry. | Built in POC |
Site review
| ID | Requirement | Done when | Status |
|---|---|---|---|
| SITE-01 | The site lead sees a list of SPRs waiting on them, for their own projects only, oldest first. | A site lead sees only SPRs on projects where they are named site lead. | Built in POC |
| SITE-02 | The site lead calls each line 50%, 85%, 100% or rejected. | Each line takes one of the four calls, and an 85% line reads to the sub as approved at 85%. | Built in POC |
| SITE-03 | The site lead never sees dollar values. | No amount, rate or total appears anywhere on the site lead's screens or emails. | Change from POC |
| SITE-04 | If any line is rejected, one general note is required for the SPR. A note per line is not required. | Sending with a rejected line and no note is blocked. One note lets it through. | Change from POC |
| SITE-05 | The site lead sees what each line has already been billed to, and cannot call a line lower than that. | On a line already billed at 50%, the 50% choice is shown as already billed and cannot be picked. | Built in POC |
| SITE-06 | When the site lead sends the SPR on, it goes to the ops manager for review, not straight to home office. | A sent SPR shows the Ops review status and appears in the ops manager's list. | Change from POC |
| SITE-07 | Site review works on a phone first, and on the laptops and hotspots AFC is issuing. | A site lead completes a review on a phone and on a laptop. | Built in POC |
| SITE-08 | A line called at 85% is paid at 85% now, and the remaining 15% is claimed on a later SPR. | A line paid at 85% shows on the sub's next SPR with 85% already billed, and only the last 15% to claim. | Built in POC |
Ops manager review
| ID | Requirement | Done when | Status |
|---|---|---|---|
| OPS-01 | An ops manager approval sits between the site lead and home office, and every SPR must pass it. | An SPR cannot reach home office without an ops manager approval on record. | New |
| OPS-02 | The ops manager works in the Pay requests module of the AP workbench, on a desktop, with dollars. The "In site review" list holds both Submitted and Ops review SPRs, each with its status. Opening one shows a side panel with the same lines, calls, notes and photos the site lead sees on the phone, plus the amounts. | An ops manager opens an Ops review SPR from "In site review" and sees every line, the site lead's call and note, and the dollar amounts in one panel. | New |
| OPS-03 | The ops manager approves one SPR at a time from the side panel, or in a batch from the list: one row per SPR, open any row for detail, or select all. | An ops manager approves one SPR from its panel, then selects the rest and approves them in one action. Each records who approved, and each moves to Ready for home office. | New |
| OPS-04 | If a site lead rejects a resubmitted SPR again, it goes to the ops manager instead of back to the sub. | A second rejection of a resubmit lands in the ops manager's list, marked as a repeat bounce. | New |
| OPS-05 | The ops manager sees the full back and forth on an SPR, with times, before pushing it on. | A repeat bounce shows each submit and each rejection with the day, time and note. | New |
| OPS-06 | Ops manager approvals are due by Tuesday close of business. | The ops manager list shows what is still open against the Tuesday deadline. Whether the system enforces it depends on decision D-01. | New |
| OPS-07 | When the site lead has not called the lines (out, or behind), the ops manager can call them in the side panel (50, 85, 100 or reject with a note, the same choices as the site lead) and approve in the same action: Call and approve. One person then covers both approvals, so it is flagged as covered. | With a site lead out, an ops manager calls each line of a Submitted SPR and presses Call and approve once. The SPR moves to Ready for home office with a Covered marker, and the history records both steps under the ops manager, "called for" the site lead. Batch approve never applies to an SPR whose lines are not called. | New |
Home office and billing
| ID | Requirement | Done when | Status |
|---|---|---|---|
| HO-01 | Home office creates the bills for SPRs the ops manager has approved, one at a time or several at once, and the work runs in the background. Home office makes no approval decision: the site lead and the ops manager have already approved. | Home office selects several SPRs in Ready for home office, presses Create bill, keeps working, and each SPR gets its own bill. | Built in POC |
| HO-02 | Only SPRs that have passed site review and ops manager approval reach home office, and every one of them is billed. Home office cannot reject an SPR or decide not to bill it. | Ready for home office lists only SPRs approved by the site lead and the ops manager, and the screen offers no approve or reject choice. | New |
| HO-03 | The bill is created from the PO for exactly what was approved, and lands approved. There is no separate bill approval step. | A new bill matches the approved lines and is ready to pay with no further approval. | Built in POC |
| HO-04 | A line is never billed twice. Pressing the button again opens the bill already made. | A second click on the same SPR opens the existing bill and creates nothing new. | Built in POC |
| HO-05 | Home office can see every SPR still in site review or ops review, grouped by site lead, so it can follow up on anything running late. Home office never makes line calls. Only the ops manager covers for a site lead (OPS-07). | Home office sees an absent site lead's waiting SPRs, and the side panel offers home office no way to call a line. | New |
| HO-06 | Home office does not reject a whole SPR. It creates the bill so the cost lands, and puts the payment on hold with a reason. | Home office can hold a payment for safety docs, certified payroll, an unsigned waiver or compliance, and the bill still posts its cost. | Change from POC |
| HO-07 | Accounting pays the bills through normal NetSuite payments and AFC's own ACH file. | A bill from an SPR pays like any other bill, and the SPR moves to paid. | Built in POC |
Workers' comp
Today AFC takes workers' comp out of what it pays the sub and pays the workers' comp itself. The system does this automatically: it creates the deduction as a vendor credit, posted to AFC's workers' comp payable account and applied to the bill, so the payment goes out net.
| ID | Requirement | Done when | Status |
|---|---|---|---|
| WC-01 | Each sub has a default workers' comp rate, taken from the rate table AFC provided. | A sub listed in the table at a rate below 3.5% gets that rate on their next bill. | Change from POC |
| WC-02 | A rate entered on the PO overrides the sub's default, for exceptions negotiated at buyout. | A PO with its own rate uses that rate, whatever the table says. | Built in POC |
| WC-03 | When nothing is on file, the rate is 3.5%. | A sub with no table entry and no PO rate is charged 3.5%. | Built in POC |
| WC-04 | The workers' comp deduction is automatic. When home office creates the bill, the system creates a vendor credit for the workers' comp, posts it to AFC's workers' comp payable account, and applies it to the bill. Nobody keys it by hand. | Every new SPR bill has a matching workers' comp credit applied to it, and the payment goes out net. | New |
| WC-05 | Workers' comp is never charged on a deduction line. It is worked out on the bill's work net of any deduction lines, so AFC does not overpay it. | On a bill with a deduction line, the workers' comp credit is the rate times the work net of the deduction, and the deduction line carries no workers' comp of its own. | New |
| WC-06 | The bill records which rate was used and where it came from: the sub's default, the PO, or the 3.5% fallback. | Opening a bill shows the rate used and its source. | Built in POC |
| WC-07 | AFC maintains the workers' comp rate table in NetSuite: add a sub, change a rate, or retire one. A change applies to bills created after it, never to bills already made. | AFC home office changes a sub's rate in the table, and that sub's next bill uses the new rate while earlier bills keep theirs. | New |
Rates at AFC run from 0% to 3.5%. Whether the table is kept by sub alone, or by sub and job, is decision D-07.
Deductions and extra work
Extra work orders (EWOs) are still captured in FieldWire. The PM then raises a subcontract change request in NetSuite. Deductions, such as back charges and safety violations, use the same change request.
| ID | Requirement | Done when | Status |
|---|---|---|---|
| DED-01 | An approved subcontract change request for an EWO adds a line to the sub's PO, and the sub can claim it on the next SPR. | After approval, the new line shows on the PO and in the sub app. Before approval, it shows nowhere. | Built in POC |
| DED-02 | A deduction goes on the PO as a negative line through a subcontract change request, using a dedicated deduction item. | A PM raises a deduction change request, it is approved, and a negative line with the deduction item appears on the PO. | New |
| DED-03 | A deduction must be approved the week before it applies. | A deduction approved this week lands on the sub's next SPR, not one already submitted. | New |
| DED-04 | The next SPR always includes any open deduction line. The sub cannot take it off, and sees it under their other lines. | The sub's SPR shows the deduction as a negative line with its description, and there is no way to untick it. | New |
| DED-05 | If an open deduction is larger than the week's approved work, the bill takes only as much of the deduction as the work covers, so the bill nets to zero. The rest of the deduction stays open on the PO and comes off the next SPR. No workers' comp is charged on a bill that nets to zero. | A $5,000 deduction against $2,000 of approved work produces a $0 bill, and the remaining $3,000 shows on the sub's next SPR. To prove in the development account: NetSuite accepts a $0 bill created from the PO. | New |
Lien waivers
| ID | Requirement | Done when | Status |
|---|---|---|---|
| LW-01 | Waivers are unconditional only, in two kinds: progress and final. There is no conditional waiver. | A progress payment drafts an unconditional progress waiver and a final payment drafts an unconditional final waiver. | Change from POC |
| LW-02 | The waiver wording comes from AFC's own forms for the state the job is in, from the forms AFC provided. | A job in each state AFC works in produces that state's form, with the amount and date filled in from the payment. | Change from POC |
| LW-03 | A waiver is drafted when a payment is made, for the amount paid. The office sends it after the ACH clears, with a send button. | A paid SPR shows a drafted waiver that does not reach the sub until the office presses Send. | Built in POC |
| LW-04 | The sub signs in the portal: tick the statement, type name and title, sign. The login is the proof of who signed. The signed copy is emailed to the signer. | A sub signs from the emailed link, the waiver shows signed, and the signer gets a copy. The email can be forwarded to the right person at the sub. | Built in POC |
| LW-05 | Rolling hold: while a sub has an unsigned waiver, their new bills go on payment hold, and the hold lifts when they sign. | A bill created while a waiver is owed is on hold, and signing the waiver releases it with no office action. | Built in POC |
| LW-06 | The office can void a waiver. Voiding a payment voids its waiver, and holds are worked out again. | Voiding a sub's only owed waiver releases the bills it was holding. | Built in POC |
| LW-07 | Waivers run on their own. Each payment drafts its waiver and builds the PDF from the job state's form. The workbench tracks each waiver through To send, Sent, Signed and Void. Signing releases the held bills, and a background check every fifteen minutes catches any release that did not finish. The office's only step is pressing Send once the ACH clears. | From payment to signed waiver to released hold, the only manual step on AFC's side is Send. | Built in POC |
What happens to a waiver when a payment is edited down after it was drafted is still open. See decision D-08. No real waiver goes out until it is settled.
AP workbench
| ID | Requirement | Done when | Status |
|---|---|---|---|
| WB-01 | The workbench is one full page under the NetSuite menu bar, with a rail listing the modules and a count of what is waiting in each. | An AP user opens the workbench and sees all five modules on the rail, with counts. | Built in POC |
| WB-02 | AFC's workbench shows five modules: Intakes, Compliance, Pay When Paid, Sub pay requests and Lien waivers. | The rail lists exactly these five, and no Approvals module. | Change from POC |
| WB-03 | Switching modules does not reload the page, and reloading returns to the same module. | Moving from Compliance to Sub pay requests is instant, and a browser reload stays on Sub pay requests. | Built in POC |
| WB-04 | Only roles AFC approves can open the workbench, and each module checks the role again on every action. | A role not on the list is refused, even with a direct link. | Built in POC |
| WB-05 | The workbench fills the page in both classic NetSuite and NetSuite Next, with no double scroll bars. | In both interfaces the workbench sits flush under the menu bar and only the work area scrolls. | Built in POC |
Intakes: new vendor onboarding
Today AFC collects W-9s and COIs through DocuSign. Intakes replaces that for new vendors: AP sends one link, the vendor fills in everything at once, and approval creates the vendor in NetSuite.
| ID | Requirement | Done when | Status |
|---|---|---|---|
| INT-01 | AP starts an intake with the company name and a contact email, and sends the invite from the workbench. AP can edit the email before it goes. | The vendor receives the invite email with a link, and the intake shows as invited. | Built in POC |
| INT-02 | Before an intake is created, AP is warned about possible duplicates: vendors or open intakes with the same name, email domain or contact email. The warning never blocks. | Starting an intake for a company already in NetSuite shows the match with a link, and AP can still continue. | Built in POC |
| INT-03 | The vendor fills in the intake through the link with no login, in five steps: company, addresses and contacts, trade details, documents, and review and submit. | A vendor completes all five steps from the emailed link, and can stop and pick up where they left off. | Built in POC |
| INT-04 | A W-9 is required. A COI is required, except that a vendor who does not work on site can mark it not applicable with a reason. AP can ask for more documents, and each one becomes a required upload. | The vendor cannot submit without a W-9, and cannot skip a document AP asked for. | Built in POC |
| INT-05 | The link lasts 14 days. A reminder sends a fresh link and ends the old one. AP can revoke a link at any time. | An old link after a reminder shows a page telling the vendor to use their most recent email. | Built in POC |
| INT-06 | AP reviews a submitted intake in one panel: accept or reject each document, request changes, request more documents, reject, or approve. The tax ID stays masked unless AP chooses to show it, and that is recorded. | Approve is offered only once the W-9 and the COI (or its not-applicable reason) are accepted. | Built in POC |
| INT-07 | Approval creates the vendor with its addresses, AP contact and documents attached, and sets its compliance status. If a step fails, AP sees what did not finish and can retry. | An approved intake becomes a vendor in NetSuite with its W-9 and COI on file and a compliance status of Compliant. | Built in POC |
| INT-08 | The new vendor's Vendor Center login is given by hand on the vendor record after approval. | AP gives access on the new vendor, and the vendor can sign in to the sub app. | Built in POC |
Compliance
| ID | Requirement | Done when | Status |
|---|---|---|---|
| CMP-01 | A vendor signed in to the Vendor Center can upload a COI, W-9, business license or other document, with its dates and a note for the reviewer, and see the status of each. | A vendor uploads a new COI from the Compliance tab and sees it as pending review. | Built in POC |
| CMP-02 | Uploads are PDF, PNG or JPEG, up to 5 MB, and the file must really be the type it claims. | A renamed file of another type is refused with a plain message. | Built in POC |
| CMP-03 | AP reviews uploads in the workbench: a review queue oldest first, preview, approve, or reject with a required note to the vendor. | A rejected document shows the vendor AP's note. | Built in POC |
| CMP-04 | AP sees approved documents that expire within 60 days, and can email the vendor a request for an updated copy that opens straight to the right upload. | A COI expiring next month shows on the Expiring list, and the request email takes the vendor to that upload. | Built in POC |
| CMP-05 | Every vendor with documents carries a compliance status: Compliant (current approved COI and W-9), Action needed (the missing ones are waiting on review), or Non-compliant. | AP can search and filter vendors by compliance status, and the status changes as soon as a document is approved. | Built in POC |
| CMP-06 | A nightly job marks approved documents past their date as expired and refreshes every vendor's status. | The morning after a COI expires, it shows as expired and the vendor is no longer Compliant. | Built in POC |
| CMP-07 | A vendor sees only their own documents. | A vendor cannot open another vendor's document, even by changing a link. | Built in POC |
| CMP-08 | A compliance lapse is a reason to hold a sub's payment. | Home office can hold a payment with the reason "compliance", and the hold shows on the bill. Whether a lapse holds payments automatically is decision D-09. | New |
Pay When Paid
AFC has a funded and unfunded workflow today for material bills against pay apps. Pay When Paid makes that a record: a release group ties the owner invoices that fund the work to the sub and material bills being held, with a reason, and lifts the hold when the owner pays.
| ID | Requirement | Done when | Status |
|---|---|---|---|
| PWP-01 | Accounting builds a release group: pick a project, the owner invoices that fund it, the bills to hold, and a reason (pay when paid, cash flow, dispute or other). | A new group puts its bills on payment hold, and the group shows the money held and the money received. | Built in POC |
| PWP-02 | A held bill cannot be paid by any route: Pay Bills, paying from the bill, a credit, an import or another script. | Each route refuses with a message that names the bill, the vendor and the group. | Built in POC |
| PWP-03 | When every funding invoice in a group is paid in full, the nightly sweep releases its bills. A dispute group is never released automatically. | The morning after the owner's payment, the group's bills are payable with no one clicking. | Built in POC |
| PWP-04 | A person with the release permission can release a group by hand, with a reason, from the workbench or from the bill. | A released bill is payable in the same session, and a role without the permission sees no release button. | Built in POC |
| PWP-05 | The bill shows why it is held and by which group, and the owner invoice shows what its payment will release. | Opening a held bill answers why it will not pay, without a click. | Built in POC |
| PWP-06 | A held bill past its own due date shows how many days late, except in a dispute group. | A held bill past its due date shows the day count, and a dispute group never shows it. | Built in POC |
| PWP-07 | Every change to a group is logged with who, what and when. The nightly sweep also puts back any hold that was cleared by mistake, and logs it. | A hold cleared by hand on a held bill is back on the next morning, with a log entry. | Built in POC |
| PWP-08 | Pay When Paid and the lien waiver hold work side by side. Each one releases only its own hold, and a bill stays held while either has a reason. | A bill held by both stays on hold when the owner pays, until the waiver is also signed, and the reverse. | Built in POC |
Reminders and oversight
| ID | Requirement | Done when | Status |
|---|---|---|---|
| REM-01 | A saved search lists open subcontract POs with no SPR in the last 7 days. | A test sub with an open PO and no SPR this week appears on the list, and drops off once they submit. | New |
| REM-02 | Every sub with an open subcontract PO gets a reminder email Monday at 6 AM. | The email arrives at 6 AM Monday, AFC's time, for every sub on the open PO list. | New |
| REM-03 | Any sub with no SPR by Monday noon gets a second reminder. Neither reminder copies anyone else. | A sub who submitted Monday morning gets no noon email, and a sub who has not does. | New |
| REM-04 | A dashboard list shows which subs have not submitted this week. | Ops managers and home office see the list on their dashboard. | New |
| REM-05 | Each step sends an email to whoever is next: the site lead on submit, the sub and the office when calls are made, the sub when billed, and the office when a waiver is signed. | A test SPR run end to end sends each of these emails to the right person. | Built in POC |
Access, dollars and licensing
| ID | Requirement | Done when | Status |
|---|---|---|---|
| ACC-01 | Site leads never see dollar amounts: no line values, totals, workers' comp or payable, on any screen or email they get. Everyone else in the process does: the sub in the Vendor Center, and the ops manager, home office and accounting. | A site lead's review screens and emails show the lines, calls, notes and photos with no amounts anywhere. | Change from POC |
| ACC-02 | Each sub gets one Vendor Center login to start. Vendor Center logins carry no license cost. | A PM gives a sub access from the vendor record and the sub can sign in. | Built in POC |
| ACC-03 | A PM or PX can set or reset a sub's password from the vendor record. Sub password rules are relaxed, with "remember me" and no second sign-in step. | A PM resets a locked-out sub, and the sub signs in with the new password on a phone that remembers them. | New |
| ACC-04 | Each person sees only their own: a sub sees only their own POs and SPRs, and a site lead sees only their own projects. | A sub cannot reach another sub's SPR, even by changing a link. | Built in POC |
Environment and rollout
| ID | Requirement | Done when | Status |
|---|---|---|---|
| ENV-01 | AFC has a sandbox account, a copy of production. Everything is built and tested there before it reaches AFC's live account. | BlueCollar signs in to AFC's sandbox, and the build runs and passes there first. | New |
| ENV-02 | Large POs and their required fields are tested there with AFC's own project lists before any sub sees the app. | The large-PO phone test in SUB-05 passes on [test projects from AFC]. | New |
| ENV-03 | The pilot starts with a small group of subs AFC picks: a few capable subs plus one less capable sub, to prove it is easy to use. Who is in it is decision D-13. | The pilot subs each submit an SPR that is paid and has its waiver signed. | New |
| ENV-04 | No sub gets access until the pilot starts. | Before the pilot, no sub has a working login to the app. | New |
| ENV-05 | Each role gets a short Loom video and a user guide. The app stays in English. The user guide also comes in Spanish. | Guides and videos exist for sub, site lead, ops manager, home office and accounting, and the sub guide exists in Spanish. | New |
Out of scope for now
These came up and are worth doing, but not in this first release.
| Item | Where it stands |
|---|---|
| Additional approval routing on vendor bills | Not required. The workbench's Approvals module is not part of AFC's release. |
| Many SPRs on one bill | Not needed. A deduction bigger than the week's work carries over to the next SPR (DED-05), and a week that cannot be paid yet is a payment hold (HO-06). |
| Sustaining payments and advances | Rare. Later, as a separate flow: a prepayment plus a credit on account. |
| Spanish screens | The app stays in English for now. A bilingual app would push the timeline. |
| Loading past POs and payments | No history is loaded. Running jobs cut over at a line in the sand (PO-06). |
| Materials vendors | Materials release POs stay as they are. Separate portals for materials vendors or operators are possible later. |
Open decisions
These were raised and did not land. Each affects what gets built.
| # | Question | Owner | Needed by |
|---|---|---|---|
| D-01 | Is the Tuesday close of business hard stop enforced by the system, or by practice? BlueCollar recommends the system. | AFC leadership | Before the ops manager step is built |
| D-02 | Is a remittance still needed, or is the paid view in the portal enough? | AFC accounting | Before the pilot |
| D-03 | How should the sub's "approved of PO total" read when the PO has negative deduction lines? | AFC ops and home office | Before deductions are built |
| D-04 | Large POs: one PO per phase or building, or one PO with search and filter? What is the largest line count today? [largest PO line count from AFC] | AFC (Jeff), with BlueCollar | Before the large-PO test |
| D-05 | When a price changes across many lines, use a subcontract change request (audit trail, but slow at 200 lines) or close the PO and open a new one (if the sub still sees paid history on the closed PO)? | AFC, with BlueCollar | Before the pilot |
| D-06 | A subcontract change request updates the current estimate, but WIP and revenue recognition read the projected estimate. If so, accounting adjusts projected by hand. | BlueCollar to confirm | Before deductions are built |
| D-07 | Is the workers' comp rate table kept by sub alone, or by sub and job? | AFC accounting | Check against the rate table AFC provided |
| D-08 | If a payment is edited down, or a bill is taken off a payment, after its waiver is drafted, what happens to the waiver? Today it keeps the old amount, so a sub could sign for money not paid. | AFC accounting, with BlueCollar | Before any real waiver is sent |
| D-09 | Non-compliant vendors: the recommendation is that their new bills go on payment hold automatically. First, non-compliant needs a definition. Which documents count (COI, W-9, safety documents), and which lapse is serious enough to hold a payment? | AFC accounting | Before the pilot |
| D-10 | Which documents beyond the W-9 and COI does AFC require from subs, for example safety training? [required document list from AFC] | AFC accounting | Before Intakes goes live |
| D-11 | Existing vendors' W-9s and COIs are in DocuSign today. Collect them again through the Vendor Center, or load them once? | AFC accounting, with BlueCollar | Before Compliance goes live |
| D-12 | Can the ops manager change a call the site lead already made, or only make the calls the site lead has not? Can the ops manager send an SPR back to the site lead? (At the onsite, disputes were settled by the ops manager telling the foreman which call to make.) | AFC ops managers | Before the ops manager screen is finished |
| D-13 | Which subs are in the pilot group? A few capable subs plus one less capable one were suggested at the onsite. | AFC ops managers | Before the pilot |
| D-14 | Should the sub see contact details for the site lead (phone, email) on the SPR, or only the name? The proof of concept shows the phone number. | AFC ops managers | Before the pilot |
What we need from AFC
| Item | Used for | State |
|---|---|---|
| Site lead names and emails, and the projects each one covers | PO-05 | Needed |
| The pilot group of subs | ENV-03, D-13 | Needed |
| Test projects and the largest PO line count | SUB-05, ENV-02, D-04 | Jeff to send project lists |
| An app name ("AFC Pay" was suggested) | SUB-01 | Needed |
| Required documents beyond the W-9 and COI | INT-04, D-09, D-10 | Needed |
| Jeff's meeting notes from the onsite | Checking this document | Needed |
Sign-off
Signing means you have read these requirements and agree they describe what AFC needs in this release, with the open decisions still to be settled.
Advanced Framing Construction, LLC
Name
Title
Signature
Date
Advanced Framing Construction, LLC
Name
Title
Signature
Date
BlueCollar
Name
Title
Signature
Date
For IT and BlueCollar
The rest of this document does not depend on this section. Open it if you run NetSuite at AFC or are building the system.
Show the technical appendix
Records
| Record | What it holds | Status |
|---|---|---|
| Sub pay request | The SPR header: vendor, subcontract PO, project, week ending, status, site lead, who reviewed and approved and when, the bill it created, totals. | Change from POC |
| Sub pay request line | One per PO line claimed: the line and its value at submit, already billed before, the sub's note and photos, the site lead's call, the amount earned, the bill line it became. | Change from POC |
| Bill job | A queue entry for "Create bill", so bills are made in the background and a stuck one is retried. | Built in POC |
| Lien waiver | Vendor, project, bill, payment, SPR, type, status, amount, through date, job state, form version, the PDF, who signed, typed name and title, when, and a fingerprint of the signed PDF. | Built in POC |
| Workers' comp rate table | Built keyed by job state. To be re-keyed by sub, or sub and job (D-07). | Change from POC |
| Vendor intake | One per invited vendor: what they entered, the documents, the link's fingerprint and expiry, the status, and the vendor it created. | Built in POC |
| Vendor compliance document | One per uploaded document: type, dates, file, review status and note, who reviewed and when. The vendor carries a Compliance Status field. | Built in POC |
| Release group | Pay When Paid: the group, its funding invoices, its held bills, an activity log and an exception log. | Built in POC |
| Settings | One settings record for pay requests and one for lien waivers: who the office emails go to, the default rate, the waiver mode and the rolling hold switch. | Built in POC |
| Fields on standard records | On the PO: a workers' comp rate. On the bill: the SPR it came from, the waiver hold flag, and the workers' comp amount, rate and source. On the project: the site lead and the job site state. | Built in POC |
Roles
- Sub: a Vendor Center role. Each sub page runs under its own narrow role and checks on every request that the signed-in vendor owns what is asked for.
- Site lead: moving from an Employee Center role in the proof of concept to Oracle's View and Approve. The page checks the signed-in employee is the project's site lead.
- Ops manager: new. Full access, on the same workbench as home office.
- Home office and accounting: the AP workbench roles, by allowlist.
- AP workbench: runs as the signed-in user, for roles on the workbench allowlist. Pay When Paid release is its own permission.
- Every page needs a sign-in except the vendor intake form, which a vendor reaches only by its one-time link. The pay request pages never run as Administrator.
Scripts, at a high level
- Sub app page and site review page: phone-first pages with no NetSuite menus around them.
- Pay requests and Lien waivers modules inside the AP workbench. The ops manager step is added to the Pay requests module.
- SPR status guard: enforces the order of steps and sends the emails.
- Payment watcher: drafts the waiver when a payment is applied to an SPR bill.
- Waiver watcher: releases held bills when a waiver is signed.
- Bill job sweep: every 15 minutes, all day, finishes bill jobs and retries stranded holds.
- Bill builder: makes the bill from the PO. It gains the workers' comp vendor credit (WC-04).
- Reminders: new. A scheduled job behind the Monday emails and the dashboard list.
- Intakes and Compliance: the vendor intake form, the Vendor Center compliance page, a document watcher that refreshes the vendor's status on every save, and a nightly expiry job.
- Pay When Paid: the workbench module, panels on the bill and the owner invoice, guards on payments and credits, and a nightly sweep. It respects the waiver hold and never clears a hold it did not place.