CMI Production Schedule β€” Standard Operating Procedure
Lamination, Launch & Contract scheduling Β· for all roles
Internal reference
v1.0 Β· Sept 2026

Everything below reflects what's live in the app today. Sections are grouped by topic rather than numbered β€” jump to whichever one you need from the list on the left.

Planner β€” full control except Users/Import
Admin β€” Planner + Users, Import Excel
Viewer β€” read-only, latest saved snapshot
BOD_CS β€” live data, contract/payment fields only
Production β€” read-only, no financials
LAM β€” read-only on main Gantt, live editor on its own tab
Dealer β€” separate simplified page

Start here

Getting started

Sign in, then use the left sidebar for everything β€” it's the only navigation surface in the app.

Signing in

Use the Sign in with Google button on the login screen. If Google Sign-In isn't available to you, click Đăng nhαΊ­p bαΊ±ng mαΊ­t khαΊ©u (Planner/Viewer) to reveal a password field instead β€” this fallback only covers the Planner/Viewer roles (fixed passwords); every other role, including Admin, signs in with Google.

The sidebar

Click the ☰ icon (top-left) to expand or collapse the sidebar. It starts collapsed by default. All four working tabs β€” Gantt Schedule, Dashboard, Launch Schedule, LAM Schedule β€” live here, along with a Dealer View link and, for Planners and Admins, a Setting section β€” Holidays for both, but Users and both Import Excel buttons are Admin-only (2026-09-19: moved off Planner).

Open in new Tab

A toggle at the bottom of the sidebar. Turn it on and clicking any sidebar item opens that tab in a fresh browser tab instead of switching in place β€” handy for keeping the Gantt open in one tab while checking the Dashboard in another. It's a personal preference remembered on your device only.

Brand / Factory toggles

Top of the screen β€” filter everything to Seawind or Corsair, and to the VN or Turkey factory, or show All of either.

Help

The ❓ Help button (top-right, next to your account chip) opens this page in a new tab, any time.

Reference

Roles & permissions

One account, one role β€” set by an Admin under Users (sidebar β†’ Setting). This is a summary; the full field-by-field breakdown is in the Reference section further down.

RoleMain Gantt dataEdit boatsContract/payment fieldsSnapshotsHolidaysUsers / Import ExcelLAM Schedule tab
AdminLiveβœ“ Fullβ€”*Save + browseβœ“βœ“βœ“ Edit
PlannerLiveβœ“ Fullβ€”*Save + browseβœ“β€”βœ“ Edit
ViewerLatest snapshotβ€”β€”Browse onlyβ€”β€”Latest snapshot
BOD_CSLivePartial*βœ“β€”β€”β€”β€”
ProductionLatest snapshotβ€”HiddenBrowse onlyβ€”β€”Latest snapshot
LAMLatest snapshotHidden fin. colsHiddenBrowse onlyβ€”β€”βœ“ Live edit

* Contract Date and the Contract/Deposit Received checkboxes (Edit Settings modal) are edited by BOD_CS only β€” not even Planner/Admin can touch those particular fields. Everything else in that modal, Planner/Admin can edit and BOD_CS cannot. The WO Status column on the Gantt (STD OPT / CFRM OPT) is also BOD_CS-only (2026-09-19 β€” was Planner-only before). Separately, the whole πŸ’° Sale Info cluster on the Dashboard (Ctr SOC/Ctr Compl, Paid/Owing/Next Pmt, Retail/Commission/W-S Value, Sale Notes) is also BOD_CS-only. See Edit Settings modal fields.

Admin (2026-09-19) is Planner plus two extra powers: πŸ‘₯ Users and both ⬆ Import Excel buttons (main Boats import + Launch Schedule import) β€” Planner lost those, everything else Planner can do, Admin can do too.

i

"Live" vs "Latest Saved" is the single biggest thing to understand. Planner and BOD_CS always see the current, real-time schedule. Viewer, Production and LAM instead default to whatever a Planner most recently saved as a named Snapshot β€” never the live data β€” and can browse older snapshots from there. This is independent of which columns/fields a role can edit: even where a control looks clickable, these three roles can never submit a change on the main Gantt.

i

Dealer accounts (Dealer SW / Dealer CO) never see this screen at all β€” signing in takes them straight to a separate, much simpler Dealer View page.

Production Schedule

Editing a boatPlannerBOD_CS (partial)

Most editing is Planner-only; BOD_CS has a narrow, specific slice.

Rescheduling a stage (Planner)

  1. Drag the right edge of a colored stage bar (LAM, A1–A4, FO1–FO4, Final) to resize it β€” later stages on that boat shift to match automatically.
  2. Drag the bar itself, or the left-edge handle, to shift the boat's entire remaining schedule at once.
  3. Click a bar to open a small popup and type an exact new length in weeks instead of dragging.

Inline dropdowns

  • WO Status β€” STD OPT / CFRM OPT. BOD_CS only (2026-09-19 β€” was Planner-only before; Planner now sees it read-only, like everyone else).
  • Signed Ctr β€” a simple βœ… checkmark once the contract is signed. Planner/Admin and BOD_CS.
  • Latest Var β€” the current revision, V1 through V20. Planner/Admin and BOD_CS.

The Edit Settings modal

Double-click a boat row on one of the SC# … Volt columns (or right-click anywhere on the row) to open its full detail editor. What you can actually change inside depends on your role β€” see Edit Settings modal fields for the exact list. In short: BOD_CS can only touch Contract Date and the Contract/Deposit Received checkboxes here (Paid to Date/Amount Owing/Next Payment/Ctr SOC/Ctr Compl moved to πŸ’° Sale Info on the Dashboard, 2026-09-15). Planner can edit everything else in the modal (customer, engine, voltage, dealer, all WC stage dates, etc.) but β€” deliberately β€” not Contract Date or the two checkboxes.

i

Right-clicking a row also opens a context menu (Copy, Notes, Progress, Done, Delete) β€” Planner only. BOD_CS's right-click only ever opens the Edit Settings modal itself; the other menu items are hidden since they wouldn't do anything for that role.

Notes, progress & DONE

The πŸ“ note-count badge, the % progress badge, and the DONE? button are all visible to everyone, but only a Planner can click into them to add a note, update progress, or mark a boat complete.

Production Schedule

The "Unsold" indicator

Flags boats already in production with no buyer lined up yet.

A boat counts as Unsold once its LAM stage date has already passed (production has started) while both Dealer and Customer are still blank. Such boats show a red Unsold badge in place of the Dealer name, on both the Gantt and the Dashboard. Click the 🚩 Unsold toolbar button to filter either screen down to just these boats β€” the Dashboard also has a dedicated Unsold Value KPI card showing the total contract value tied up in unsold boats, always visible regardless of the filter.

Production Schedule

πŸ’° Sale InfoBOD_CS edits

A dedicated cluster of sale/commission fields on the Dashboard β€” added 2026-09-15.

Every row on the Dashboard (except for Production/LAM, who don't see financials at all) has a πŸ’° icon on the right β€” faint/grey when a boat has no Sale Info yet, bold/highlighted once anything is filled in. Click it to open the Sale Info modal, a blue-bordered box holding:

  • Ctr SOC and Ctr Compl β€” the same baseline dates used by the Contract Baseline overlay on the main Gantt. These used to be set once on import and never touched again; now BOD_CS can edit them here, and the overlay reflects the new value immediately.
  • Retail Value, W/S Value β€” sale-tracking dollar figures, not sourced from anywhere else in the app. Commission is calculated automatically = Retail βˆ’ W/S (since 2026-09-25) β€” not typed; it stays blank (β€”) until both Retail and W/S are entered.
  • Paid To Date, Owing Bal, Next Pmt Date, Next Pmt Amt β€” moved here from the Edit Settings modal (still BOD_CS-only, same underlying data).
  • Sale Notes β€” a small πŸ“-style icon + count, click to open a nested notes list scoped just to this boat's sale info (separate from the general πŸ“ Notes feature on the Gantt).

All dollar fields show a thousand-separator and 2 decimal places (e.g. $250,000.50). Date fields are picked from a calendar β€” unlike the WC stage dates elsewhere in the app, these accept any day, not just Saturdays β€” and display as DD/MM/YYYY.

Planner and Viewer can open the same modal to view it, fully read-only; Production/LAM never see the πŸ’° icon at all.

i

The same value fields (except the auto Commission) are also editable directly on the main Gantt, grouped together right after Ctr Compl in this order: Ctr SOC β†’ Ctr Compl β†’ Retail $ β†’ W/S $ β†’ Commission (auto) β†’ Paid β†’ Owing β†’ Next Pmt (due date) β†’ Amt Next (payment). Next Pmt's date and amount are two separate columns here (one combined cell in the modal). A πŸ“ Sale Notes icon sits right after, opening the same nested notes panel as inside this modal. BOD_CS sees small inline inputs/date-pickers on the Gantt instead of plain text β€” it's the exact same underlying data either way, so editing on the Gantt or through this modal always stays in sync; use whichever is more convenient in the moment.

FieldSourceEdit
Ctr SOC / Ctr ComplReused β€” same data as the Gantt's baseline columnsBOD_CS
Paid To Date / Owing Bal / Next Pmt Date / Next Pmt AmtReused β€” moved here from the Edit Settings modalBOD_CS
Retail Value / W/S Value (Commission = Retail βˆ’ W/S, auto)New β€” not stored anywhere else in the appBOD_CS
Sale NotesNew β€” separate sheet/thread, styled like but independent of the general Notes featureBOD_CS

Upload Sale Info (bulk, by SC#)

Sidebar β†’ Dashboard toolbar β†’ ⬆ Upload Sale Info (BOD_CS only). Upload an Excel file with a SC# column plus the 8 Sale Info value columns (Sale Notes isn't uploadable in bulk β€” add those individually per boat). This is a full replace, not a merge: every matched SC# gets all 8 fields overwritten exactly as given, including blanking a field the file leaves empty. A summary after upload shows how many SC#s were updated and lists any that didn't match a boat.

Production Schedule

SnapshotsPlanner saves

A snapshot is a named, permanent, point-in-time copy of the schedule. It's how Viewer/Production/LAM see a stable version instead of a constantly-changing live view.

Saving a new version (Planner)

  1. Click πŸ“Έ Snapshot in the toolbar.
  2. Type a Name (required) and an optional Description.
  3. Click Save. This becomes the new "Latest Saved" version everyone else sees.

From the same modal, a Planner can also View any older snapshot read-only, or delete one with the βœ• button.

Browsing versions (Viewer / Production / LAM)

You always land on the most recent snapshot, labeled Latest Saved (πŸ“Œ) in a banner at the top. Click πŸ•˜ Versions in that banner to pick an older, explicitly-named snapshot β€” while viewing one, a πŸ“Œ Back to Latest Saved button appears to return. Filtering, sorting, column visibility, Week/Day view and exports all still work normally inside a snapshot β€” only editing is blocked.

i

Launch Schedule and LAM Schedule each keep their own, completely independent snapshot history β€” saving one doesn't affect the others.

Production Schedule

HolidaysPlannerAdmin

Click πŸ—“ Holidays to add a shutdown period: pick a Start (Sunday) and End (Saturday) date and a label, or edit/delete an existing entry. Marked weeks render as a green-striped "Holiday" band across every boat's timeline β€” this is a visual/scheduling reference only, it does not block dragging a stage onto those dates if overtime work happens anyway.

Production Schedule

Import ExcelAdmin

Admin-only (2026-09-19 β€” moved off Planner, along with Users below). Sidebar β†’ Setting β†’ ⬆ Import Excel. Upload the Production Plan Excel file (any sheet containing "WC LAM" and "CUSTOMER PO" columns is auto-detected) β€” expected columns include SO Number, Customer PO, Model, Engine/Voltage, Dealer, Buyer, Date Due, Contract SOC/Completion, Launch Date, and the ten WC stage dates. The app shows a preview of the parsed rows before you confirm. The separate ⬆ Import Excel button inside the Launch Schedule tab is Admin-only too.

i

Import is an upsert, matched by Customer PO: existing boats get updated, new ones get created β€” nothing is ever deleted by an import.

Production Schedule

Add BoatPlannerAdmin

Click + Add Boat for boats not sourced from ERP. Fill in SC# and Model (required), plus SO#, Brand, Factory, Prod Line, Workers, Contract Date, Done Date, Date Due, Dealer, Buyer, and a Start LAM date (auto-aligned to the app's Saturday-anchored week). Right-click any existing boat β†’ Copy pre-fills this same form from it (minus SC#/SO#) as a shortcut for near-duplicate entries.

Done Date β‰  Date Due β€” easy to mix up since they sit right next to each other in this form. Done Date (the field renamed from "Approved Completion" on 2026-09-22, same data as the Gantt's DONE? column) means the boat is ALREADY finished and approved β€” set it only via βœ“ Mark Done, never here, unless you're certain. A boat with Done Date set disappears from the live Gantt (hidden by default, same as any other completed boat β€” the DONE BOATS toggle reveals it again). Date Due is just the currently-planned finish date for a boat still in progress β€” that's almost always the one you want.

Production Schedule

UsersAdmin

Admin-only (2026-09-19 β€” moved off Planner). Sidebar β†’ Setting β†’ πŸ‘₯ Users. Add someone by email and role (Planner, Admin, Viewer, BOD/CS, Production, LAM, Dealer SW, Dealer CO); role and the Active toggle are editable inline any time, and a πŸ—‘ button removes an account entirely. Dealer roles additionally need a Dealer Name that exactly matches the DEALER value used on boats β€” that's how a dealer login gets scoped to only their own boats. Admin itself signs in with Google only (no fixed password, unlike Planner/Viewer) β€” the very first Admin has to be set by editing the USERS sheet directly in Google Sheets, since an empty Users list means nobody can open this page yet to add one.

Production Schedule

Exporting

⬇ Excel produces a plain flat data spreadsheet β€” one row per currently-filtered boat, every field as a column. ⬇ Gantt XLS instead reproduces the visual chart exactly as displayed β€” frozen columns plus the colored week/day timeline. Both are available to every role, and both automatically omit Paid/Owing/Contract Date/Next Pmt for Production/LAM, matching what those roles see on screen.

Other tabs

Dashboard

KPI cards across the top (Total Boats, On Track, At Risk, Not Started, Contract Value, Hours Efficiency, and β€” when applicable β€” Unsold Value), followed by a sortable table: one row per boat with Status, Forecast Finish, "vs Contract"/"vs Approved" delta badges, and the same financial columns as the main Gantt. Use the free-text filter box or the shared Brand/Factory toggles to narrow it down; click 🚩 Unsold to see only unsold boats. The last column, πŸ’°, opens each boat's Sale Info β€” hidden for Production/LAM.

Other tabs

Launch SchedulePlanner edits

A day-by-day grid for planning what happens around each boat's launch, independent of the main production timeline.

Rows are boats with a Launch Date set; columns are individual days. A Planner clicks a day to type a short activity (e.g. "Sea Trial") β€” the app auto-colors each distinct activity consistently. Multi-day tasks appear as one bar: drag its body to move it, its right edge to resize (pushing later tasks on that row), or a left-edge handle on the first block to shift the whole boat's schedule at once. A per-boat Copy tool duplicates one boat's whole schedule onto another; a per-boat Completed date plus a "Hide Completed" toggle round it out.

Import Excel here expects a differently-shaped file (a calendar sheet named "Launch schedule…", one column per boat) and is a full overwrite per boat/date, unlike the upsert behavior on the main Gantt import. Snapshots work the same way as the main Gantt, with their own independent history.

Other tabs

LAM ScheduleLAM + Planner edit

Day-by-day scheduling for the Lamination department, tracked independently of the main production timeline.

Boats are grouped by Model; each boat gets one row per configured Part (a lamination component, e.g. Hull, Deck). Click a day on a Part's row to open a task and pick an Operation from a shared dropdown (or add a one-off custom entry for just that boat) β€” a Days field lets you create a multi-day block in one step. Blocks drag/resize/shift the same way as Launch Schedule.

Above each model group, a thin Handover lane holds a small draggable tag per boat β€” drop it on the day LAM work was handed off to the next department. It's purely informational and doesn't affect any other tab.

The βš™ LAM Master button (Planner + LAM) configures two things per model: the ordered Part list, and the shared Operations vocabulary used in every dropdown. A boat's model needs at least one configured Part before any rows appear for it. Snapshots here follow the same "Latest Saved" pattern as the other tabs, with their own independent history β€” Viewer/Production/LAM default into it read-only.

Other tabs

Dealer View

A completely separate, simplified page for Dealer SW / Dealer CO accounts.

After signing in, a dealer sees only their brand's in-stock boats, grouped by Model: row number, Model, SC#, Start LAM, and Completion β€” fully read-only, no edit controls of any kind. Filters: a Model dropdown, a free-text SC# search, and an Availability dropdown (within 3 / 6 / 12 months, based on Date Due). Any boat a Planner has marked "Hide from Dealer View" in the Edit Settings modal is excluded automatically.


Reference

Gantt column permissions

Every column on the main Production Schedule Gantt table. View = the column appears at all (independent of your personal Hide/Show Cols choice). Edit = you can actually change the value β€” remember that Viewer, Production and LAM can never submit any change regardless of what's marked here, since they're always on a read-only snapshot (see Roles & permissions).

PL=Planner   AD=Admin   VW=Viewer   BC=BOD_CS   PR=Production   LM=LAM  Β·  Yes / No / Hidden (not just disabled β€” the column doesn't appear at all, and isn't recoverable via the column picker)

Column View PLView ADView VWView BCView PRView LM Edit PLEdit ADEdit VWEdit BCEdit PREdit LM Notes

Reference

Toolbar & feature permissions

Buttons, toggles and other actions outside the column grid itself. AD=Admin β€” mirrors Planner (PL) on every row except πŸ‘₯ Users and the two ⬆ Import Excel rows below, which are Admin-only (2026-09-19).

Feature / buttonWherePLADVWBCPRLMNotes

Reference

Edit Settings modal fields

Opened by double-clicking a boat row on the SC# … Volt columns, or right-clicking anywhere on the row. Only Planner/Admin and BOD_CS can open it at all β€” every other role never sees this dialog. Admin has exactly the same fields as Planner here β€” the "Planner" column below covers both. (Paid to Date, Amount Owing, Next Payment Date/Amount, Ctr SOC and Ctr Compl moved out of this modal on 2026-09-15 β€” they now live in πŸ’° Sale Info on the Dashboard.)

FieldBOD_CSPlannerNotes
i

The split is deliberate and total: BOD_CS's seven fields (Contract Date, Paid, Owing, Next Payment Date/Amount, Contract Received, Deposit Received) are locked for Planner in this modal β€” even Planner can't edit those specific fields here. Every other field in the modal is the reverse: Planner-only, locked for BOD_CS.