Coming from a spreadsheet
The spreadsheet got you this far.
It won't flag the diver on tomorrow's boat whose card nobody's verified, chase the waiver no one signed, or let a diver book their own seat on a Sunday night. DiveDay reads the sheet you already keep — your divers, their cards, their sizes — and takes the rest off your hands. No system to rip out first; you already have the file.
A spreadsheet is a good memory and a bad teammate. It holds names and numbers, but it can't do the work that actually keeps a dive day calm and safe — the part you're doing by hand right now, in your head and across a stack of paper.
That's the trade DiveDay makes worth it. Not a prettier list — the jobs a list can't hold:
Every card checked before the boat leaves
DiveDay re-reads each diver's certification against what the trip and the site require, and the ones who can't board yet surface on their own — no scanning a column and hoping.
The day's blockers in one place
One screen shows who still can't board and why — a missing waiver, a card to verify — so nothing is remembered at the dock instead of the desk.
Divers book and sign themselves
A diver picks a seat and signs the waiver from a link, no account and no app — the signature chase at the dock mostly disappears.
A manifest that's a head count, not a printout
The captain checks divers off dive by dive on a phone — working from a copy saved to it before the boat leaves, so roll call keeps going when the signal doesn't, then checks itself against the live manifest when service returns.
Step 1
Does your sheet have these columns?
One row per diver, and columns for what you know about them. Your headings don't have to match anything — DiveDay recognizes the common names, previews the file, and flags anything it doesn't before saving. If you'd rather start from a clean sheet, download one that's already in the right shape.
- NameFirst and last in two columns, or one full-name column — either works. This is the only thing a row truly needs.
- EmailHow DiveDay reaches a diver and recognizes a returning one, so a second import updates them instead of making a duplicate. A row without one still comes in as a new diver.
- PhoneMobile or landline, however you've written it.
- Emergency contactA name and a phone number, when you have them, land on the diver's card.
- Dive insuranceHowever you keep it — a DAN number, a provider name — comes across as written. It's never a gate; it's what the crew wants on hand in an incident.
- CertificationAgency, level, and card number. The card number is what lets a card come across at all — it arrives verified and flagged imported, ready to use, with a one-tap confirm for staff.
- Refresher dueIf you track a refresher date on a card, it comes across with it — written however your sheet writes dates (05/04/2030, 4-May-2030, 2030-05-04). A date already past lands as a card that's due, which is the point. A date we can't read lands the card for staff review rather than as verified: we won't guess at a date the boat depends on.
- SpecialtyDeep, wreck, night, or drysuit — one cell can name several (“Deep, Wreck”) and each becomes its own card under the diver's agency number. They arrive verified and flagged imported, and the dive that needs one opens once a staffer confirms they've seen that card.
- NitroxA yes/no column, plus the nitrox card number if you keep one — the card number is what actually brings it across, imported as a verified nitrox card. The enriched-air fill gives plain air until a staffer confirms they've seen that card.
- Rental sizesBCD, wetsuit, boot, and fin — whatever sizes you already track become a fit profile.
- Past visitsKeep a booking log? A date column, plus what you called the trip and what you charged, turns each row into that diver's history here — so a regular arrives as a regular. Repeat the diver's email on each of their rows; that's how the rows find the right person. It's history, not schedule: imported visits never become trips, and a booking you'd written off as cancelled still reads cancelled.
Step 2
What comes across — and what doesn't
This is the same scope table DiveDay shows before it imports a single row. A card already in your sheet was checked by you, so DiveDay trusts it: cards come across verified and flagged imported, with a one-tap confirm for staff — and their refresher-due dates come with them. A specialty card is the one that waits on that confirm before it clears the dive it authorizes. Individual medical answers are never reconstructed.
- Names, email, phoneComes acrossImported as given. A row with an email is matched to an existing diver so a re-import updates them; a row without one always comes in as a new record.
- Emergency contactComes acrossName and phone carry over when present.
- Dive insurance (DAN)Comes acrossCarried across as free text, exactly as your file holds it (“DAN #12345”). Never a gate — it's the detail the crew wants on hand in an incident.
- Rental sizesComes acrossBCD, wetsuit, boot, and fin sizes become a rental-fit profile.
- Certification cardComes acrossImported verified and flagged imported — DiveDay trusts the card your system already checked, so a diver is ready from the first trip. A card lands with a card number and a recognized level; staff give it a one-tap confirm. A refresher-due date comes across with it, read from whatever date format your file writes, and a date already past lands as a card that's due rather than one that looks current forever. Two things import for staff review instead of as verified: a card your own file marks unverified, and a card whose refresher date we can't read — we won't guess at a date the boat depends on. Unrecognized levels are left for a person to enter.
- Specialty cards (deep, wreck, night, drysuit)Comes acrossImported as verified specialty cards, flagged imported — from a specialty column, or from a certification row that names one (“PADI Deep Diver”). Your diver's agency number is what carries them, the same number their level card uses, so a “Deep, Wreck” cell comes across as both cards and a certification file with one row per card brings in every card a diver holds. A specialty is what clears a riskier dive, so this one is stricter than a level card: the dive that requires it waits until a staffer confirms they've seen the card, and everything else about the diver's day does not.
- Enriched air (nitrox)Comes acrossImported as a verified nitrox card, flagged imported, whenever the row carries a nitrox card number — so a diver can request enriched air right away. A fill is the highest-stakes gate, so an imported nitrox card gives plain air until a staffer confirms they've seen the card or checked the number with the agency; boarding never waits on it.
- Signed waivers & medical clearanceComes acrossWhen a row says the diver already accepted a waiver at the prior shop, DiveDay trusts it — including its medical clearance — and the diver is not asked to sign again. The record is marked imported everywhere staff see it, snapshots your shop's current release for reference only (the diver did not agree to that exact text), and is dated to the acceptance date the row gives (or the import date if it doesn't). Individual medical answers are never reconstructed — only the accept/no-review-needed outcome carries over. Trusting a prior shop's acceptance is a deliberate choice on our side, not an accident of the import.
- Waiver / medical documentsComes acrossA row's waiver_document_url / medical_document_url is fetched once and re-stored in DiveDay's own storage for audit, the same way a pasted card photo is. Image files (JPEG/PNG/WebP/HEIC) and PDFs are supported, 5 MB max.
- RoleComes acrossEveryone imports as a diver. Staff roles and logins are never granted by import.
- Card on file / paymentStays behindStays with your payment processor — DiveDay never imports card or payment data.
- Past visits (what they booked, when)Comes acrossA bookings or orders export comes across one line per booking, and lands on the diver's profile as history: the date, what your old system called the trip, its own status word, and the price it recorded. Two things it deliberately is not. It is not a trip — imported history never appears on your schedule, never counts toward a boat's capacity, and never reaches a manifest. And a booking is not a dive: an export holds cancellations and no-shows too, so DiveDay shows your old system's own word for each line rather than counting them all as dives the diver made. The amounts are there to read, not to add up — they stay out of your reporting, which covers what you've run here.
- Receipts & service historyStays behindPayment records stay with your processor, and gear-service history has nowhere to land — DiveDay tracks the sizes a diver takes, not individual rigs. Your full-shop export carries your DiveDay history when you want it.
Step 3
Bring the file into DiveDay
Save your sheet as CSV, and the rest is in DiveDay and takes minutes.
- 1
Open Settings → Import contacts
In your DiveDay shop, the owner or manager opens the import page and uploads the CSV.
- 2
Check the preview
DiveDay maps your columns automatically and previews the file before anything is saved — how each column landed, which cards will come in verified and flagged imported, and anything it's leaving behind, including any row it can't bring across (one with no name, or a repeated email). The rows that pass import when you confirm.
- 3
Import — your roster is ready
Roster, rental sizes, and cards are ready immediately: cards land verified and flagged imported, so divers are trip-ready from the first booking. Each imported card carries a one-tap confirm on the diver's record for staff to give it a look when they get a moment — no boarding waits on it. The one thing that does wait is a dive that requires a specialty card: that gate opens when a staffer confirms the card, which is one tap on the diver's record.
A person, not a wizard
We'll switch you on — and off — ourselves.
Send us what you've got — one clean export or a decade of messy tabs — and one of us maps the columns and brings your divers in with you, free, on any plan. And if DiveDay is ever not the right fit, the door swings the other way just as personally: your data is yours, and we'll help you carry all of it back out. Getting in, and getting out, shouldn't be the hard part.
See it before you switch a thing.
Walk the live demo as the owner, the captain, or a diver — no sign-up, nothing to import, just the working shop. Start a trial when it clicks.