Version 1. Later versions only add columns; they never rename or repurpose one.
Juice’s own file format for moving a log in and out of the app. One flat table, one row per vehicle or record. It opens as one sheet in Numbers, Excel or Google Sheets.
type,vehicle,date,odometer,distance_unit,quantity,quantity_unit,total,unit_price,currency,full,station,title,category,powertrain,battery_capacity
vehicle,Mach-E,,,,,,,,,,,,,ev,91
charge,Mach-E,2025-03-14T19:40-04:00,12480,mi,58.2,kwh,9.31,0.16,USD,1,Home,,,,
expense,Mach-E,2025-04-02,12910,mi,,,49.00,,USD,,,Tire rotation,Service,,
type is skipped.,, ; or tab) is taken from the header line. A UTF-8 byte-order mark and blank lines before the header are fine. Export writes UTF-8 with a byte-order mark, so Excel reads accents correctly."").vehicle, make, model, plate, vin, station, note, title, category), a value that starts with =, +, -, @, a tab or a carriage return (after any apostrophes) is exported with one leading apostrophe, so a spreadsheet shows it as text instead of running it as a formula. On import one apostrophe in front of such a character is dropped again. A leading apostrophe before anything else ('s-Hertogenbosch) is kept as written.type says what a row is: vehicle, fuel, charge, expense or income.vehicle is the vehicle’s name. It links rows to each other, so give every car its own name.2025-03-14, 2025-03-14 19:40, 2025-03-14T19:40-04:00. A day without a time is read as noon. Times are kept to the second.;-separated files with decimal commas; both read). Don’t group thousands. Odometers may have decimals; they’re rounded to whole kilometres. A fill-up’s or charge’s total and unit_price can’t be negative (0 is fine: free charging); an expense’s or income’s total must be above 0. A value beyond 1,000,000,000 is unreadable. latitude and longitude must be within ±90 and ±180: an out-of-range coordinate is dropped and the row is kept.charge row’s quantity_unit must be kwh (or empty) and a fuel row’s l, gal_us or gal_imp (or empty); any other value skips the row. A row whose energy the vehicle it goes into can’t log (a charge into a combustion car) is skipped too.| Rows | Column | Meaning |
|---|---|---|
| all | type | vehicle, fuel, charge, expense, income |
| all | vehicle | The vehicle’s name |
| all | date | When; required on every row but vehicle |
| all | odometer | The reading; required on fuel and charge rows |
| all | distance_unit | km (default) or mi |
| all | note | Free text |
| fuel, charge | quantity | Litres, gallons or kWh; required |
| fuel, charge | quantity_unit | l (fuel default), gal_us, gal_imp, kwh (charge default) |
| fuel, charge | total | What it cost |
| fuel, charge | unit_price | Price per quantity_unit |
| fuel, charge | currency | ISO 4217 code, e.g. CZK, USD; default: the app’s currency |
| fuel, charge | full | 1 (default) or 0 |
| fuel, charge | missed | 1 if a fill-up before this one wasn’t logged |
| fuel, charge | station | Where |
| fuel, charge | latitude, longitude | Decimal degrees |
| charge | electric_distance | A hybrid’s distance on battery since the last charge, in distance_unit |
| expense, income | total | The amount; required |
| expense, income | title | What it was; default: the category, else “Expense” |
| expense, income | category | By name; a new one is created |
| expense, income | currency | As above |
| vehicle | make, model, year | |
| vehicle | powertrain | ice, ev or hybrid |
| vehicle | tank_capacity | In quantity_unit (default litres) |
| vehicle | battery_capacity | kWh |
| vehicle | plate, vin | |
| vehicle | archived | 1 for a vehicle out of rotation |
A vehicle row is optional. Without one, the vehicle is created with its name, and its powertrain follows its rows: charges only → electric, fuel only → combustion, both → hybrid.
Garage → Import data → Export all data writes every vehicle (archived ones too), fill-up, charge, expense and income in kilometres, litres and kWh, each in its own currency, with the time and time zone of every record. Receipts, reminders and exchange rates stay on the phone.
IDs (an import always creates new records), exchange rates, receipts, reminders and Toyota links.