Seat the boat
Place paddlers left and right, set drummer and sweep, and switch small or standard size.
seat({ heat: "open_200", size: "standard" })Place paddlers left and right, set drummer and sweep, copy heats, and catch empty seats before you paddle.
Place paddlers left and right, set drummer and sweep, and switch small or standard size.
seat({ heat: "open_200", size: "standard" })Move people between seats without rebuilding the whole lineup from scratch.
swap({ from: "L3", to: "R5" })Duplicate a solid lineup into the next heat, then tweak only what changed.
copy_heat({ from: "mixed_500", to: "mixed_200" })Flag missing seats before you paddle so race-day surprises stay rare.
empty_check({ heat: "women_200" })Keep names, weights, preferred sides, and roles in one roster. Build crewlists for race weekends and track who is actually available.
Keep names, weight, preferred side, and role in one place your coaches can trust.
roster.list({ club: "harbour" })Build the pool available for a race block, then seat boats from that list only.
crewlist.create({ name: "Nationals day 1" })Mark drummer, sweep, and paddler roles so the right people show up in the right slots.
paddler.set_role({ id: "p42", role: "sweep" })Track who is in for the weekend so your crewlist matches who will actually race.
availability.set({ paddler: "p12", weekend: true })See fore-aft trim, left-right side balance, lineup gaps, and heat comparisons so you confirm lineups with numbers, not guesswork.
See fore-aft balance from seated weights so the boat sits where you want it.
insights.trim({ heat: "open_500" })Compare left vs right mass and spot when one gunwale is carrying too much.
insights.side_balance({ heat: "mixed_200" })Surface empty seats, missing sweep, or no drummer before you confirm the heat.
insights.gaps({ heat: "open_200" })Stack two lineups side by side when you are deciding who races which distance.
insights.compare({ a: "open_200", b: "open_500" })Full reference documentation: github.com/junlee-3/paddltir-web