Seedling CSV Import & Export

Last updated: May 2026

What is CSV import/export?

Export saves one kid's measurements as a spreadsheet file you can back up, archive, or share with your pediatrician. Import goes the other way: it lets you bulk-add measurements from a spreadsheet, another tracker, or a pediatrician's printout without retyping each row by hand.

How to export

  1. Open the Settings screen (gear icon, top right of the Kids list).
  2. Tap Export CSV.
  3. Pick the kid whose data you want to export.
  4. Choose where to save the file. iOS's Files picker lets you save to iCloud Drive, On My iPhone, or any other connected location.

One file is exported per kid. You can repeat the flow for each child.

Filename format

Exported filenames look like Luna_growth_data_WHO.csv or Luna_growth_data_CDC.csv. The WHO / CDC suffix reflects which growth-reference body the percentile columns were computed against (chosen in Settings → Charts → Default Baseline).

The suffix is cosmetic for import — Seedling ignores the filename when parsing and reads the column headers instead, so you can rename the file in Finder and it will still import cleanly. The suffix exists so that exporting the same kid under both WHO and CDC on the same day produces two distinct files side-by-side, rather than the second overwriting the first.

How to import

  1. Open the kid you want to import measurements for.
  2. Tap the import icon (the down-arrow square in the top-right toolbar of the kid detail screen).
  3. Pick the CSV file. Seedling reads it, validates each row, and shows a summary alert.
  4. Tap Import in the summary to commit the valid rows, or Cancel to discard everything.

The summary tells you how many rows will be added, how many duplicates were skipped, and lists any row-level errors so you can fix them and re-import.

CSV format

Seedling's importer has a narrow required contract and is tolerant of everything else. You only need to provide a date plus at least one measurement — the app figures out the rest.

Required columns (import)

Any other column in the header row — including the Age (months) and percentile columns Seedling's export produces, or arbitrary extras like Notes, Location, or Pediatrician — is safely ignored. You can bring a spreadsheet straight from your own bookkeeping workflow and the importer will only read the columns it understands.

Exported CSV format (for reference)

When Seedling exports a kid's data, it emits a 9-column file so humans can read it easily:

Date,Age (months),Length (cm),Weight (kg),Length Percentile,Weight Percentile,Weight-for-Length Percentile,Head Circumference (cm),Head Circumference Percentile

On import, only the raw-measurement columns are read — Date, Length (cm), Weight (kg), and Head Circumference (cm). The computed columns (age and percentiles) are recomputed by the app.

Value formats

Sample CSV

Here is a minimal 10-row sample for a fictional baby born on 2026-01-05 — three pediatrician visits (length + weight + head circumference) interleaved with weekly home weigh-ins that record weight only. Four columns, no computed extras:

Date,Length (cm),Weight (kg),Head Circumference (cm)
2026-01-05,50.2,3.42,34.5
2026-01-12,,3.61,
2026-01-19,,3.84,
2026-01-26,,4.02,
2026-02-02,54.3,4.28,37.8
2026-02-09,,4.51,
2026-02-16,,4.74,
2026-02-23,,4.95,
2026-03-02,57.8,5.18,39.9
2026-03-09,,5.39,

Download luna-sample.csv to open it in Numbers, Excel, or any spreadsheet app.

Bringing your own spreadsheet

If you've been tracking measurements in your own spreadsheet — with extra columns like notes, location, feeding times, or anything else — you don't have to strip those columns out before importing. The importer reads Date, Length (cm), Weight (kg), and Head Circumference (cm) by name and ignores everything else. Just make sure those column names match exactly (case-sensitive, with the unit suffix).

Duplicate handling

If a row's date matches an existing measurement for the kid, Seedling silently skips that row — it will not overwrite the existing value. The summary alert tells you how many duplicates were skipped.

To replace an existing measurement, delete it from the Table view first (swipe to delete on the measurement row) and re-import the CSV. The new row will come in cleanly on the next pass.

Error handling

Seedling distinguishes two kinds of problems:

FAQ

Can I import measurements for multiple kids in one CSV?
No. Each CSV belongs to one kid. Seedling picks the target kid from the detail screen you launched the import from, and every row in the file is attributed to that kid. If you have two children, run the flow twice.
Does it work with Numbers or Excel exports?
Yes. As long as the file has a Date column and at least one of Length (cm), Weight (kg), or Head Circumference (cm), and you "Save as CSV" (not .xlsx or .numbers), Seedling reads the file. Extra columns are ignored, and column order doesn't matter. UTF-8 with a byte-order mark — Excel on Windows often adds one — is handled silently.
Why does the export have 9 columns but import only needs 4?
The exported file is designed to be useful on its own — the Age (months) and percentile columns let you skim the file in Numbers or share it with your pediatrician without re-running the app. On import, Seedling rebuilds those computed values from the WHO Child Growth Standards, so it only needs the raw inputs: Date, Length (cm), Weight (kg), and Head Circumference (cm). Everything else in the file is safely ignored.
What about head circumference?
Head circumference is fully supported. The export includes a Head Circumference (cm) column and a computed Head Circumference Percentile column, and the importer reads Head Circumference (cm) (in centimetres, range 2065 cm). A row with only a date and a head-circumference value is a valid, importable measurement. Older CSV files exported before head circumference was added still import cleanly — the missing column is simply treated as empty.
Can I include imperial units (ft+in, lb+oz, inches) in the CSV?
No. The CSV columns are labeled Length (cm), Weight (kg), and Head Circumference (cm), and Seedling's import pipeline expects SI values. Convert your numbers to cm and kg before saving the file. (A quick conversion rule: 1 in = 2.54 cm, 1 lb = 0.4536 kg.)
What happens to computed percentiles on import?
They're ignored. Seedling re-computes every percentile on-device from the WHO Child Growth Standards after the measurements land. You'll see the updated percentiles on the chart and in the measurement table as soon as the import completes.

Questions?

Email rodrigocf_92@icloud.com.