CSV Export Docs

BowlSheet exports your event data to a comma-separated values (CSV) file compatible with Excel, Google Sheets, and any standard spreadsheet application. This page explains how to export, what the file contains, and how to work with it.

If you used the legacy BowlSheet iOS app, your existing CSV exports still work. The format is preserved for backwards compatibility.


Exporting from the App

  1. Open Events in BowlSheet.
  2. Tap the event (or select multiple events using long-press).
  3. Tap the Share icon in the top-right corner.
  4. Select Export CSV.
  5. Choose where to save or share the file (Files, AirDrop, email, etc.).

The exported file opens in any spreadsheet application. No special software is required.


What the CSV Contains

Each row in the CSV represents one game. The file also includes a summary row labeled All Events (row 1, after the header) that aggregates statistics across every game in the export. Game-specific columns in that row are blank; only the statistics columns are filled.

The CSV has 130+ columns organized into seven groups. The authoritative column reference is docs/CSV_EXPORT_SCHEMA.md in this repository, which documents the column groups, ordering, and the preserved legacy quirks in full.

1. Event Metadata

Basic context for each game: event name, event type (individual or team), game type (standard or Baker), date, location, oil pattern, and team name.

2. Bowler Assignments (Baker Format)

For Baker games, each frame (1–10) records which bowler threw that frame. Frame 10 can have up to three bowlers for the bonus balls. Individual games record a single bowler for all frames.

3. Frame Scores

Cumulative score at the end of each frame (frames 1–10). These are running totals, not individual frame pins. For example, if frames 1 and 2 score 8 and 9 respectively, the frame 2 value would be 17.

4. Split Flags

A 1/0 indicator per ball per frame marking whether a split was recorded on that delivery.

5. Pins Down

The number of pins knocked down on each ball thrown in each frame (numeric).

6. Pin Leaves

A text description of the pins still standing after the first ball, expressed as a dash-separated list of pin numbers (e.g., 1-3-5-7-10). Blank when a strike was thrown.

7. Statistics

Aggregate columns covering: frame averages, score averages, strike rate, spare conversion rate, high game, game average, series totals, match play record (wins/losses/ties), game distribution counts (100–110, 110–120, etc.), and lane information.


Sample Row (Simplified)

The following illustrates a small subset of columns for a single Baker game:

EventGameTypeDateFrame1BowlerFrame1ScoreFrame1Ball1PinsAverage
State QualifierBaker2025-10-14Johnson99189.4

The full column list is in docs/CSV_EXPORT_SCHEMA.md in this repository.


Compatibility Notes

Excel and Google Sheets

Open the file directly — no import wizard needed. If columns appear merged, check that your application is not treating the file as tab-delimited. The format uses standard commas as delimiters.

RFC 4180 Escaping

Fields that contain a comma, double-quote, carriage return, or line feed are wrapped in double quotes. Embedded double quotes are doubled (""). This is the standard CSV escaping format and is handled automatically by Excel and Sheets.

The “All Events” Aggregate Row

Row 1 (immediately after the header) is a summary row labeled All Events. It contains blank values for game-specific columns and aggregate statistics for all games in the export. Filtering or sorting in a spreadsheet may move this row — keep that in mind if you’re building formulas that reference row positions.

Legacy Quirks Preserved for Compatibility

Several column names from the original BowlSheet iOS export are preserved verbatim, including known typos and duplicates:

  • HightPocketRatio (typo for “High”)
  • Frame6AvgScore (duplicate column)
  • Three 600Series columns

These are intentional. If you have existing formulas or scripts that reference these column names, they will continue to work.


Full Schema Reference

The complete, authoritative column list is in docs/CSV_EXPORT_SCHEMA.md in this repository — the engineering reference used to verify the export implementation.