BoreReady FAQ
Jump to
- What is a seat?
- How do I see how many seats I have left?
- How do trainees log in after I enroll them?
- Can I enroll a whole class at once with a CSV?
- Do trainees need to take anything after the initial 40-hour course?
- When does the certification card expire?
- What do the different cert statuses mean (Certified Active, Expiring, Expired, Grace Period, Suspended)?
- What does the "Expiring soon" tile on my dashboard mean?
- What score is needed to pass the exam?
- I got an email saying a trainee passed the exam — what do I do?
- How does a trainee print their card?
- Does BoreReady cover DLI approval for my training business?
- What's the difference between the classroom portion and the hands-on portion?
- My seats ran out — how do I get more?
- What if DLI audits my training program?
- DLI asked for an audit. Which report do I send?
- What happens after I submit my intake?
- What is the classroom presenter and how do I teach a module with it?
- How do I start a cohort and take attendance on /trainer/present?
- How do I end a cohort and correct the hours if I got them wrong?
What is a seat?
A seat is one trainee's spot in the 40-hour initial certification course. When you onboard with BoreReady you receive a prepaid pool of seats as part of your onboarding fee — the pilot allotment is 20 seats for every onboarded provider.
Each time you enroll a new trainee via the Start a training form, one seat is deducted from your pool. Re-enrolling the same trainee (e.g. fixing a missing LMS enrollment for someone who was already in your cert list) doesn't deduct a second seat.
When your pool hits zero, the Start a training form stops accepting new trainees. Contact BoreReady support to top up.
How do I see how many seats I have left?
Your seat balance is shown on your trainer home page at the top, underneath the DLI-approval strip:
20 seats remaining · 0 of 20 used · Add trainees →
The balance card changes color as you get close to zero: green while you have headroom, amber at three or fewer remaining, red at zero. Clicking Add trainees takes you to the enrollment form.
How do trainees log in after I enroll them?
When you submit the Start a training form, each trainee automatically receives:
- A welcome email at the address you entered, with a link to set their password.
- A matching enrollment in the 40-hour initial certification course.
Once they set their password, they log in at https://boreready.v.frappe.cloud/login with their email + password and go straight to the LMS course. No payment wall — their seat is prepaid.
If they don't see the welcome email, ask them to check their spam folder first; if it's still missing, see the "Trainee didn't receive login email" entry in troubleshooting.
Can I enroll a whole class at once with a CSV?
Yes. On the Start a training page there are two side-by-side cards: Add one at a time (manual form) and Or paste a CSV.
Paste a CSV with the header first_name,last_name,email,phone (phone is optional). One trainee per line. Click Add from CSV and BoreReady parses it before saving:
- New rows get added to the list above
- Duplicates within the CSV → reported as "duplicate skipped"
- Rows that already match a row above → reported as "already in form"
- Bad rows (missing email, malformed email, missing name) → reported with the line number so you can fix them
You see the parse summary BEFORE you submit, so there's no surprise after pressing Save. After save, each enrolled trainee gets the same welcome email as a manually-added one.
Do trainees need to take anything after the initial 40-hour course?
Yes. Minnesota Statute § 326B.198, subd. 3(a)(3) requires a 4-hour refresher course every 3 years to keep the certification active. BoreReady tracks each trainee's card expiration date automatically — the trainer dashboard surfaces an "Expiring soon" tile when a card crosses the 90-day warning window, and the cert moves through the lifecycle states (Certified Active → Expiring → Expired → Grace Period) on a daily schedule.
Trainee-facing reminder emails on the 90/60/30/0 cadence ship with the refresher tooling. The refresher course itself has its own curriculum (in development). Kenny and Nick's pilot cohort will refresh in 2029; we'll ship the refresher tooling well before then.
When does the certification card expire?
Certification cards are valid for 3 years from the date of issue, per MN 326B.198, subd. 3(a)(3). The card shows the exact expiration date. Trainees must complete a 4-hour refresher course (and maintain a clean record) to renew.
If a card expires without the refresher, the trainee loses their Safety-Qualified Installer status and must re-take the 40-hour initial course to get it back.
What do the different cert statuses mean (Certified Active, Expiring, Expired, Grace Period, Suspended)?
Each cert moves through a set of statuses you'll see on the trainer dashboard, the trainee detail page, and the audit reports. Here's what each one means in plain terms:
| Status | What it means | What you can do | |---|---|---| | Not Started | Trainee enrolled but hasn't logged into the LMS yet. | Wait or nudge them. | | In Training | Working through the 40-hour curriculum (classroom + hands-on). | Sign off field days as they happen. | | Exam Pending | Curriculum done; ready to take the test. | Schedule the test. | | Certified (Active) | Card issued and currently valid. | Trainee can work; you'll get a 90-day expiring warning before renewal. | | Expiring | Card is still valid BUT within 90 days of expiry. | Talk to the trainee about scheduling a refresher (refresher tooling ships with Slice 3). | | Expired | Card hit its expiration date today. Trainee can no longer take exams. | Refresher required to renew. | | Grace Period | Past expiry, still flagged as lapsed. The cron leaves certs here indefinitely; no automatic suspension at end of grace. | Same as Expired. | | Suspended | Operator action or a provider-approval cascade (e.g. provider's DLI approval was revoked). NOT automatic — see note below. | Contact BoreReady support. |
The lifecycle progression (Active → Expiring → Expired → Grace Period) runs automatically every day at 3am UTC. Suspended is never written by the cron — only operator action or a Squti Provider Approval cascade writes that status. End-of-grace handling (whether automatic or manual) ships with the renewal-engine work in Slice 3.
What does the "Expiring soon" tile on my dashboard mean?
The Expiring soon tile on your trainer home shows the count of cards that are within 90 days of expiry, plus the first 5 trainee names ordered by who's expiring first.
When the tile shows a non-zero count, those trainees need to start their 4-hour refresher before their cards expire. Today the refresher course doesn't ship yet (Slice 3 work) so the tile is informational only — when the course ships, the tile becomes the entry point for refresher enrollment.
What score is needed to pass the exam?
The exam passing standard is 75% — trainees must correctly answer at least 39 of 52 questions drawn at random from the 71-question bank. This standard is locked in BoreReady's Squti Settings (OD-001, re-locked 2026-04-16 per Phase 2 Doc 4) and is what card issuance checks against.
Each exam attempt draws a different 52-question subset so trainees can't memorize positions. Trainees get up to 3 attempts per window; repeated failures trigger a remediation pathway (retake specific modules).
I got an email saying a trainee passed the exam — what do I do?
When a trainee passes the test, BoreReady automatically emails every linked instructor at your training business with a "ready for their card" subject line and a deep link straight to the card-issuance page for that specific trainee.
Open the email, click the link, and you'll land on the issuance form pre-filled for that trainee. Click Issue card to assign the certification number and stamp the card. The trainee gets their card number immediately and can print the card from /cards/<their-cert-number> (see "How does a trainee print their card?" below).
If you DON'T want these emails, mute them on your settings page — toggle Email notifications.
How does a trainee print their card?
Once a card is issued, the trainee can print it themselves at /cards/<their-cert-number> (e.g. /cards/NUTC-2026-00001). The page is print-optimized — Cmd+P or Ctrl+P drops directly into a clean card layout with no nav, footer, or buttons.
Access rules: - The trainee can view their own card - You (the issuing trainer) can view any card you issued for your training business - Cross-business access returns a 404 — privacy by design
If a trainee says the print view shows "Card not found," check that their cert is still in Certified (Active) or Expiring status. Suspended / Expired / Grace Period cards intentionally don't render — they're not currently valid.
Does BoreReady cover DLI approval for my training business?
BoreReady helps you submit your DLI approval packet — we don't grant the approval itself (only the Department of Labor and Industry can). Submit your packet through /trainer/approval. Common reviewers: Don Sivigny at DLI.
While you're waiting for approval, you can still:
- Set up trainings
- Train trainees through the classroom + hands-on content
- Run practice exams
What you can't do until approval is finalized is issue cards. The card-issuance flow checks your provider's approval_status field before stamping a card.
What's the difference between the classroom portion and the hands-on portion?
The 40-hour course is blended:
- 16 hours of classroom — self-paced online modules (1 classroom lesson per module × 8 modules × 2 hours). Trainees watch the video, read the written material, and take the end-of-module knowledge check.
- 24 hours of hands-on — you (the instructor) run these in person. Each module has a 3-hour hands-on session. You sign off via /trainer/sign-off once the trainee completes it.
A trainee can't take the final exam until all 16 classroom lessons are marked complete AND all 8 hands-on sessions carry an instructor signature. BoreReady enforces this automatically.
My seats ran out — how do I get more?
Email BoreReady support (jordandamhof@gmail.com) with your provider name and the number of seats you need. We'll process the top-up and update your pool within one business day. Self-service seat purchase is coming in a future release.
What if DLI audits my training program?
DLI can audit your training program at any time under MN 326B.198, subd. 3(b). The audit records page exports an auditor-ready bundle covering:
- The provider Master Record (every trainee + cert ID + dates)
- Module completion records (classroom + hands-on)
- Exam attempt logs with scores and timestamps
- Instructor qualifications
- Program approval letter (once DLI issues one)
If DLI contacts you about an audit, don't improvise — follow the 4-step response protocol in Module 07 (Documentation, Records, and Provider Evidence). BoreReady stores the evidence; you (the certified instructor) escort the audit.
DLI asked for an audit. Which report do I send?
The audit records page has 4 separate download cards. Pick the one that matches what DLI asked for:
| Auditor question | Report to send | |---|---| | "Show me proof of who passed your test" | REPORT-EXAM — one row per test attempt, 15 fields, append-only | | "Give me the list of every installer you've certified" | REPORT-ROSTER — one row per certified installer (issued cards only) | | "Show me the training sessions you ran" | REPORT-SESSION — one row per classroom or hands-on session, with attendee counts | | "Send me the card-issuance log" | REPORT-CARD — one row per card issuance event, with the triggering exam attempt |
Each download is a single CSV file, scoped to your training business only, named like midwest-underground_REPORT-EXAM_2026-04-15.csv. Pick a date range first; defaults to the last 30 days for time-bounded reports. REPORT-ROSTER's date filter is optional, but leaving it blank does NOT include in-progress trainees — the roster is "issued cards only" by spec, regardless of date filter. For the in-progress pipeline view, use the "in progress" tile on the trainer dashboard instead.
Don't have what they're asking for? Check the troubleshooting page or email BoreReady support — sometimes "audit records" maps to multiple reports and we can advise.
What happens after I submit my intake?
When you submit the /adopter-intake wizard, your answers, instructor roster, training locations, and facility photos are saved as a draft Squti Adopter Intake record and BoreReady is notified to review. We prepare your DLI submission packet (Letter of Authorization, signed Curriculum License, Instructor Qualifications, and Training Locations PDFs) and email Don Sivigny at DLI on your behalf.
Once BoreReady provisions your trainer portal account, you'll receive a magic-link email at the address you submitted so you can finish setting up and start enrolling trainees.
What is the classroom presenter and how do I teach a module with it?
The classroom presenter at /trainer/present is the page you open in class to teach a module. It puts three things on one screen so you don't have to alt-tab:
- Slides — the module's PDF deck, embedded with Fullscreen support.
- Speaker notes — a printable outline of talking points for each section, including safety callouts you're required to hit per DLI.
- Live roster — your provider's in-progress trainees with checkboxes so you take attendance without a paper sign-in sheet.
Open it via /trainer/present?module=MODULE_0N — each of the 8 modules has its own URL. The roster picker is scoped to your provider's installers in cert statuses Not Started, In Training, or Exam Pending, so you can't accidentally mark a trainee from another business or someone who already earned their card.
The classroom credit (hours toward the 40-hour requirement) is applied automatically when you mark someone Present and then End the session. Each trainee can earn at most one classroom credit per module per day — if Kenny's AM cohort and Kenny's PM cohort both list the same trainee for Module 01, the PM roll-call will skip them with the reason already_credited_today and tell you.
How do I start a cohort and take attendance on /trainer/present?
Go to /trainer/present?module=MODULE_0N for the module you're teaching. You'll see a roster of your provider's in-progress trainees with checkboxes.
First cohort of the day: Everyone is pre-checked. Uncheck anyone who didn't show, then click Start session + take roll. The session is created In Progress, each checked trainee is stamped Present with the module's classroom hours pre-filled, and the page reloads with the live roll-call panel front and center.
Second (or third) cohort, same module, same day: The picker moves into a collapsed "Pick trainees" section and your live cohort's roll-call shows first. Two ways to add trainees:
- Start a NEW cohort (the primary button) — creates a separate session with the currently-checked trainees. Use this when the PM class is a different group than the AM class. We deliberately do NOT auto-merge a new cohort into the existing one — if you click this button, you get a new cohort. Two cohorts live at once render a cohort-switcher banner so you can jump between them.
- Add trainees (on the empty-cohort panel, or via the picker's "add to current") — appends the checked trainees to the live cohort you're currently teaching. Use this when a latecomer shows up to the class you're already running.
Mid-class, use the Mark absent / Mark present toggles on each row to correct the roll. Absent trainees have their hours_credited zeroed, so they won't get credit for a class they didn't actually attend. You can only mark attendance on sessions that are still Scheduled or In Progress — once a session is Completed, the roll is frozen (corrections go through the admin UI with a version-history trail).
How do I end a cohort and correct the hours if I got them wrong?
Click End this session at the top of /trainer/present when the module is finished. The session's status flips to Completed and the duration (in hours) gets stamped from the deck's configured length.
If you realize you mis-typed the hours — say you ended the session showing 2.0 hours but the class actually ran 2.5 — you can click End this session again the same day with a corrected duration_hours and the new value is persisted. Cross-day corrections are intentionally blocked: once a class is Completed and the day has rolled over, the hours are part of the audit record and changes must go through the admin UI, which logs who changed what and when.
Cancelled sessions are never re-openable from the presenter — contact BoreReady support if you need to undo a cancellation.