Live prototype briefing - product blueprint plus review links

Timesheet automation that Kim can trust before it touches payroll.

The project now has enough discovery and a first live prototype to move from "what is the process?" to "can Kim and Kiara validate the actual workflow before we wire live writes?" This page maps the operating model, rule book, live prototype pages, Slack handoffs, Toby handoff, settings, and rollback safety layer.

Daily approval run Thu 7 May
255
Ready
Manual duration enriched 357934 resolved
Rows needing Kim review Exceptions only
Write safety Batch TA-2026-05-07-A
Pre-write snapshotStored
Proposed changesReviewable
Rollback packageAvailable
Future intake Field Staff Hub
Time Extension RequestForm
Time Logs AdjustmentForm
Resolved 15%

Under-schedule now means actual duration is at or below 15% of expected/manual duration. Priya/Jessica-style examples should pass.

Verified 155 min

Booking 357934 confirms selected duration via booking endpoint: duration and blocked duration are 155 minutes.

Kim review 10%+

Logs 10% or more over the enriched expected duration route to Kim's exception queue for manual review.

Live /timesheets

Timesheet Management now exists as a live Dashboards prototype with seeded data for Kim/Kiara review.

Live prototype now available

The prototype is live inside Dashboards and now includes real historical Launch27 pulls, generated rule results, workbook import review, and controlled write/verify/rollback controls for small date-specific batches.

Start here

Timesheets Overview

Shows the live historical run, summary status, navigation, filters, pagination, and database-backed rule review table.

Kim focus

Exceptions Review Queue

Where Kim reviews each exception, opens the detail panel, checks evidence, and saves the decision that controls later batch eligibility.

Rules

Rulebook

Operator-visible rulebook for confirmed rules, Kim sample travel rules, evidence, and build mapping notes.

Handoff

Toby Handoff

Shows workbook export, Toby's script, Launch27 travel changes from Toby's workbook, hidden IDs, and Kim's manual Mark Toby Complete gate.

Import

Toby Import Review

New top-level page for checking Toby's returned Google Sheet, matching far-right hidden IDs, respecting column H, and carrying unresolved rows forward.

Write safety

Apply Adjustments

Models the first-rollout write path: date-specific batches only, visible before/after values, verification after write, and rollback controls.

Config

Settings

Shows which thresholds, cutoffs, access rules, notification channels, and batch limits should be adjustable later.

Traceability

Audit Log

Represents the future audit trail for decisions, writes, verification, rollback, Slack postbacks, and handoff events.

Current live data baseline

Safe week loaded: Sunday 17 May 2026 to Saturday 23 May 2026.
Launch27 pull: 1,152 raw booking records produced 1,245 snapshot rows.
Rule results: 1,245 rows generated: 1,152 clean pass, 53 missing-log exceptions, 20 first-job travel updates, 3 zero-minute distance updates, 10 over-schedule reviews, and 7 under-schedule reviews.
Current caveat: the generator handles clean pass, missing logs, first-job travel, zero-minute travel distance, under-schedule, and over-schedule. Manual-duration enrichment now runs before rule generation; controlled write batches exist but should still be tested in small historical date batches before live reliance.

What Kim and Kiara should test now

Exceptions: click through each sample and check whether the evidence, recommended decision, proposed write, and action labels are clear enough.
Rulebook: confirm the travel, missing log, over-schedule, manual duration, first-job travel, and post-cutoff wording.
Toby Handoff: confirm the sequence: export workbook, Toby runs script, Toby workbook travel changes are applied in Launch27, Kim clicks Mark Toby Complete, returned sheet is imported.
Toby Import Review: confirm the dedicated import-review page is the right place to check Toby's returned sheet before any write batch is prepared.
Apply Adjustments: confirm that first rollout batches should stay date-specific and that preview/apply/rollback wording is clear.
Settings: confirm which items should be editable later rather than hard-coded.
Field Staff Hub: note that the Time Log Request button is now visible in Field Staff Hub and opens the future request-intake form path.

Current prototype boundary

Save Kim's decision records the review outcome only. It does not write to Launch27. Actioned in Launch27 is the manual-edit path and should auto-refresh/re-read the item where possible. Open Slack thread is Phase 1 visibility for Field Staff Hub-submitted requests only. Actual Launch27 writes belong to the controlled Apply Adjustments flow with date-specific batches, before snapshots, verification, and rollback.

How the automation moves data

The smallest unit is an individual Launch27 time-log row. The review unit is a weekly run snapshot. The safe write unit for first rollout is a date-specific batch.

Where is the button that changes Launch27?

The Launch27 write trigger is Apply selected date batch on the Apply Adjustments page. Earlier buttons read, enrich, review, import, or prepare data. They do not change Launch27 time logs until the date batch is applied.

Atomic unit Time-log row

One Launch27 row for one booking/team/time-log entry. Before values are stored before any controlled write.

Review unit Weekly run

The app pulls a week of Launch27 data so Kim can see clean rows, exceptions, rule outcomes, and Toby workbook context together.

Write unit Date batch

First rollout keeps writes to one service date at a time so apply, verify, and rollback stay easy to inspect.

Human gates Kim and Toby

Kim reviews/approves decisions and applies batches. Toby runs the workbook process before the returned sheet is imported.

Current live workflow diagram showing Launch27 time-log rows, Timesheets Hub run and rule steps, Kim review, Toby workbook, import review, date batch, apply selected date batch, verification, and rollback.
Trigger Kim sees What moves Direction Does it write Launch27?
Create test run Launch27 daily time-log rows become a stored weekly snapshot. Launch27 to Timesheets Hub No. Read and store only.
Enrich selected durations Booking detail duration/manual duration is added to the stored snapshot. Launch27 booking detail to Timesheets Hub No. Read and store only.
Generate rule results Stored rows are classified as pass, needs Kim, exception, or write candidate. Inside Timesheets Hub No. Rule evaluation only.
Save Kim's decision Kim's review outcome is saved against a rule result. Kim to Timesheets Hub No. It controls later eligibility.
Import returned workbook Toby's returned weekly workbook is matched back using hidden booking/team/batch IDs. Google Sheet to Timesheets Hub No. Import/review only.
Prepare next date batch Eligible rows are grouped into a small batch for one service date. Inside Timesheets Hub No. It prepares the write package.
Apply selected date batch The selected batch writes proposed values into Launch27, then re-reads Launch27 to verify. Timesheets Hub to Launch27 and back Yes. This is the automation processing button.
Roll back verified batch Captured before values are written back into Launch27, then verified by read-back. Timesheets Hub to Launch27 and back Yes. Restore path only after an apply.
Future complete workflow diagram showing Field Staff Hub requests, Slack visibility, Kim exception queue, Launch27 daily rows, weekly snapshots, rule engine, Toby export, Google Sheet script, import review, date-specific batch, Apply selected date batch, Launch27 verification, rollback, payroll handoff, and audit log.
Live today

Daily Runs, Exceptions, Toby Import Review, Apply Adjustments, Import History, rulebook, settings model, and write/rollback functions.

Still deliberately gated

Apply stays locked until the selected batch has approved status, an approver, and write items. Rollback stays locked until a batch has been applied or failed after apply.

Future complete state

Field Staff Hub request intake and Slack postbacks will connect evidence and request status without making Slack the source of truth.

Safety principle

Every controlled write has before values, a previewable payload, server-side gates, verification read-back, and rollback support.

Where the project is now

Discovery is no longer blank-page discovery. The current work is consolidation: turn Kim's rules, Slack evidence, proxy behavior, and Toby's sheet into a system blueprint that can be reviewed before build.

1

Discovery sessions

Kim/Kiara workflow, SOPs, original transcript, and rule worksheet reviewed.

Done
2

Rule book consolidation

Convert answers into explicit approval, exception, adjustment, and evidence rules.

Now
3

Data verification

Proxy duration source, Slack forms, Toby sheet columns, and Field Staff Hub staff data.

Now
4

Live prototype review

Team reviews the Dashboards prototype, briefing links, page placement, settings, labels, and safety model.

Now
5

Real data and safe write path

Move from seeded prototype rows to real read-only runs, then prove one small write/verify/rollback test before live reliance.

Later

Product home decision

There are two related surfaces, but they should not be the same surface. Timesheet Management owns payroll workflow. Field Staff Hub owns staff context and request intake.

Recommended

Standalone Timesheet Management section

Use a dedicated dashboard section with FSH-style navigation and components. This keeps payroll timing, Toby handoff, Launch27 writes, audit, settings, and rollback in one obvious place.

  • Path concept: /timesheets
  • Primary users: Kim, Kiara, Jason, payroll/admin reviewers.
  • Pages and access are mapped in Interface Map.
  • Linked from Field Staff Hub operations and individual staff cards where useful.
Companion surface

Field Staff Hub request intake

Support, dispatch, team leaders, or other field-facing users should submit time requests from Field Staff Hub because they should not need access to payroll-oriented timesheet screens.

  • Top-level action button in the existing Field Staff Hub header action cluster.
  • One popup form with a request-type dropdown; see FSH Intake.
  • Posts status back to Slack and routes review into Timesheet Management.

Interface map

This is the clearest split: Timesheet Management is the payroll operations cockpit. Field Staff Hub is request intake. Slack remains visibility and conversation, not the source of truth for the new workflow.

Primary build

Timesheet Management section

Standalone dashboard section for Kim and authorised payroll/admin users.

Overview - daily status, open exceptions, Toby state, and batch readiness.
Rule Book - read-only active rules, owners, thresholds, examples, and last-changed audit.
Pending Exceptions - Kim's queue for over schedule, under schedule, missing checkout, missing logs, and FSH requests.
Daily Runs - pull, enrich, classify, compare, and lock a service day.
Toby Handoff - export package, non-blocking pending list, and Kim's manual "Toby Done" gate.
Toby Import Review - dedicated top-level screen for Toby's returned Google Sheet, hidden-ID matching, column H review, and carried-forward rows.
Apply Adjustments - date-specific reviewed write batches with before/after values, post-write verification, and rollback package.
Audit Log - actor, rule, evidence, batch, proxy response, and rollback events.
Settings - admin-only thresholds, cutoffs, approvers, batch limits, and Slack channel config.
Connected surfaces

Where users actually work

Field Staff Hub - add a "Submit Time Log Request" action beside existing Submit Leave / staff-exit actions. Users submit requests without seeing payroll screens.
Slack channel C040B46JRM2 - transition visibility, request notifications, follow-up conversation, and manual Phase 1 thread updates for FSH-submitted requests.
Toby's Google Sheet - keep existing column order; append hidden/protected IDs at the far right because Toby confirmed his script only uses column H.
Launch27 - source and write target. Kim can still manually action an item there, then mark it actioned in Timesheets so the app can re-read and verify where possible.
Field Staff Hub staff cards - linked from exceptions when Kim needs staff context, team leader, employment type, or metadata.

Weekly timeline

The system needs a timeline view because the real risk is not just approving a single day. It is keeping the handoff sequence stable from service week through payroll payment.

Sunday to Saturday

Service week accumulates Launch27 logs, Slack time requests, missing check-outs, manual duration changes, and daily approval runs.

Source week
Daily processing

System pulls Launch27 logs, enriches with booking duration, checks Field Staff Hub staff metadata, and separates clean approvals from exceptions.

Approval run
Friday exception

Thursday logs have a Friday 1:00 PM export path. Friday logs can have a first export and a later V2/catch-up path.

Special timing
Monday 6:30 AM

Finalization package to Toby: approved logs, travel adjustment context, unresolved exceptions, and batch status.

Toby handoff
Monday 11:30 AM

Toby target deadline for completing his sheet/script work. Kim records Mark Toby Done in Timesheet Management once he confirms.

Kim gate
After Toby returns sheet

Kim reviews the returned Google Sheet in the new Toby Import Review page, confirms hidden-ID matches, and sends eligible rows into date-specific write batches.

Import review
Monday 1:30 PM

Soft payroll cutoff. Remaining issues become highlighted late-risk items, not silent blockers.

Soft cutoff
Tuesday 3:00 PM

Hard payroll cutoff. Anything after this becomes post-cutoff processing with explicit audit and next-cycle handling.

Hard cutoff
Wednesday

Payroll/payment follow-through and reconciliation. Dashboard should show what was included, deferred, or manually overridden.

Reconcile

Rule book draft

The next review should not reopen every rule. It should freeze Kim's three changed rows, confirm UI labels that become system contracts, and treat the rest as confirmed unless someone spots a factual error.

Area Working rule Evidence/source System behavior Status
Under schedule Flag only when actual duration is at or below 15% of expected/manual duration. Kim prototype feedback: Priya D. and Jessica T. pass; trigger points are 27 min for 180 min and 23 min for 150 min. Rows above the 15% trigger pass the rulebook. Rows at/below the trigger route to exception queue unless a known cancellation/special rule explains it. Confirmed - corrected
Over schedule Logs 10% or more over the enriched expected duration route to exception review. Kim follow-up review, Kim worksheet, and proxy verification. Do not auto-approve overage. Show Slack/FSH request evidence, selected manual duration, and proposed cap/approve action for Kim to manually check. Confirmed - Kim owner
Manual duration Use booking duration/blocked_duration as selected duration when it differs from time-tracking estimate. Booking 357934: selected 155 min, time-tracking estimate 135 min. Enrich every time-log row before variance rules. Manual duration prevents false exceptions, but logs still 10%+ over the enriched duration go to Kim. Verified
Missing checkout Do not approve until the actual checkout can be confirmed. SOP and Kim worksheet. Keep affected booking pending, draft/track follow-up, and show unresolved status. Confirmed
No check-in Cannot be automatically approved without confirmation. Kim worksheet. Exception queue with staff/support evidence requirement. Confirmed
Contractors Contractors are skipped. No approval needed. Kim worksheet and meeting discussion. Use Field Staff Hub staff metadata as source of truth; Launch27 team naming can be secondary. Confirmed
Team leaders TL logs generally do not need approval. Kim worksheet. Skip or classify by Field Staff Hub role. Keep exceptions visible if special booking type requires it. Confirmed
One-on-one Approve up to 20 minutes. More than 20 minutes requires TL flag/approval. Kim worksheet. Cap to 20 unless supported by TL evidence. Confirmed
Induction Approve up to 1 hour. More than 1 hour requires TL approval/flag. Kim worksheet. Identify by induction booking/service wording and route overage for evidence check. Confirmed
First job travel Travel time and distance for a field staff member's first booking of the day should be set to zero. Kim follow-up review and Kim worksheet. Set first-job distance and travel time to zero. Exception: if the first booking was cancelled, the associated travel time may be approved. Confirmed
Cancelled service Full reported travel time can be approved. Waiting/service time capped at 30 minutes. Kim worksheet. Check Launch27 cancelled status, then cap service/waiting to max 30 minutes. Confirmed
Post-cutoff entry Late logs should not silently flow into payroll. Kim owns the post-cutoff rule. Kim follow-up review and timeline discussion. Separate late lane. Kim tracks missing logs until confirmed and flags payroll on any changes. Confirmed - Kim owner

Kim confirmed what can remain pending without blocking Toby

Missing time logs with no logs at all, and missing check-in/check-out cases, can remain pending while Kim continues follow-up. They should be visible in the dashboard but should not block Toby's handoff.

Manual duration enrichment

The booking 357934 test changes the implementation assumption. The time-tracking endpoint alone is not enough for the rule engine.

Without enrichment

Time tracking says this is an exception

Booking357934
Field staffLily Grieve
Time-log estimate135 minutes
Reported time155 minutes
Current proxy ruleRule C, needs action

This is why the current enriched time-tracking result is useful but incomplete. It detects variance against the recommended estimate, not the selected/manual duration.

With enrichment

Booking details resolve the exception reason

Booking endpoint/v1/staff/bookings/357934
Selected durationduration = 155
Blocked durationblocked_duration = 155
DecisionNot an exception
Still neededApply correct adjustment/write-back

Manual duration does not mean "no change required." It means the correct expected duration is known. If reported time is still 10%+ over that enriched duration, it routes to Kim; otherwise the system can prepare the right adjustment.

Current vs future surfaces

This is the transition map for Slack forms, Field Staff Hub intake, Kim review, Toby handoff, post-cutoff handling, and Slack postbacks.

Purple: Slack visibility Blue: user-facing form Green: system of record Amber: manual/transition
Current state
Slack workflow formTime extension or time-log change is submitted in Slack.
Slack thread evidenceKim checks details, screenshots, approvals, and follow-up replies.
Manual Launch27 editKim applies or holds changes directly in Launch27.
Toby workbookToby runs his Google Sheet/script process using the existing sheet shape.
Launch27 travel updatesTravel changes from Toby's workbook are applied in Launch27 before Kim marks the handoff complete.
Payroll follow-upLate changes are manually flagged to payroll.
Future state
FSH request formRequest starts in Field Staff Hub from a top action button.
Timesheet queueRequest routes to Kim's exception queue with linked booking/staff context.
Slack postbackSlack receives a visible notification and later status updates, but not as the source of truth.
Controlled write batchApproved changes are applied in small Launch27 batches with before/after snapshots.
Audit and payroll lanePost-cutoff items stay in Kim's lane with include/defer and payroll-notified status.
Post-cutoff lane
Late or missing logDoes not silently flow into payroll.
Kim-owned reviewKim tracks missing logs until confirmed and owns the payroll flag.
Decision requiredInclude this payroll, defer, or hold for more evidence.
Slack updateRequest submitter sees the status if the item came through FSH/Slack.
Audit eventPayroll impact, owner, and final outcome are stored.

Field Staff Hub request intake

Future time-log requests should be submitted from Field Staff Hub, then routed into Timesheet Management for review and automation. Slack remains the notification and follow-up layer, as mapped in Current vs Future Surfaces.

Field spec

Recommended form fields

FieldRequiredHow it should work
Request typeYesDropdown: Time Extension Request or Time Logs Adjustment. This is one of the wording items to freeze.
Submitted byAutoUse the signed-in Field Staff Hub user and store their Supabase user ID and Slack user ID where available.
Field staffYesSearch staff record; link to staff card and use role/employment metadata for rules.
Team leaderAuto/editAuto-fill from staff/team data, with manual correction when the source data is incomplete.
Date of serviceYesDrives booking lookup, cutoff status, and the Timesheet Management queue date.
Affected serviceYes if knownSearch by date, staff, customer, or booking. Allow "not sure" so a user is not blocked.
Requested changeYesStructured choice plus details: add minutes, change checkout, missing log, check-in/out correction, travel, or other.
Evidence/approvalConditionalRequired for extensions/overrides: customer approved, TL approved, support note, SMS, app issue, or other.
Details and attachmentsYes/optionalFree-text explanation is required; screenshot/SMS upload is optional but encouraged.
Placement and access

Where this should live

The best placement is the existing Field Staff Hub header action cluster beside Submit Leave and Submit New FS Exit. That matches the current pattern and makes this a simple operational form, not a payroll dashboard.

Access - active Field Staff Hub / dashboard users who currently use the Slack request workflow. Exclude trainer-only and field-staff-only contexts unless deliberately added.
Identity - fs_hub_users already includes slack_user_id, so Slack postbacks can attribute the submitter when the ID is present.
Routing - submission creates a Timesheet Management request item and posts a Slack notification with a link back to the item.
Fallback - if a booking cannot be matched, Kim gets a queue item with enough staff/date/customer data to resolve it manually.

Timesheet Management mockups

The standalone page should borrow Field Staff Hub's practical dashboard language: left navigation, dense rows, clear status, audit-first actions, and links back to staff cards.

TM
Timesheet Management Daily approvals, Toby handoff, write-back, audit
Mon Tue Thu 7 May Week
Overview
Rule Book
Pending Exceptions
Daily Runs
Toby Handoff
Apply Adjustments
Verification
Audit Log
Settings
Snapshot stored 255 logs pulled 12 need review
Refresh date Review proposed batch

Exception queue

Kim review
Missing checkout - Renee Gibbs FS: Stephanie / Evidence: SMS screenshot in Slack
Hold
Under schedule - Team Lily Reported 22% below expected duration
Confirm
Time extension - Linda Byrne FSH request linked to Slack thread, customer approved
Apply
Manual duration - Booking 357934 Selected duration 155 min; not 10%+ over enriched duration, write-back still required
Resolved

Selected row

Booking detail
Booking ID357934
Team ID105671
Field staffLily Grieve
Estimated135 min recommended
Selected155 min manual
Rule resultAdjust and approve
RollbackBefore values captured

Show why, not just what

Every row should explain the source data and rule outcome so Kim can trust the automation before applying a batch.

Toby Handoff

Ready to send Monday 6:30 AM. Toby tells Kim when done; Kim records it in the dashboard.

Pending Toby

Apply Adjustments

Proposed changes are grouped into small batches for testing.

Review first

Verification

After writes, re-read Launch27 and compare actual values to intended values.

Required

Toby handoff gate

The recommended Phase 1 approach is deliberately simple: Toby continues telling Kim he is done, and Kim records that state in Timesheet Management. That avoids extra Slack automation while keeping the gate auditable.

Primary

Kim clicks Mark Toby Done

Toby tells Kim through the normal workflow after his workbook step is finished and the workbook travel changes have been applied in Launch27. Kim opens Toby Handoff, clicks Mark Toby Done, and optionally pastes the Slack link or note.

  • One less automation dependency.
  • Clear human accountability.
  • Unlocks Apply Adjustments only after Kim records the gate.
Possible later

Slack phrase or reaction

The system could later monitor a fixed phrase/reaction on the handoff thread, but it is not needed for the first build.

  • Useful if volume increases.
  • Needs channel monitoring and edge-case handling.
  • Can still link back to the exact handoff batch.
Possible later

Google Sheets Apps Script button

A custom menu/button in Toby's sheet could call back to the app or post to Slack when his script is done.

  • Useful if Toby wants to stay inside Sheets.
  • Needs script permissions and maintenance.
  • Not required while Kim owns the gate.

Persisting booking and team IDs

Toby has confirmed his current Google Apps Script only uses column H. The safe contract is still to keep every existing column in place and append internal IDs at the far right.

Recommended sheet contract

Keep Toby's visible/exported columns exactly as they are. Add system-owned ID columns at the far right, ideally hidden or protected: booking_id, team_id, timesheet_batch_id, and row_fingerprint. Customer + team + date matching should only be a fallback reconciliation aid.

Service Date
Service Time
Services
Customer
Team
Distance
Travel Time
Adj Amt
Est Dur
Reported
Difference
booking_id
team_id
batch_id
7 May
10:45
Flat Rate
Karen Brady
Lily Grieve
0 km
00:20
00:00
02:35
02:35
00:00
357934
105671
TA-2026-05-07
Far right hidden column: booking_id
Far right hidden column: team_id
Far right hidden column: timesheet_batch_id

Confirmed with Toby: his script only uses column H. Far-right appended ID columns are acceptable as long as the existing sheet order is not changed.

Safety, audit, and rollback

Automated writes should be treated like controlled payroll operations. Before the system changes Launch27, it should know exactly how to prove, verify, and reverse what it did.

1

Snapshot before touch

Read and store the original Launch27 time-log values for each affected booking/team.

2

Build change set

Show proposed field changes, rule reasons, source evidence, and affected payroll impact.

3

Apply date-specific batch

During first rollout, apply only rows for one selected service date so any issue is contained and easy to inspect.

4

Verify after write

Re-read Launch27 and compare actual post-write values against intended values.

5

Rollback package

Keep the previous values ready to send back through the proxy if the batch is wrong.

6

Audit trail

Record batch ID, actor, timestamp, before, after, rule, evidence, proxy response, and rollback status.

Safe proxy write test

This should become a small front-end guided test, not a hidden developer script. The point is to prove the exact workflow Kim will later trust: snapshot first, preview the change, apply one controlled date-specific write, re-read Launch27, then roll back and prove the original value is restored.

Recommendation

Test one old, low-risk row through the UI

Use a completed service date from a closed payroll week. Jason suggested Sunday 10 May to Saturday 16 May 2026 as the candidate week because payroll has already been paid. The final test row still needs to be explicitly nominated before touching it.

Precondition - Jason/Kim nominate exact booking/team/date and confirm it is safe to temporarily change.
Step 1 - Capture before - Kim/Jason opens a test batch and sees the current Launch27 values before any write is enabled.
Step 2 - Preview test write - the screen names the exact field, old value, temporary test value, and why the test is reversible.
Step 3 - Apply one-row test - the button says Apply 1 Test Write, not Apply Batch, so it is obvious this is not payroll processing.
Step 4 - Verify after write - the app re-reads Launch27 and shows matched or mismatched beside the intended value.
Step 5 - Roll back test write - the app previews the original value and asks for confirmation before restoring it.
Step 6 - Verify restored - the app re-reads Launch27 again and shows Restored before the test can be closed.
Safety gate

What success looks like

A no-op write is not enough to prove rollback. A successful test is one where the UI can show an operator the full chain without asking them to trust a background script.

Before is visible: Kim/Jason can see the original values captured before the write.
Apply is contained: only one nominated row and one nominated field are touched in the first test.
Verification is visible: the UI shows the post-write Launch27 value, not just "success".
Rollback is visible: the UI shows the original value being restored and then verified.
Audit is complete: the test produces a record with before, temporary after, restored final value, actor, timestamp, and proxy responses.
Close condition: the test is only complete when Launch27 is back to its original value.

Recommended first front-end version

Add a restricted Safe Write Test panel inside the future Apply Adjustments or Audit area. It should have three operator-facing buttons: Capture Before Snapshot, Apply 1 Test Write, and Roll Back Test Write. Each button should be disabled until the previous proof step is complete.

Batch and rollback model

The build should store rollback data as first-class records, not as a spreadsheet afterthought. The system must always know what it saw before, what it intended to write, what Launch27 returned, and what it verified afterward.

1

Kim reviews a proposed batch

The screen shows plain-English rows: current value, proposed value, rule reason, evidence, and payroll impact.

2

System stores the before state

Before Launch27 is touched, the original values are saved as the rollback source of truth.

3

Kim applies a small batch

A confirmation explains exactly how many rows and fields will change, then the proxy write runs.

4

Verification finds a mismatch

If Launch27 shows a different value than intended, the batch cannot be quietly closed.

5

Kim chooses Roll back batch

The rollback action previews the exact previous values and asks for confirmation before reversing the write.

6

System re-verifies and audits

Launch27 is re-read again. The audit log records who applied, who rolled back, and what changed.

Why this matters to Kim

Rollback is not a mysterious technical table. It is the safety net behind the Apply Adjustments page: if a batch writes the wrong value, Kim can see the mistake, preview the reversal, click Roll back batch, and prove the row returned to its original Launch27 value.

RecordPurposeMinimum fields
timesheet_runOne service-day or service-week processing run.date range, status, pulled_at, locked_at, created_by, source snapshot reference.
timesheet_log_snapshotImmutable before-touch source data.run_id, booking_id, team_id, raw_before_json, enriched_json, captured_at, fingerprint.
timesheet_decisionWhy the row is approved, held, routed to Kim, excluded, or post-cutoff.rule_code, rule_label, decision, owner, evidence references, notes.
timesheet_write_batchKim-approved group of Launch27 writes.status, applied_by, applied_at, proxy request/response, verification summary, rollback status.
timesheet_write_itemBefore/after/verify/rollback for one booking/team row.before_values, after_values, verify_values, rollback_payload, verification_status, rollback_status.
timesheet_requestField Staff Hub intake submission.submitter user/slack IDs, request type, staff, booking, date, requested change, evidence, Slack thread, status.
audit_eventHuman-readable and machine-searchable history.actor, action, target type/id, before/after references, timestamp, notes.

Settings page

Settings should be the small set of operational choices Kim/Jason may reasonably need to tune without a code change. Each setting needs context, audit history, and "applies to future unlocked runs" behavior.

Under-schedule threshold Default: flag when actual duration is at or below 15% of expected/manual duration.
Choose: percentage of expected time that counts as extremely short.
Why: controls how sensitive the exception queue is to genuinely tiny actual-duration logs.
Over-schedule threshold Default: 10%+ over enriched expected duration routes to Kim review.
Choose: percentage over selected/manual duration.
Why: keeps low-volume overages in Kim's queue instead of auto-approving them.
Clean auto-approval window Defines when a row is clean enough to skip Kim review.
Within thresholds + required evidence
Choose: which rules count as clean.
Why: prevents accidental silent approval of edge cases.
Payroll cutoffs Soft and hard cutoff times for late entry handling.
Mon 1:30 PM / Tue 3:00 PM
Choose: soft cutoff, hard cutoff, and post-cutoff behavior.
Why: decides when items move into Kim's late lane instead of payroll flow.
Toby handoff gate Monday 6:30 AM handoff, 11:30 AM done target, Kim marks done.
06:30 / 11:30 / Kim gate
Choose: handoff time, target done time, and whether Kim gate is required.
Why: controls when Apply Adjustments can unlock.
Write batch size Maximum Launch27 rows allowed in one Apply action.
1 row / 3 rows / 10 rows / all approved
Choose: how many rows can be written at once.
Why: small batches contain mistakes during testing; larger batches may be safe after shadow mode.
Approver and evidence rules Who can support extensions, overrides, and exception closure.
Customer / TL / support / payroll-admin
Choose: accepted approver roles and evidence types.
Why: tells Kim when a request is supported enough to apply.
Request intake access Which Field Staff Hub users can submit time-log requests.
Active dashboard users, not trainer-only views
Choose: eligible FSH roles or teams.
Why: keeps payroll screens private while letting operational users submit forms.
Slack notification channel Where request notifications and status postbacks go.
C040B46JRM2
Choose: channel, postback template, and whether to mention submitter/Kim.
Why: keeps Slack visible without making Slack the workflow source of truth.
Manual duration source Booking duration/blocked_duration enrichment before variance rules.
Booking endpoint required
Choose: source priority and fallback if booking lookup fails.
Why: prevents false exceptions like booking 357934.
Staff source of truth Field Staff Hub role, employment type, and staff-card context.
FSH staff cards
Choose: which staff metadata drives contractors, TLs, and staff links.
Why: stops Launch27 team naming from being the only source of truth.
Rollback retention How long before-values and rollback actions remain available.
Keep through payroll reconciliation
Choose: retention period and who can trigger rollback.
Why: makes recovery possible after a write mistake without guessing old values.

Next steps after live prototype

Kim has now confirmed the main rule-book items and the first prototype is live. The next review should focus on whether the live screens are understandable enough for Kim/Kiara to trust the flow before real Launch27 writes are connected.

Kim/Kiara prototype review

  • Review Exceptions: does each item show enough evidence and the right actions?
  • Review Rulebook: confirm travel, missing logs, over-schedule, manual duration, first-job travel, and post-cutoff wording.
  • Review Toby Handoff: confirm workbook export, Toby script, Launch27 travel updates from Toby's workbook, Mark Toby Complete, returned-sheet import, and non-blocking pending logic.
  • Review Toby Import Review: confirm this is the right top-level place to check Toby's returned sheet and carried-forward rows.
  • Review Apply Adjustments: confirm date-specific batches, preview payload, apply, verify, and rollback language.
  • Review Settings: confirm what should be adjustable later.
  • Review Field Staff Hub Time Log Request intake and confirm form wording, required fields, and who should see the button.

Technical and safety checks

  • Sheet contract is now confirmed: Toby's script uses column H, so append IDs at the far right without changing existing columns.
  • Use Sunday 17 May to Saturday 23 May 2026 as the safe historical week candidate; keep production write batches date-specific for first rollout safety.
  • Build the front-end Safe Write Test panel with Capture Before Snapshot, Apply 1 Test Write, Re-read Launch27, Roll Back Test Write, and Verify Restored states.
  • Accept the batch/rollback model: snapshots, decisions, write batches, write items, requests, audit events, and rollback retention.
  • Use Kim's manual Mark Toby Done gate for Phase 1 instead of automating Toby's Slack signal.
  • Have Sam review the frozen live-prototype briefing against the Field Staff Hub and dashboard codebase before deeper build work starts.

What remains for the overall project

Stepping back, the project is past discovery and live prototype validation has started. Real historical data and rule results are now visible; the remaining work is decision persistence, manual verification, write batches, rollback, and supervised payroll operation.

1

Prototype feedback

Kim and Kiara review the live screens and briefing, then confirm wording, missing actions, confusing labels, and access expectations.

Now
2

Real read-only data

Historical Launch27 pull is live for the 17-23 May 2026 week. Manual duration enrichment remains the next data layer.

Started
3

Rules against real weeks

Current generator has produced real rule results. Next is persisting Kim decisions and turning eligible rows into controlled write batches.

Started
4

Safe write test

Use the front-end Safe Write Test panel to prove one row can be written, verified, rolled back, and verified restored.

Safety gate
5

Controlled batch apply

Enable small approved batches only after snapshots, decisions, verification, rollback, and audit are working end to end.

Later
6

Shadow payroll cycle

Run at least one payroll cycle where Kim compares the system output with the current process before relying on automation.

Later
7

Operator documentation

Document Kim's review flow, Toby handoff, Field Staff Hub request intake, settings, rollback, and escalation rules.

Later
8

Go-live

Move from supervised use to normal operation only once the team trusts review, write, verification, rollback, and audit behavior.

Final