Corsair Marine International
HR Function — Standard Operating Procedure
Org & Workforce Planner · for Editor & HR users
Internal reference
v1.13 · Oct 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.

Viewer — view only, no pay data
Production — view only, no Directory, export by dept
HR — add/edit/offboard staff, monthly staff upload, skills, JDs, leave
Editor — full chart editing
Admin & BOD — everything, incl. user management

Admin and BOD have identical access in this app — BOD is simply the title, not a separate permission level. Full breakdown in Roles & permissions →.

Onboarding

Getting started

There's no separate username or password to remember — access is tied to your work Google account.

  1. Open hr-function.pages.dev and click Sign in with Google.
  2. Choose your Google account. There's nothing to type — no password screen.
  3. The org chart loads and automatically zooms to fit your screen. If you were added recently and see "Account not authorized," ask an Admin to add your email under Admin → Users.
i

What you see depends on your site. If your account is tied to Izmir or Ho Chi Minh, the chart opens straight into that site's own view — not the whole company. See Site-specific layouts.

Reference

Roles & permissions

One account, one role — set by an Admin under Admin → Users. This table is the full breakdown behind the summary chips above.

RoleView chartAdd/edit/offboard staffRearrange & layoutSee salary*DirectoryLeaveManage users
Viewer✓———✓——
Production✓———hidden——
HR✓✓——✓✓—
Editor✓✓✓✓✓✓—
Admin & BOD✓✓✓✓✓✓✓

* Even where a role can see salary, bonus and performance data, it stays hidden by default everywhere it appears — Directory, a person's profile — behind a Show salary & performance checkbox you tick each time.

i

Site scope is separate from role — and it's about direct vs. indirect staff, not an all-or-nothing wall. Every account (Viewer, Production, HR, Editor included) sees its own site's people fully — office and production/shop-floor alike. For the other site, every account — Executive or not — sees "indirect staff" (company email on @corsairmarine.com or @seawindcats.com) by name as normal cards. What differs by account is direct/production workers on the other site: a regular account never sees them (no cards, no headcount, no Leave data for that site) — only Admin, BOD, and Executive accounts do, and even then it depends on which site the Executive is on: see the next callout. This is enforced Worker-side, not just hidden in the UI. The Executive checkbox lives on a User account (Admin → Users → Add/update user) — not tied to any Employee/org-chart record, since login is by personal Gmail, a different address from the work email shown in the Directory.

i

Direct/production workers on the other site: hidden by default, visible to Admin/BOD/Executive. Indirect (office) staff always show as normal cards everywhere, including the other site — see the callout above. Direct workers are different: on your own site everyone sees them as normal cards; on the other site, a regular account (Viewer/Production/HR/Editor) sees nothing of them at all — Admin, BOD, and a Vietnam-based Executive see them fully, by name, same as their own site (Vietnam is HQ). A Turkey-based Executive sits in between: Vietnam's direct workers don't show as individual cards, but a live headcount card attached to their actual manager does (see Stat buckets) — real records, searchable and editable from the Directory, just not drawn individually for that one case. Vacant positions are never counted as direct workers and always stay visible everywhere. Admin/BOD/Executive have a 👁 Show all (incl. direct) button in the Actions panel to temporarily see everyone individually, foreign sites included. Update: whether a site's direct workers are drawn as cards at all is now a per-site setting — grouped into stat buckets by default for Ho Chi Minh and the other Vietnam sites, individual cards for Izmir (see Direct workers display); the rules above about who may see the other site's workers still apply on top.

i

HR is not the same as Editor. HR can add someone, edit their profile, reassign who they report to, offboard them, run the monthly staff upload and compare published layout versions — but has none of the layout tools in Rearranging the chart: no dragging cards, no vertical-list/auto-layout buttons, no restoring a snapshot, no hard delete. New hires and reassignments still land in a sensible spot automatically — see Editing people & reporting lines.

The org chart

Editing people & reporting linesEditor · HR

HR accounts can add, edit and offboard staff. Viewer and Production accounts can look but not touch. The layout-only tools further down (dragging, vertical lists, auto layout, hard delete) stay Editor, Admin or BOD — see the notes below.

Adding someone

  • + Add person in the sidebar creates a new top-level card.
  • ➕ Add direct report on a card's ⋯ menu creates one already wired up to that manager.
  • 🔗 Connect existing as direct report… starts a dashed line that follows your cursor — click the person who should report to them, or Esc to cancel.
i

New cards place themselves. Whoever adds the person — HR included — the app drops the new card at the end of that manager's row (or the next open slot down the spine, if the team is arranged as a vertical list) and connects the reporting line automatically. Nobody needs to drag it into place, which is what keeps every site's chart looking consistent even though only Editor and above can rearrange one by hand.

The Edit person drawer

Opening a card (or its ✏️ Edit person menu item) slides in the full profile: name, title, department, site, contact details, and the Reports to / Dotted-to fields — both type-to-filter comboboxes rather than a long dropdown. Compensation fields stay collapsed behind a Show salary & performance checkbox even for roles allowed to see them. A collapsible Move / change history section lower down logs every past change to manager, department, site or title. Changing Reports to here re-appends the card to the end of the new manager's team, same as adding someone new.

Collaborates with vs. Relies on

Both are optional extra lines on the chart, separate from who someone reports to:

  • Collaborates with — peers who work together day to day (neither is the other's manager). It is mutual, drawn as a grey dotted line between the two cards.
  • Relies on — one-way: this person needs the other person's input or output to do their job (for example a planner relying on purchasing). Drawn as an orange dotted arrow pointing at the person relied on.

In the drawer each is a checklist with its own search box — type part of a name or department to narrow the list; ticks you've already made are kept while you search, and the heading shows how many are selected. Show or hide these lines from the Relationship lines panel.

Promoting into a vacant roleEditor

Offboarding someone leaves their old position behind as a dashed vacant slot. Drag anyone onto that slot to promote them into it: they inherit its title, department and reporting line, their own personal connections move with them, and their old position becomes the new vacancy. A confirmation dialog spells out exactly what's about to happen before it does. This one needs Editor access or above — it works by dragging, which HR accounts don't have.

Moving people around the tree

  • 🙈 Mark inactive (keep record)… — hides the person from the chart, directory, leave lists and headcount but keeps their whole record, and re-points anyone reporting to them to their manager. Reverse it any time from 🙈 Inactive staff. HR and above. See Monthly staff upload.
  • 🗑 Offboard person… — records a last day and turns their card into a vacancy rather than deleting it outright. This clears their name, contact details, pay and photo — use Mark inactive instead if the record must be kept. HR and above.
  • ⬆️ Move up one level — reassigns them to their manager's manager. Editor and above.
  • ⏫ Make top-level (no manager) — removes their manager entirely. Editor and above.

Monthly routine

Monthly staff upload (sync)Editor · HR

Upload the full staff list once a month. New people are added, changes to existing people are applied, and anyone who is no longer in the list is hidden (marked Inactive) — their record is kept, nothing is deleted.

The file

Use staff_sync_template.csv ↓ as a starting point (CSV or Excel .xlsx both work). One row per person, and every row needs an Empl ID.

ColumnRequiredNotes
Empl IDYesThe employee's permanent ID — unique, never reused, never changed. This is how the app recognises someone from one month to the next. It is never matched by name.
NameYesFull name as it should appear on the chart.
Title, Department, SiteOptionalDepartment is matched by name; a department that doesn't exist yet is created. Site should be exactly Ho Chi Minh or Izmir (Pattaya/Sydney also work) so site visibility rules apply.
Manager Empl IDOptionalThe manager's Empl ID — the most reliable way to set who someone reports to. The manager can be in the same file.
Manager NameOptionalUsed only if there is no Manager Empl ID, and only when the name matches exactly one person. Otherwise the person's manager is left as it is.
Email, Phone, Start DateOptionalStart date as 2024-01-31. Leave Email blank for production/shop-floor workers — an @corsairmarine.com / @seawindcats.com address is what makes someone an individual card on the chart; everyone else is counted in their manager's headcount card. Format Phone as text in Excel so leading zeros survive.
Annual Leave Balance, TOIL BalanceOptionalAnnual leave remaining in days and TOIL remaining in hours (decimals such as 7.5 or 7,5 are fine). Blank = leave the recorded number as it is; a non-number rejects that row. See Leave management.

Blank cells never erase anything: a blank Title, Phone, Manager, etc. means "leave as it is". Salary, bonus and performance are never read from this file for existing people, and new people created by HR start with no pay data (an Editor can fill it in).

Steps

  1. Click 🔄 Monthly staff sync — in the Actions panel beside the chart, or at the top of the Directory.
  2. Choose the file. The app shows the columns it found; check each one is matched to the right field (they're matched automatically when the headers look like the template's). Empl ID and Name must be matched.
  3. Click Preview changes. Nothing is saved yet. You get a count of what will happen, and a list for each group — click a heading to open it.
  4. Read the preview — especially Will become Inactive and Rows skipped. Wrong file or wrong column? Click Back.
  5. Click Apply these changes. The chart and directory refresh straight away.

What happens to each person

In the file……and in the systemResult
YesNot thereAdded as a new person. New cards place themselves under their manager.
YesYes, activeUpdated if name, title, department, site, manager, email, phone or start date differ. Changes to manager, department, site and title appear in the person's Move / change history. Their position on the chart and pay data are untouched.
YesYes, but InactiveReactivated and updated — they reappear on the chart.
NoYes, activeBecomes Inactive (if Mark people missing from this file as Inactive is ticked, which it is by default). Hidden, record kept, anyone who reported to them is re-pointed to the next active manager up the line.

Common situations

  • Someone moved department — put their new department in the file. The old one is recorded in their change history.
  • Someone left — just leave them out of the file. Don't delete anything in the app. They are marked Inactive and disappear from the chart, directory, leave and headcount; the record stays.
  • Someone left in the middle of the month — ⋯ → 🙈 Mark inactive (keep record)… on their card. They'll simply be absent from next month's file anyway.
  • Someone came back — include them in the file (they're reactivated), or open 🙈 Inactive staff and click Reactivate.
  • Marked someone Inactive by mistake — 🙈 Inactive staff → Reactivate.

Inactive staff

Inactive people are removed from the chart, Directory, search, the leave request list, headcount and the stat buckets, and can't be chosen as someone taking leave or approving it. Their leave history and their change history are kept. Only HR, Editor, Admin and BOD can see the list: 🙈 Inactive staff (Actions panel, or 🙈 Inactive at the top of the Directory) shows who, since when, and a Reactivate button. Being Inactive here does not touch their sign-in — IT disabling the person's company email is what stops them logging in.

!

Safety checks built in. The "mark missing as Inactive" step is blocked if any row has no Empl ID (the app can't tell who that row is). Rows with a duplicated Empl ID are skipped and listed. If the upload would make more than a quarter of the staff Inactive — typically a file that only contains one department — the app stops and asks you to confirm the file is complete. Between Preview and Apply the app re-checks that nothing changed in the meantime; if it did you're asked to preview again. People who don't have an Empl ID in the system yet are never changed or made Inactive by a sync (the preview tells you how many there are) — add their Empl ID in the Edit person drawer so they're included from next month. Accounts limited to one site only sync people of that site.

i

Inactive vs. Offboard. Mark inactive hides someone but keeps everything (name, contact details, pay, history) and is reversible. 🗑 Offboard records a last day and turns the card into an empty vacancy that someone can be promoted into — it clears the person's details. The monthly upload only ever uses Inactive. The older Import CSV/Excel button (Editor and above) still exists for loading a brand-new list; ticking Replace all there deletes every active person but keeps the Inactive ones.

Layout tools

Rearranging the chartEditor

Every card can be dragged by hand, but three tools below turn a messy branch back into something presentable in one move.

i

HR accounts don't see any of this. Dragging, both auto-layout buttons, and vertical lists are Editor, Admin or BOD only. HR can still add and reassign people freely — see Editing people & reporting lines — the new cards just place themselves instead of needing to be dragged.

Drag & drop basics

Grab any card and drop it in open space to reposition it — it snaps quietly to an invisible grid so cards line up without you having to eyeball it. Drop a card onto another card instead, and you'll change who they report to (a confirmation guards against doing this by accident). Hold Shift and drag across empty space to lasso-select several cards at once; dragging any one of them then moves the whole selection together.

Moving dotted, collaborates & relies lines

The blue dotted-to line, the grey collaborates with line and the orange relies on line are drawn automatically between two cards, so they can end up on top of each other or across other cards. Grab the line itself (or the small dot in the middle of it) and drag to bend it out of the way — the line follows your mouse and the new shape is saved when you let go. A short click without moving still opens the line's note / remove popup as before; ↺ Reset shape in that popup puts the line back to its default route. The solid reporting lines keep their own handle: drag the horizontal bar to move it up or down.

  • The shape is saved per view: a line you shape in a Site view stays in that view; in a site that has no shape of its own it inherits the one from All sites.
  • It is part of the layout: it is held back until an Admin or BOD publishes, it is included in published versions and layout backups (Compare and Restore bring it back), and Auto layout resets it together with the card positions.
  • Editor, Admin and BOD only — like every other layout change. To re-attach a line to a different person, drag its round end handle instead.

Arrange reports as vertical list

For a manager with a long row of direct reports — a foreman with a dozen line operators, say — open their ⋯ menu and choose Arrange reports as vertical list. Pick 1 column for a simple stack, or 2 to alternate reports left and right down a single spine:

Erdal Gökdemir
Lamination Line Foreman
Zeynep E.
Operator
Ali A.
Operator
Fatma D.
Operator
Özden K.
Operator
Kadir A.
Operator
2-column vertical list — one spine down from the manager, reports alternating left/right.

Every report still connects from the side of their card into that spine, never from the top — so no one can be misread as reporting to the row above them. If you drag someone afterward to reorder the list, the app snaps them back onto the same spine and row spacing automatically; you can't accidentally knock it crooked.

Auto layout this team

Made a mess of one branch while trying things out? Open that manager's ⋯ menu and choose Auto layout this team. It rebuilds a clean tree for that manager and everyone below them, and re-centers it on wherever the manager currently sits — the rest of the chart is untouched. This is different from the Auto layout button in the Layout panel in the left sidebar, which resets manual positions for the entire chart at once.

!

Both tools ask for confirmation before resetting anything. Neither can be undone by hand afterward — but both now take a layout snapshot automatically first, so the previous arrangement isn't actually gone.

Saving & publishing the layoutAdmin / BOD publish

Dragging cards, arranging teams and moving stat buckets changes your working layout. Only Editor, Admin and BOD accounts see the working layout. Everyone else — HR, Viewer, Production — always sees the last published layout. So whatever you try out, even temporarily, never changes anyone else's chart, and everybody looks at the same arrangement.

  1. Arrange the chart as usual. As soon as your layout differs from the published one, an amber bar appears at the top of the chart: Layout changes are not published.
  2. When you're happy, an Admin or BOD clicks 💾 Save & publish — in that bar, or in the Layout snapshots panel in the sidebar. A note for the version is optional.
  3. Everyone sees the new layout the next time they open or refresh the chart. Not happy yet? Just don't publish — others are unaffected.
i

What gets published. The position of every card in every Site view (All sites and each site), vertical lists and bus lines, and the stat buckets. Who reports to whom, names, titles and departments are live data and are never held back. People added after the last publish appear where they were placed. Until the very first publish everyone simply sees the working layout, as before. Editors can arrange the chart but can't publish — ask an Admin or BOD.

Published versions. The panel lists the latest versions (30 are kept; the newest is marked ● Live). Compare shows one on the chart (HR can do this too); Editors also get Use, which copies that version into the working layout — it only goes live once an Admin/BOD publishes again. You can delete a version you published yourself with 🗑 (after a confirmation) — never one published by another Admin/BOD, and never the ● Live one (publish a new version first). Deleting an old version never changes what anyone sees. It counts as "yourself" whichever of your sign-in emails you used; a version left by someone whose account has since been disabled can be removed by any Admin/BOD.

Layout backups

Separate from publishing, Editor, Admin and BOD accounts get a safety net for the working layout: up to 10 backups per Site view in the Layout snapshots panel, taken automatically right before Auto layout or Auto layout this team run, or anytime via 📸 Take backup now. Click Restore on one to reposition everyone back to how it looked (HR can't create or restore backups). 🗑 next to a backup deletes it for good (after a confirmation) — you can only delete backups you created yourself.

Comparing with today. Compare — on a published version or one of your backups — draws the chart the way it looked, read-only — nothing is saved and nothing can be dragged. A bar at the top of the chart switches between Snapshot and Current so you can flip back and forth; anyone whose position differs gets a dashed orange outline, with the count in the bar. ✕ Exit returns to the normal chart (so does changing the Site view). For HR and other viewers, Current is the published layout they normally see. Editors also get Restore this in the bar. Snapshots taken before October 2026 don't record who was on the chart at the time, so a comparison with one of those only shows people who had been dragged by hand.

i

Restoring is itself safe to undo. It only repositions people who are both in the snapshot and still on the chart today — anyone offboarded since then is quietly skipped rather than brought back, and anyone added since then keeps their current position rather than being cleared. People who were on auto-layout when the snapshot was taken (newer snapshots only) go back to auto-layout. The current layout is snapshotted automatically right before a restore runs, so restoring the wrong one just means restoring again.

New in this release

Site-specific layoutsAdmin / BOD / Executive switch it · everyone else is fixed to their site

Izmir and Ho Chi Minh no longer share one arrangement — each site keeps its own, so tidying one never disturbs the other.

Open the Site view panel on the left. Admins, BOD, and any account with the Executive checkbox ticked can jump between All sites (combined layout) and any single site; whichever you're on decides which saved layout you're looking at and editing.

SITE VIEW
All sites (combined layout)
Ho Chi Minh
Izmir
The panel Admin/BOD/Executive see. Editor and HR accounts see a plain "Site: Izmir" label instead — no switch.

If you're an Editor or HR user, there's nothing to choose — you're always looking at your own site's layout, and it's the one you'll affect when you drag a card or print. This is exactly why the Turkey factory chart could look cramped before: it was inheriting whatever the combined view happened to look like. Now it's yours to arrange and it stays that way.

i

A site starts out looking exactly like "All sites." Until someone actually drags a card (or runs an auto-layout) while that site's view is open, it simply shows the same combined arrangement, filtered down to that site's people. The moment anyone repositions a card there, that site's layout branches off on its own — everything else, including "All sites," stays exactly as it was.

The org chart

Departments panel

One list, doubling as a legend for the colored dots on every card and a filter for the chart.

DEPARTMENTS
Lamination14
Fitout9
Supply5
Untick a department to hide everyone in it. Click the name (not the checkbox) to jump to it.

Editors can add, rename, recolor (✎) or delete a department from this panel — a department can only be deleted once it has no one left in it. The headcount next to each name, and the list itself, now follow whichever Site view you're on: switch to Izmir and only departments that actually have Izmir (or shared HQ) people in them are listed, with a headcount matching just that site.

The org chart

Stat bucketsEditor

A bigger, free-floating card for headcount numbers that don't belong to any one person — a shift total, a workshop's worker count.

Choose + Add stat bucket in the Actions panel, give it a label, and link it to one person (required — this is who the dashed connector on the chart points to, and whose department color tints its border). Fill in Total workers, Available and Absent by hand; these aren't computed from Leave records yet. Drag a bucket exactly like a person's card — it now snaps to the same invisible grid, so lining one up flush against a row of cards is no longer guesswork.

i

Buckets aren't site-specific yet. Unlike people, a stat bucket has one position shared by every Site view. If you arrange one while looking at a single site, it'll sit in that same spot when someone views "All sites" too.

Direct workers (automatic)

Production staff without a company email (direct workers) are drawn either as individual cards or grouped into a bucket — chosen per site, see Direct workers display below. Wherever they are grouped, a system-generated Direct workers card — solid border, colored like the manager's department — appears attached to that manager's card, exactly like a normal linked bucket, showing a live headcount of their direct reports. It updates on its own as people are added, offboarded, get a manager reassigned, or their email changes — you never create or edit one through the + Add stat bucket form. A direct worker with no manager set yet falls into one dashed, unattached Direct workers — Vietnam/Turkey (no manager set) card per site instead, so nobody silently disappears from the count. Click the 🔍 on either kind to see the actual names counted inside, without leaving the chart. You can still drag one to reposition it — that's the only thing about it you control. If a supervisor leaves, promoting their replacement into that same vacant slot (see Promoting into a vacant role) keeps the bucket attached correctly — nothing to fix on the workers themselves.

Direct workers display: stat bucket or full cardsEditor · Admin · BOD

A direct worker is anyone whose email is blank or is not an @corsairmarine.com / @seawindcats.com address — typically the shop floor. With hundreds of them (for example after uploading the Ho Chi Minh workforce) one card each would swamp the chart, so each site has its own switch, right next to it in the Site view panel in the sidebar (Editors, whose panel only shows their own site, get the switch beside the site name):

  • ▦ Bucket — no individual cards; each manager gets one automatic Direct workers card with a live headcount. This is the default for Ho Chi Minh, Pattaya and Sydney.
  • 👤 Full — every direct worker is drawn as a card. This is the default for Izmir, as before. Switching a large site to full asks you to confirm first.
  • Click the switch to flip it. Each of the four sites — Ho Chi Minh, Izmir, Pattaya, Sydney — is independent: flipping one never changes another. A site you've never touched uses the default; flipping it back to the default clears its own setting. (Anyone whose site is blank or not one of the four follows Ho Chi Minh or Izmir, whichever region they are in.)
i

It is part of the layout, so it follows Save & publish. Editors, Admin and BOD see a change immediately and it makes the amber Layout changes are not published bar appear; everyone else keeps seeing the published setting until an Admin or BOD publishes. You can switch to full cards to look at one team and switch back without anyone else noticing. Sign-in and site-visibility rules still apply on top: someone who may not see the other site's workers does not get them just because that site is set to full cards.

  • Buckets that have never been dragged now sit directly under their manager's card instead of piling up in the top-left corner; drag one anywhere to pin it (it is saved with the layout).
  • The bucket's number only counts the people who are not drawn as cards, so nobody is counted twice. Click the 🔍 on a bucket to list who is inside.
  • 👁 Show all (incl. direct) (Admin, BOD, Executive) is a personal, temporary override: it draws everyone as cards for you only, whatever the sites are set to.
  • 📥 Export Empl and the Directory always include direct workers, whichever way the chart shows them.

The org chart

Printing the chart

The 🖨 icon next to the zoom controls exports exactly what's on screen — filters and all.

Printing renders the chart at A1 landscape and scales it to fit one page, so the wider the visible chart, the smaller the text ends up. For a readable printout, filter first — narrow to one department, one level, or (most usefully) one Site view — then print. A full-company printout will always be small print by nature; a single site's own layout, already arranged to be compact, prints far better.

!

Your browser's print dialog decides paper size and margins. If a printout looks tiny or shows a stray extra blank page, check the dialog's scale is set to 100% and "Background graphics" is on (the app's own colors already force through, but some browsers still label the option).

Other tabs

DirectoryHidden from Production

The same people as the org chart, as a flat, searchable table — better for scanning a phone number than a reporting line.

Columns run Empl ID, Name, Position, Reports to, Location, Department, Email and Phone, sorted by Location → Department → Name. Salary, bonus and performance columns exist but stay hidden behind the same Show salary & performance checkbox used in the Edit person drawer — ticking it here reveals those columns for anyone with permission to see them. The search box matches any of the visible columns as you type.

Other tabs

Skills & TrainingEditor · HR

Two matrices — who has which skill, and who's completed which course — plus bulk import for both, Editor and above only.

Skills Matrix

Tick the grid where an employee has a skill. A skill can be marked Required for departments — tag it under one or more departments and the Filter by department dropdown then narrows the matrix to just that department's people and the skills that actually apply to them.

Training Matrix

Tracks completed training courses the same way, one row per employee.

i

HR can do everything here except bulk import. Ticking matrix cells, adding or removing a skill or course, and tagging which departments require a skill are all open to HR now. The CSV/Excel bulk import (via Build from data) that can append to or replace records for many people at once stays Editor, Admin or BOD only — it shares the same underlying import as the staff CSV upload.

Other tabs

Leave managementEveryone requests · HR records & exports

Request leave, get it approved by email, cancel it (also with approval), attach PDF paperwork — and let HR export a month for payroll.

Requesting leave

Anyone whose company email is on their employee record can request leave for themselves in the Leave tab; HR, Editor, Admin and BOD request it for themselves too: the Employee box contains just their own name (they request leave like everyone else). Record for another employee (HR) is greyed out for now — it is planned for production admins to record leave for workers from the employee / department list. Choose the Type (symbol), the dates, optional notes and optional PDF documents, then Submit request. Everything on screen is in English; the symbol meanings follow the company's symbol sheet.

  1. An approval email goes to the person's manager. If the direct manager has no email address (for example a production supervisor), it goes to the nearest manager above who has one. Anyone above in the line, or an Admin/BOD, can also decide inside the app (Pending your approval).
  2. The manager clicks Approve or Reject in the email — nothing is decided until they press the confirm button on the page that opens. The link works for 14 days and once only.
  3. The decision is recorded with the approver's name, the time (Vietnam time) and a verification code, and the employee is emailed the result.
  4. Calendar: approved leave is booked in the shared AnnualLeave calendar only for people with a @corsairmarine.com / @seawindcats.com email. People without one (production workers) are just listed here so their managers can see them. Days that are not an absence (TOIL+, late arrival / early leave) are never booked.

A request you saved but that has not been sent yet (for example an upload failed) shows not sent yet with a Send button. A pending request can simply be deleted with ✕ — nobody has approved it yet.

Who can see leave records

Leave is private. Each person only sees their own leave in the Leave tab. The full list of everyone's leave (with the statistics, “currently on leave”, “out of office”, “upcoming” sections and the export) is visible only to HR, BOD, Executive and Admin.

  • Managers additionally see the requests that are waiting for their decision (so they can approve or reject in the app as well as by email). Once decided, the request disappears from their screen.
  • Editor and Viewer/Production accounts see their own leave only — Editor is no longer able to see everyone's leave unless the account is also HR, BOD, Executive or Admin.
  • On the org chart, the On-leave only / OOO only filters and leave badges are therefore available only to the roles that can see the full list.

Salary view (BOD and Admin)

BOD and Admin accounts have a 💰 Salary button (Org Chart → Actions). It lets a BOD member look at salaries on the chart without the data ever being stored in the system.

  1. Click 💰 Salary → Choose Excel file… and pick the salary file on your own computer (.xlsx, .xls or .csv). Columns: STAFF ID, BASIC, ENVIROMENT, RESPONSIBILITY, DELIGENT, LONGEVITY, OTHER, TOTAL. STAFF ID must equal the Empl ID on the employee card.
  2. The file is read inside your browser only. Each matched card shows a green 💰 total (hover for the breakdown); the Departments list shows the payroll of every department and a grand total next to Select all; a Payroll in view bar at the bottom of the chart follows the site and department filters you have ticked.
  3. 📊 Dashboard opens a private report: total / average / median, split by Basic–Environment–Responsibility–Diligent–Longevity–Other, by department and by site, a searchable people table, and a Data check (Empl IDs that do not match, staff without a row, duplicates, TOTAL that differs from the components).
  4. Use 🙈 Hide amounts before sharing your screen.
  • Nothing is uploaded or saved — not in the database, snapshots, published layout, exports or printouts. Other roles — and a BOD or Admin looking at their own screen — cannot see anyone else's file, because it never leaves the browser tab it was loaded in.
  • It disappears when you reload the page, log out, close the tab, or after 30 minutes without activity. Load the file again when needed.

The symbol lists

The Type list comes from the company symbol sheet. Which list you get depends on the employee: Local (Vietnam labour law) or Expat. By default it follows the site (Izmir → Expat, everything else → Local); HR can set it per person in Edit person → Leave symbols. Half-day symbols (Pam, Ppm, Ram, …) are one day only and the morning/afternoon is part of the symbol; for the Expat Ah you choose morning or afternoon. Symbols marked HR only (public holidays, TOIL, insurance-related, maternity status) can only be recorded by HR. Out-of-office types (Business Trip, Overseas …) are unchanged.

Local list

SymbolMeaningDaysNotes
LPublic holiday (Vietnam labour law)1HR only
PAnnual leave, full day (per labour law)1
PamAnnual leave, morning0.5
PpmAnnual leave, afternoon0.5
PamRpmAnnual leave in the morning, paid personal leave in the afternoon (8 March (women) / Tet Party)1
PpmRamAnnual leave in the afternoon, paid personal leave in the morning1
RPersonal leave, full day (paid, per labour law)1
RamPersonal leave, morning0.5
RpmPersonal leave, afternoon0.5
RoUnpaid personal leave1
RoamUnpaid personal leave, morning0.5
RopmUnpaid personal leave, afternoon0.5
RkOther personal leave1
RkamOther personal leave, morning0.5
RkpmOther personal leave, afternoon0.5
OOwn sickness1
CoChild sick1
O- / Co-Sick leave (no health-insurance card yet) / child aged 7 or over sick (no social-insurance benefit)1HR only
NbCompensatory leave (TOIL)1
NbamCompensatory leave (TOIL), morning0.5
NbpmCompensatory leave (TOIL), afternoon0.5
TOIL+Worked on Saturday/Sunday → added to compensatory (TOIL) hours1HR only, not an absence
TOIL-Deduct compensatory (TOIL) hours (late arrival / early departure on weekdays)1HR only, not an absence
TAntenatal check-up / maternity leave, counted as worked in the month1
TsOn maternity leave, no workdays credited in the month1HR only
Thai>7TAllowed to arrive 1 hour late / leave 1 hour early, paid1HR only, not an absence
Sau TAllowed to arrive 1 hour late / leave 1 hour early, paid1HR only, not an absence

Expat list

SymbolMeaningDaysNotes
AAnnual Leave1
AhHalf-day Annual Leave0.5
SSick Leave1
LVietNam Holiday1HR only
HExpat's Country Holiday1HR only
RPersonal Leave1
UUnpaid Leave1
TOIL+Accrue Time Off in Lieu1HR only, not an absence
TOIL-Deduct Time Off in Lieu1HR only, not an absence

Records created before the symbol lists existed keep their old wording (Annual Leave, Sick Leave, Unpaid Leave, Other); they still display and export normally.

Cancelling approved leave

Approved leave is never deleted on the spot. Click Request cancellation on the row (employees can do this for their own leave that hasn't ended; HR can do it for anyone) and give a reason. The manager gets an email with Approve cancellation / Keep the leave; the leave stays valid until then and shows cancellation pending.

  • Approved → the leave record, its calendar entry and its attached documents are deleted, and the employee is emailed. The deletion is noted in the activity log (who, what, who asked, who approved).
  • Rejected → the leave stays approved and shows cancellation rejected; the employee can ask again.
  • Managers can decide in the app too — Cancellation requests waiting for you at the top of the Leave tab.
  • HR can no longer delete an approved record directly (that would bypass the manager); only Admin/BOD can, for data corrections.

Leave balance — days and TOIL hours

Each person has annual leave remaining (days) and TOIL remaining (hours), kept up to date by HR in Edit person or through the monthly staff upload (optional columns Annual Leave Balance and TOIL Balance in the template; a blank cell leaves the number as it is). The date it was last changed is recorded automatically.

  • When you request leave the form shows your balance and how many working days the request uses, with a warning if it is more than the annual leave you have left.
  • Your manager sees the same numbers in the approval email, on the approval page and on the approval card in the app — "Annual leave remaining 8.5 days · TOIL 12 h (as of 01/10/2026) · This request: 2 working days".
  • Who can see balances: HR, Editor, Admin and BOD for everyone; each person only their own; a manager only for the people whose request they are deciding. They never appear in the chart, the directory or exports other than HR's.
  • The balance is the number HR last recorded — the app does not subtract approved leave automatically, so it is only as current as HR's last update.

PDF documents — kept by HR in the company SharePoint

When a request needs paperwork (for example a medical certificate) attach up to 5 PDF files, 15 MB each (40 MB per request), on the form or later with the 📎 button on the row. Only real PDF files are accepted.

  • Where: the files are stored in a restricted SharePoint library, in folders Leave / year / Empl ID – name, not in this app.
  • Who can open them: only HR (the HR role, plus Admin and BOD). Everyone else cannot: the employee sees the names of the files they attached but cannot open them again, and the approving manager receives the PDFs attached to the approval email (up to 15 MB in total; anything larger is left out and the email says so) so they can verify the request before deciding — the approval page itself only shows the count. Editors, viewers and production accounts see nothing.
  • HR opens a file from the 📎 button (the app fetches it from SharePoint for them), and can delete it. The employee can remove a file while the request is still pending.
  • The files are deleted from SharePoint when the request is deleted or the leave is cancelled.
  • Until IT has connected the SharePoint library, the attachment box is replaced by a note saying attachments are not available yet — requests work normally without it. Admin/BOD can check the connection in Admin → Leave documents storage → Test connection.

Monthly export for HR

HR, Editor, Admin and BOD get ⬇ Export for payroll (Excel) above the records table. Pick a month; the file has three sheets: Timesheet (one symbol per person per day — the same symbols as the legend), Summary (days per person per symbol and per category, total days absent, and the current annual-leave and TOIL balances) and Detail (every record with approver, decision time and verification code). Working days count Monday–Friday; half-day symbols count 0.5; the combined PamRpm / PpmRam count half a day each for annual and paid personal leave; TOIL+ counts on the days worked, including weekends, and is not added to days absent. Only approved leave is exported unless you tick include pending. Out-of-office records are not included.

On the chart

Whoever is away today shows a small badge on their card: 🏖 for leave, ✈ for out of office — only for approved leave, using Vietnam time, and not for symbols that aren't an absence. Use the On-leave only / OOO only toggles on the chart to see just who's affected right now.

Other tabs

Job descriptionsEditor · HR

A plain-text, versioned description per role, opened from the Directory rather than the chart.

Each row in the Directory has a JD button — filled if that person already has a description on file, outlined if not. Descriptions are free text with no required structure, and each save keeps the version before it, so you can see what a role used to say as it evolves.