Keep the history you already have
Bring your maintenance spreadsheet.
Append service rows to the current bike without retyping each entry. Review the full import before applying it; existing bikes, records, plans and original receipts remain in place.
Import service historyUse four required columns
Include date,action,component,description. Dates use YYYY-MM-DD. Actions are Serviced, Installed, Removed or Inspected. Header order and case do not matter. Optional columns are provider,private_note,cost,currency,odometer,odometer_unit. Download the fictional template in the app.
Be explicit about money and distance
A nonblank cost requires USD in currency. Foreign currencies are refused; there is no exchange-rate conversion. Blank cost means missing, while 0 means a recorded zero. Amounts accept up to two decimal places and no currency symbols or thousands separators.
A nonblank odometer requires km or mi. The preview shows the source reading and its value in the current bike’s unit, using 1 mile = 1.609344 km and rounding to two decimals. These are bike readings, not component lifetime use. Blank readings stay missing.
Check duplicates before adding
The preview flags rows whose normalized contents match an existing record for this bike or an earlier row in the CSV. The warning is a comparison aid, not proof that two real jobs are duplicates. No row is silently skipped. The confirmation states how many possible duplicates will be added; cancel and edit the CSV if needed.
Preserve original records and files
Import creates new record IDs. It does not replace previous entries or fetch receipts from filenames and links. Unknown columns are named in the preview and ignored. Private notes enter the private record field and stay out of the handover. Public descriptions and attribution can still contain personal text; review them before sharing.
Save the reviewed result
Applying changes the current collection in memory. Choose Save in browser or download a full private ZIP to retain it with existing originals. A text JSON backup excludes original files. Changes while reading or reviewing invalidate the import; preview again for the current bike.
CSV limits
UTF-8 comma-separated CSV, at most 500,000 bytes, 100 data rows and 30 columns. Quoted commas, newlines and doubled quotes are supported. Malformed rows, missing required fields, unsupported amounts and the collection’s 500-record limit reject the whole import. Extra source columns remain in the text box until cleared; nothing is uploaded.