Orchard Rock Training

Orchard Rock Training — App Plan & Specification

A working brief for the build. Plain-English on purpose, so everyone — Orchard Rock and the build partner — is picturing the same thing.

Last updated: 01/07/2026


1. The big picture

One app, three doors (portals) onto the same shared information:

It's not three separate apps. There's one central set of data and each portal shows the slice relevant to that person. Enter something once and it's used everywhere — a trainer fills in a register, the office uses it to produce certificates, the client sees the result.

The golden rule: the app never makes a booking on its own. Clients send requests; the app does the legwork (who's free, who's qualified, who fits); a human in the office always places the booking. This protects our biggest USP — the personal relationship with clients.


2. How the data is stored & kept in sync

Works offline, syncs later (key requirement)

Trainers regularly deliver in care homes with poor or no signal. The app must work fully offline — open the booking, fill in the register, capture delegate signatures, enter scores, clock in and out — all stored on the tablet. The moment the tablet gets signal again, it automatically syncs everything up to the central database. The trainer should never lose work or be blocked by a dead connection.


3. Where everything lives (the connections)


4. The booking-request flow

  1. Client submits a request (Client portal) — subject, preferred dates, location, number of delegates, notes. A request, not a booking.
  2. It lands in the Office queue.
  3. The app does the legwork — matching driven by real history. Instead of guessing from a job title or home town, the app looks at the bookings database (last 2 years) and surfaces trainers by what they have actually delivered and where they have actually travelled: - Qualified = the trainer has delivered that course (or its subject) before. This is the truth about who can teach what — far more accurate than a job-title label. - Closest = ranked by the venue postcode. Trainers who have delivered in that postcode area before come first (with a count, e.g. "worked here ×5"); everyone else is ordered by real travel distance from the postcodes they've worked in — so a Cardiff job surfaces the trainers who cover South Wales, never a Scottish trainer at the top. - All qualified, available trainers are shown (not capped), in-area first then nearest-by-history.
  4. A human places the booking — picks the trainer, confirms with the client. Nothing auto-confirms.
  5. The trainer is sent the booking to accept or decline. A placed booking arrives in the trainer's portal as pending their confirmation. They can Accept or Decline any booking we give them. Decline notifies the office so we can reassign. Once accepted, it locks — it can't be declined or changed in the app.
  6. It appears in the trainer's schedule.
  7. The trainer delivers and fills the digital register (works offline).
  8. The register's scores feed certificate production.
  9. Certificates are released to the client once the office marks payment as received.
  10. The renewal clock starts — expiry tracked, reminders triggered.

5. Trainer portal — full specification (prototype built)

Login

Each trainer has their own private login and sees only their own bookings and details. (The prototype uses a name dropdown for testing; the real version is individual logins.)

My Bookings

My Availability

My Certificates

Resources


6. The booking as a hub — paperwork, clocking, notes

Opening a booking gives the trainer everything for that day in one place, in sections: Clocking, Paperwork, and Trainer notes. All of this paperwork is attached to the booking and is the same record across all three portals (trainer fills it, office uses it, client sees the relevant parts).

Paperwork holds:

Submit Pack & clock out. At the end of the day the trainer taps "Submit Pack to office & clock out." If anything is outstanding it lists exactly what's missing (naming any delegate who hasn't done feedback) rather than failing silently. If everything's complete it clocks them out with a friendly send-off ("safe travels", or "pleasant evening" for a virtual). Clock-out is blocked until every delegate is scored, all competencies are complete (✓ or exempt), every delegate has signed the health declaration on physical courses, the risk assessment is done, and feedback is in. Photo/video consent is optional. An office override exists for the rare case where someone leaves without submitting. (Plus the late-in → office flag and early-out → office flag.)


7. Clocking rules


8. Client portal (prototype built)


9. Office portal (existing Dashboard + additions)

Keeps everything the current Dashboard does (certificate generation, booking reminders, trainer pay reports, course bullets), with the sidebar tidied — Certificate generation, Certificate Details and Course Bullets grouped together under Certificates — plus the connective tissue:

When a trainer declines a placed booking, it drops back into Booking Requests as high priority (flagged "trainer declined", sorted to the top, with the declining trainer excluded from the re-match). - Registers inbox — registers coming back (incl. synced-from-offline), feeding certificate production.


10. Business rules at a glance


11. Open decisions for the build partner

  1. Data home — keep monday.com as the live source, or migrate to the app's own database.
  2. Authentication — how logins/roles are set up across the three portals.
  3. Payments — for now this stays a manual office step (mark a course as paid), matching how it is done today, which then releases certificates. Whether to automate it via an accounts/payment system later is an open question — not assumed.
  4. Offline sync details — how the tablet stores and reconciles data (the trainer's device is authoritative for their own register).
  5. SharePoint setup — dedicated app site vs granting access to the existing live library; admin to grant "Sites.Selected".
  6. "Best suited" rules — the prototype ranks on delivery history + travel history + availability (see §4). To confirm for the build: should we also factor client history/relationship, trainer rating, or cost/fee bands, and how to handle a brand-new trainer with little history yet?
  7. Delegate logins — do client delegates ever log in, or does the client contact manage everything?
  8. Feedback identity email — confirm the approach of a non-stored email purely to verify the delegate (and send the handout), vs a tokenised link, when the real app is built.

12. Build status

Known issues (as of 01/07/2026 build)