Import & Export
Bring the Plan You Already Have
Ten CSV templates, one for each tracker, each sitting beside that tracker's Export CSV and Import CSV buttons. Everything that comes out goes back in, and the import engine carries a test suite whose bulk is about the ways an import can quietly destroy your afternoon.
Three Landing Modes
What Should This File Do to What Is Already There?
Every import asks that question before it does anything, because the three possible answers are wildly different and only one of them is safe to guess.
Update Existing Only
Rows whose key already exists are updated. Rows with a key the project does not have are skipped, and the preview lists the skipped rows rather than just giving a count.
For a file that came back from a client with edits, where you do not want their copy adding rows to yours.
Add & Update
The default. Known keys are updated, new keys are added, and nothing is deleted. A merge, in the ordinary sense.
For normal work. This is what you want almost every time.
Replace Everything
Your file becomes the entire list. Anything not in it is deleted, permanently. The preview turns red, lists the rows it is about to remove, makes you tick a box confirming how many, and puts the count on the button you have to press. Timesheets do not offer this mode.
For when you genuinely mean it, which is rarer than people think.
The Rules That Stop Bad Imports
Two Decisions Worth Knowing Before You Upload
A Blank Cell Means Leave This Alone
It never means erase this. If you want to clear a field you clear it explicitly. This one rule is why you can hand a client a CSV of six columns, get it back with four filled in, and import it without wiping the other two.
One Bad Row Blocks the Whole File
Not a partial load with forty rows in and a warning somewhere. If a new row is missing its key, or a timesheet line breaks a rule such as a locked week or more than 24 hours in a day, the preview lists each problem with its line number and Apply stays off until the file is fixed. A half-applied import is much harder to recover from than a rejected one.
Ten Templates
One per Tracker
Download them empty, fill them in whatever you use, upload them back. Or export what you already have, edit it, and re-import.
| Template | What It Carries |
|---|---|
| WBS & Phases | ID, phase, workstream, task, mode, priority, complexity, baseline hours, scope factor, percent complete, actual hours, role, gate, optional start and finish dates. A task with logged time takes its actual hours from timesheets instead |
| RAID Log | ID, type, test type, description, impact, probability, owner, raised date, due date, mitigation, status |
| Issues & Decisions | ID, date, issue or decision, description, raised by, owner, priority, due, resolution, status |
| Testing Tracker | Test ID, module, scenario, expected result, actual result, pass/fail/blocked, severity, tester, status |
| Data Migration | Object, module, approach, source count, loaded count, validation method, reconciled, owner, status |
| Capacity | Name, role, hourly rate, allocation, hours per week. For roles without Financials access the rate column is left out of the import |
| Go-Live Readiness | Dimension, criterion, score (0 to 100), weight (0 to 1), owner. Weights should total 1.00, and the scorecard warns when they do not |
| RACI | Workstream, person, their role, RACI letter |
| Handover | Area, priority, scope, applies to, trigger, transition steps, from owner, to owner, due date, status |
| Timesheets | Person, task ID, date, hours. Status is never imported; it only moves through the app's own submit and approve steps. The Timesheets page also offers an Excel template per person and week, with dropdowns, imported through the same preview |
Bring Your Own Method
Your Method, Kept as Files, Reused on Every Project
No project opens pre-loaded. Most firms that have been delivering for a decade already have a method. It lives in a spreadsheet somebody maintains, gets copied at the start of each engagement, and drifts into nine slightly different versions.
Because every tracker imports from CSV, yours becomes the thing you start from instead.
Export Your Current Plan
From a spreadsheet, a scheduler, whatever you keep it in now. You need task names, phases, hours and roles.
Map It to the WBS Template
Fifteen columns, and only the ID is required for a new row. Fill the ones you have and mark your gate rows in the gate column.
Import and Check the Preview
Nothing is written until you approve what it says it will do.
Keep the CSV Files as Your Starting Point
For the next engagement, create a project and import the same files. Every new engagement begins from your method, not a blank page.
The Shape Transfers Further Than the Wording
Phases, gates, the readiness model and migration reconciliation are not industry-specific; they are what structured delivery work has in common. What changes between one engagement and the next is the wording of individual tasks and which workstreams exist.
That is a find-and-replace on a CSV, not a rebuild.
Getting Out
Leaving Is Meant to Be Easy
A tool that holds delivery plans for client engagements should not be able to hold them hostage. Every tracker exports to CSV in one click. Custom queries and the timeline also export to Excel, and the reporting pages save as PDF.
Whole Project as JSON, for Admins
On the Roles page an admin can preview the project as any role and download that role's copy as one JSON file. As Admin, that is the whole project, including the note threads that do not travel in per-tracker CSVs. It is a copy for your records: there is no JSON import, and the service itself is backed up daily.
Any Tracker as CSV
Opens in any spreadsheet, goes to a client, gets edited by somebody who has never heard of this product, comes back and imports cleanly. That round trip is the point. Cells a spreadsheet would run as a formula are exported safely as text and come back unchanged on import.
Import Your Current Plan and Look at It Properly
Ten templates, a preview before anything changes, and a CSV export of every tracker whenever you want to leave.