Nine CSV files hold every Sanctuary Ocean Count result we have compiled, from January 26, 2002 to March 28, 2026. Each row links to the document it came from, so you can check any number against the sanctuary’s own sheet, release or report; current results are on oceancount.org. Dataset version: 2026-09-28.
Files
ocean-count-island-averages.csv: island averages printed on the results sheets, January 26, 2013 to March 28, 2026, one row per count per island, 128 rows. It holds the island average whales per 15-minute count period, with a flag for whether the value was printed as a whole number or with decimals. Molokaʻi has no rows before 2024, when its sites first appear on the sheets.
ocean-count-count-summary.csv: one row per count from the press releases, 44 rows from January 2008 to March 2026. It holds headcounts, reporting sites, the busiest 15-minute period and day totals per island, and the statewide average per site that seven releases from 2008 to 2011 state. Headcounts before 2019 cover the Ocean Count alone; from 2019 most also include the Great Whale Count.
ocean-count-press-release-island-averages.csv: island averages stated in press releases, 2008 to 2012, 51 rows. The results sheets from those years print no island average, so these come from the release text instead and are kept apart from the results-sheet file. Kahoʻolawe appears in 2008 and 2009, and a release_note column keeps notes such as “Did not participate”.
ocean-count-report-island-averages.csv: island means stated in the sanctuary’s annual reports, 2002 to 2004, 27 rows, each with its standard error and the sentence that states it. A note column flags the figures the reports appear to have copied from another island or year.
ocean-count-report-site-averages.csv: per-site averages from the sanctuary’s 2010 report, 2002 to 2010, one row per site per count, 1,701 rows, 1,552 of them with a value. Every value is a whole number typed in from the report’s tables, and each row gives the report page it came from.
ocean-count-site-periods.csv: every site and 15-minute period on the 2007 to 2026 results sheets, 59 counts and 30,645 rows, one per count, site and period. It holds adults and calves as printed. The 2007 to 2011 and 2015 to 2025 tables are images we typed in by hand. The transcription column marks those rows, and the excluded_from_our_averages column flags the four cells we leave out of our own averages.
ocean-count-kahoolawe-periods-2003-2004.csv: whales per 15-minute period at the one site counted on Kahoʻolawe each year (Kui Kui in 2003; Kalialua, also printed Kealialuna, in 2004), from the 2003 and 2004 annual reports, 38 rows. The reports give no adult and calf split, and bad weather canceled the February and March 2004 counts there.
ocean-count-report-behavior-by-site-2002-2010.csv: surface behavior per whale at each site from the sanctuary’s 2010 report, breaches and slaps for 2002 to 2010 and dives for 2006 to 2010, 4,347 rows, one per site, season, month and behavior. The report divides the behaviors recorded in each time block on the behavior sheet by the whales seen in it. Values are as printed; where the report’s island summaries disagree with its own site tables, we keep the site tables.
ocean-count-report-calves-by-period.csv: calves and adults per 15-minute period for each island from the 2010 report, 590 rows: Kauaʻi for every count from 2002 to 2010, Oʻahu and Hawaiʻi Island for 2002 and 2007 to 2010, and Kahoʻolawe for February and March 2008. Three of the report’s tables print a total that does not add up; the note column says which.
great-whale-count-maui-release-figures.csv: 23 rows, January 2019 to March 2026, of Maui figures from Pacific Whale Foundation’s Great Whale Count, as the joint releases state them. The Great Whale Count is a separate shore count, held on the same Saturdays as the Ocean Count since 2019.
The file holds the sites that reported, the busiest 15-minute period and the day totals for Maui and, from 2024, Lānaʻi. The releases give Maui a whole-day total and a busiest-period count instead of an island average per 15-minute period, so never add these to the Ocean Count figures. Our Maui page sets out how the two counts differ and lists the 11 Maui sites.
Data dictionary
All ten files are UTF-8 CSV with a header row. Empty cells mean the source did not give the value. Island names keep the ʻokina (the glottal-stop mark, Unicode U+02BB), so open the files as UTF-8 if a spreadsheet shows stray characters.
ocean-count-island-averages.csv
Island averages printed on the results sheets. One row per count per island. 128 rows.
| Column | Type | Meaning |
|---|---|---|
count_date | date (ISO 8601, YYYY-MM-DD) | Date of the count, as printed in the results sheet's "Preliminary Data" title. |
season | integer (year) | Whale season the count belongs to. Counts run January to March, so the season is the calendar year of the count. |
count_month | text | January, February or March. |
island | text | Island name as the sanctuary writes it, with the ʻokina (Hawaiʻi means Hawaiʻi Island). |
island_id | text | ASCII key for the island: kauai, oahu, molokai, hawaii. |
avg_whales_per_15min_period | number | The island figure printed on the sheet as "Average Number of Whales per 15min Count Period" ("15 min." on the 2026 sheets), copied exactly as printed (not re-rounded). See unit. |
unit | text | Unit of avg_whales_per_15min_period: humpback whales per 15-minute count period, island average, as published. |
reported_precision | text | How precisely this value was printed: "whole number", "1 decimal" or "2 decimals". Derived from the printed value, so a whole number may be a rounded average. |
decimal_places | integer | Number of decimal places in the printed value (0, 1 or 2). |
sheet_reports_decimals | boolean (true/false) | true when any island value on the same results sheet was printed with decimals. Some sheets print decimals only for small values, so a whole number on a sheet flagged true may still be rounded. |
data_status | text | Always "preliminary": every results sheet is titled "Preliminary Data". |
source_document | text | Type of source document. |
source_publisher | text | Who published the source document. |
source_url | URL | The official results sheet (PDF) the value was taken from. |
ocean-count-count-summary.csv
One row per count, from the press releases. 44 rows.
| Column | Type | Meaning |
|---|---|---|
count_date | date (ISO 8601) | Date of the count. |
season | integer (year) | Whale season (calendar year of the count). |
count_month | text | January, February or March. |
participants | integer (people) | Headcount given in the release. From 2019, most releases give the combined headcount for the Sanctuary Ocean Count and Pacific Whale Foundation's Great Whale Count on Maui; the 2008 to 2015 releases count Ocean Count volunteers only. See participants_include_maui_great_whale_count. |
participant_role | text | "volunteers", or "site leaders" for the COVID-era counts when only trained site leaders took part. |
participants_qualifier | text | How the release states the headcount: "more than", "about", or empty when it gives the number plainly. |
participants_include_maui_great_whale_count | boolean | true when the headcount sentence also covers the Great Whale Count on Maui (and Lānaʻi in later years). |
soc_sites | integer (sites) | Number of Sanctuary Ocean Count sites that reported (Great Whale Count sites excluded). Empty when the release gives only a combined figure. |
soc_busiest_period_whales | integer (whales) | Whales counted across all Sanctuary Ocean Count sites in the busiest 15-minute period of the day. Empty when the release gives only a combined figure or names no busiest period. |
soc_busiest_period_start | time (HH:MM, Hawaiʻi time) | Start of that busiest 15-minute period. Empty when the release gives only a combined figure or names no busiest period. |
soc_busiest_period_end | time (HH:MM, Hawaiʻi time) | End of that busiest 15-minute period, as the release states it. |
day_total_whales_kauai | integer (whale sightings) | Total whales reported for the whole day on Kauaʻi. The releases warn this may include the same whale seen more than once. |
day_total_whales_oahu | integer (whale sightings) | Same as day_total_whales_kauai, for Oʻahu. |
day_total_whales_molokai | integer (whale sightings) | Same as day_total_whales_kauai, for Molokaʻi. |
day_total_whales_hawaii | integer (whale sightings) | Same as day_total_whales_kauai, for Hawaiʻi Island. |
statewide_avg_whales_per_site_per_15min | number | Average whales per site per 15-minute period across the state, as stated in the release. Only seven releases, from 2008 to 2011, state one. |
statewide_note | text | Our note where the 2010 report's site averages for the same count disagree with the stated statewide figure by 1.5 or more. |
data_status | text | Always "as stated in the release". No release calls its own headcounts or totals preliminary; where a release uses the word, it refers to the results sheets. |
source_document | text | Type of source document. |
source_publisher | text | Who published the source document. |
source_url | URL | The official press release or community announcement (PDF). |
ocean-count-press-release-island-averages.csv
Island averages stated in the press releases, 2008 to 2012, kept out of ocean-count-island-averages.csv. One row per count per island named in the release. 51 rows.
| Column | Type | Meaning |
|---|---|---|
count_date | date (ISO 8601) | Date of the count. In 2010 the February count was held on March 6 (see schedule_note). |
season | integer (year) | Whale season (calendar year of the count). |
count_month | text | Calendar month of the count date. |
island | text | Island as named in the release, with the ʻokina. Includes Kahoʻolawe in 2008 and 2009. |
island_id | text | ASCII key for the island. |
avg_whales_per_15min_period | number | Average number of whales per 15-minute count period for the island, as stated in the release text. Empty when the release gives a note instead of a number. |
unit | text | Unit of avg_whales_per_15min_period. |
reported_precision | text | "whole number" or "N decimal(s)", from the stated value. Empty when there is no value. |
decimal_places | integer | Decimal places in the stated value. Empty when there is no value. |
release_note | text | Note the release gives for this island and count, such as "Did not participate in January count" or "Cancelled due to inclement weather". |
schedule_note | text | Our note when the count was held off its scheduled date, from the release. |
data_status | text | Always "as stated in the release": the 2008 to 2012 releases do not call their figures preliminary. |
source_document | text | Always "press release". |
source_publisher | text | Who published the release. |
source_url | URL | The release, usually an Internet Archive (Wayback Machine) copy of the sanctuary's page. |
ocean-count-report-island-averages.csv
Island means stated in the sanctuary's annual reports, 2002 to 2004. One row per count per island. 27 rows.
| Column | Type | Meaning |
|---|---|---|
count_date | date (ISO 8601) | Date of the count: the last Saturday of the month. The 2002 report prints the March date as "26 March", which was a Tuesday (see note). |
season | integer (year) | Whale season (calendar year of the count). |
count_month | text | January, February or March. |
island | text | Island as named in the report, with the ʻokina. |
island_id | text | ASCII key for the island. |
avg_whales_per_15min_period | number | Mean number of whales per site per 15-minute count period for the island, as stated in the annual report's text, with two decimals. |
standard_error | number | Standard error the report gives with that mean. |
unit | text | Unit of avg_whales_per_15min_period. |
reported_precision | text | "2 decimals" for every row. |
decimal_places | integer | Decimal places in the stated value. |
note | text | Our note: a figure the report repeats from another island or count, a date the report misprints, or the report's own warning about weather. We copy the printed value and do not correct it. |
data_status | text | Always "as stated in the annual report". |
source_document | text | The annual report: author, year, title and publisher as printed on its title page. |
source_publisher | text | Who the report was prepared for. |
source_quote | text | The sentence in the report that states the value. |
source_url | URL | The Internet Archive's copy of the report on the sanctuary's former site. |
ocean-count-report-site-averages.csv
Per-site averages from the sanctuary's 2010 report, 2002 to 2010. One row per site per count. 1,701 rows.
| Column | Type | Meaning |
|---|---|---|
count_date | date (ISO 8601) | Date of the count. The report labels counts by month only, so this is the last Saturday of that month, except February 2010, held on March 6 (tsunami warning). |
season | integer (year) | Whale season (calendar year of the count). |
count_month | text | The count as the report labels it: January, February or March (February 2010 was held on March 6). |
island | text | Island, with the ʻokina. |
island_id | text | ASCII key for the island. |
site_number | integer | Our site number (the program's numbering on its maps and sheets). Empty for two report sites we could not match to a site on our list. |
site_name | text | Our site name, with ʻokina and kahakō. |
report_site_number | integer | Site number as the report prints it. |
report_site_name | text | Site name as the report prints it. |
coastline | text | Coast the site faces, from our site list. |
avg_whales_per_15min_period | integer | The report's "average number of humpback whale sightings per 15-minute count period" for this site and count, printed as a whole number. Empty when the report prints NA. |
reported | boolean (true/false) | false when the report prints NA: in its words, a site closure, no data sheet for the site, or unreliable data. A 0 means no whales were seen. |
unit | text | Unit of avg_whales_per_15min_period. |
reported_precision | text | Always "whole number". |
note | text | Our note, for example where the report prints one site's values under another site too. |
data_status | text | Always "as printed in the report". |
source_document | text | The 2010 report, with author, title and date. |
source_publisher | text | Who the report was prepared for. |
source_url | URL | The Internet Archive's copy of the report part that holds the site's page. |
source_page | integer | Printed page number of the site's table in the report. |
ocean-count-site-periods.csv
Every site and 15-minute period on the 2007 to 2026 results sheets (59 counts). One row per count per site per period, as printed. 30,645 rows.
| Column | Type | Meaning |
|---|---|---|
count_date | date (ISO 8601) | Date of the count, from the results sheet. |
season | integer (year) | Whale season (calendar year of the count). |
count_month | text | January, February or March. The February 2010 count was held on March 6 (tsunami warning). |
island | text | Island, with the ʻokina. |
island_id | text | ASCII key for the island. |
sheet_row | integer | The row number the sheet prints for the site. The program renumbers some rows between seasons, so use site_number to follow a site across years. |
sheet_site_name | text | The site name as the sheet prints it. In the tables we typed in (2007 to 2011 and 2015 to 2025), the apostrophe or ʻokina is our best reading of the image. |
site_number | integer | Our site number (the program's numbering on its 2026 maps and sheets). Empty for ʻŌʻōkala (row 22 on Hawaiʻi Island through 2014, row 21 in 2009) and Paukaʻa Point (row 21 in 2007 and 2008), which have no current number. |
site_name | text | Our site name, with ʻokina and kahakō, the same on every row for a site. |
period_start | time (HH:MM, Hawaiʻi time) | Start of the 15-minute count period. The count has nine: one every half hour from 08:00 to 12:00. |
period_end | time (HH:MM) | End of the period, 15 minutes after the start. |
adults | integer | Adult whales the site recorded in the period, as printed. Empty when the site did not report the period. |
calves | integer | Calves the site recorded in the period, as printed. Empty when the site did not report it (and in one cell printed "3/P", see note). |
whales | integer | adults + calves: the count behind our reading of the printed island averages (see our methods page). |
reported | boolean (true/false) | false when the sheet prints no count for the period: the site was not used that month, was no longer a count site, or the cell reads N/A, rain, break or similar (the printed words are in note). |
excluded_from_our_averages | boolean (true/false) | true for four cells we read as misprints and leave out of our own site averages: at the corrected value, each table matches both the press release's day total and the sheet's island average. The printed values are kept. |
note | text | The sheet's own words for a cell or row with no count, or our note on a printed value. |
transcription | text | "text layer of the PDF" (2012 to 2014 and 2026) or "typed in by hand from the sheet's image" (2007 to 2011 and 2015 to 2025). |
source_url | URL | The results sheet (PDF): oceancount.org, or an Internet Archive copy of the sanctuary's former site. |
ocean-count-kahoolawe-periods-2003-2004.csv
Whales per 15-minute period at the one site counted on Kahoʻolawe each year, from the 2003 and 2004 annual reports. One row per count per period. 38 rows.
| Column | Type | Meaning |
|---|---|---|
count_date | date (ISO 8601) | Date of the count on Kahoʻolawe. The March 2003 count there was held on April 5. |
season | integer (year) | Whale season (calendar year of the count). |
count_month | text | The count as the report labels it: January, February or March. |
island | text | Always Kahoʻolawe. |
island_id | text | Always kahoolawe. |
period_start | time (HH:MM) | Start of the 15-minute period. Empty on the two rows for counts canceled because of weather. |
period_end | time (HH:MM) | End of the period. |
whales | integer | Whales counted in the period at the one site counted on Kahoʻolawe that year (Kui Kui in 2003; Kalialua, also printed Kealialuna, in 2004), as printed. The reports give no adult and calf split. Empty where the table prints a dash (in January 2004 the count there started at 9:00, so the first two periods are empty) or the count was canceled. |
note | text | The site name the report uses and anything the report says about the count. |
data_status | text | Always "as printed in the annual report". |
source_document | text | The annual report: author, year, title and publisher. |
source_publisher | text | Who the report was prepared for. |
source_table | text | The table and page, with its caption. |
source_url | URL | The Internet Archive's copy of the report. |
ocean-count-report-behavior-by-site-2002-2010.csv
Surface behavior per whale at each site, by season and month, from the sanctuary's 2010 report: breaches and slaps 2002 to 2010, dives 2006 to 2010. One row per site per season per month per behavior. 4,347 rows.
| Column | Type | Meaning |
|---|---|---|
season | integer (year) | Whale season (calendar year of the counts). |
count_month | text | January, February or March: the report's average over that month's count. |
island | text | Island, with the ʻokina. |
island_id | text | ASCII key for the island. |
site_number | integer | Our site number, matched through the report's census tables. Empty where we could not match the report's site. |
site_name | text | Our site name, with ʻokina and kahakō. |
report_site_number | integer | Site number as the report prints it. |
report_site_name | text | Site name as the report prints it (its spelling, uncorrected). |
behavior | text | breaches, slaps (pectoral fin, head or tail) or dives. The report gives dives from 2006 only. |
per_whale | number | The report's average for this behavior per whale: in its words, "the number of behavioral occurrences" divided "by the number of whales sighted in the particular time interval", averaged over the count. As printed, usually two decimals. Empty where the report prints NA. |
reported | boolean (true/false) | false where the report prints NA: in its words, "a site closure, the lack of a behavioral data sheet for the site or unreliable behavior data information". A 0 means no behavior was seen. |
unit | text | Unit of per_whale. |
note | text | Our note on a printed value, for example values the report repeats from another site. |
data_status | text | Always "as printed in the 2010 report". |
source_document | text | The 2010 report. |
source_page | integer | The report's printed page number. |
source_url | URL | The Internet Archive's copy of the report part (PDF). |
ocean-count-report-calves-by-period.csv
Calves and adults per 15-minute period for each island, from the 2010 report: Kauaʻi every count from 2002 to 2010, Oʻahu and Hawaiʻi Island in 2002 and 2007 to 2010, Kahoʻolawe in February and March 2008. One row per count per island per period, plus the report's total row. 590 rows.
| Column | Type | Meaning |
|---|---|---|
season | integer (year) | Whale season (calendar year of the count). |
count_month | text | January, February or March, as the report labels the count (the February 2010 count was held on March 6). |
island | text | Island, with the ʻokina. |
island_id | text | ASCII key for the island. |
period_start | time (HH:MM) | Start of the 15-minute period. Empty on the total row. |
period_end | time (HH:MM) | End of the period. Empty on the total row. |
row | text | "period" for one 15-minute period, "total" for the report's total over the morning. |
calves | integer | Calves sighted in the period at all the island's sites, as printed. |
adults | integer | Adults sighted, as printed. |
whales_as_printed | integer | The report's total whales for the period. Three tables print a total that is not calves plus adults or not the column sum; we keep the printed value and say so in note. |
pct_calves_as_printed | text | The report's percentage of calves, with its % sign. |
note | text | Our note on a printed value that does not add up. |
data_status | text | Always "as printed in the 2010 report". |
source_document | text | The 2010 report. |
source_page | integer | The report's printed page number. |
source_url | URL | The Internet Archive's copy of the report part (PDF). |
great-whale-count-maui-release-figures.csv
Pacific Whale Foundation's Great Whale Count on Maui, as stated in the joint releases, 2019 to 2026. One row per count. A separate program: never combine these with the Ocean Count figures. 23 rows.
| Column | Type | Meaning |
|---|---|---|
count_date | date (ISO 8601) | Date of the count. Since 2019 the Great Whale Count is held on the same Saturdays as the Sanctuary Ocean Count. |
season | integer (year) | Whale season (calendar year of the count). |
count_month | text | January, February or March. |
program | text | Always "Great Whale Count": Pacific Whale Foundation's shore count on Maui (and from 2024 one site on Lānaʻi). It is a separate program from the Sanctuary Ocean Count; these figures are never part of the Ocean Count columns in the other files. |
gwc_sites | integer (sites) | Number of Great Whale Count sites that collected data, as the release states it. Empty when the release does not say. |
gwc_sites_scope | text | What gwc_sites covers, as worded in the release: "Maui" or "Maui and Lānaʻi". |
gwc_busiest_period_count | integer | Whales (or "whale sightings", see gwc_busiest_period_unit) counted across the Great Whale Count sites in the busiest 15-minute period of the day. Empty when the release gives only a combined statewide figure for the busiest period (February 2024, February 2025 and all of 2026), and for January 2023, when one site reported and the release names no busiest period. |
gwc_busiest_period_unit | text | The release's own word for that figure: "whales" or "whale sightings". |
gwc_busiest_period | text | Start and end of the busiest period, Hawaiʻi time, as the release states it (two periods when it reports a tie). |
gwc_day_total_maui | integer (whale sightings) | Total for the whole day on Maui. From February 2023, each release adds after its total for all islands, of which this is a part, that the number "may represent duplicate sightings of the same whale". |
gwc_day_total_maui_sites | integer (sites) | Number of Maui sites behind gwc_day_total_maui when the release states it (March 2025 only). |
gwc_day_total_lanai | integer (whale sightings) | Total for the whole day at the Lānaʻi site, 2024 to 2026, when stated. |
note | text | Our note, for example when only one site could report. |
data_status | text | Always "as stated in the joint release". |
source_document | text | The joint Sanctuary Ocean Count and Great Whale Count press release or community announcement. |
source_publisher | text | Who published the release. |
source_quote | text | The release sentences the row's figures come from, separated by " | ". |
source_url | URL | The release (PDF). |
License and credit
Volunteers collected the observations, and the Hawaiian Islands Humpback Whale National Marine Sanctuary, a NOAA office, published them. We link to the official results sheets, press releases and reports on oceancount.org and NOAA’s site instead of copying them, so each row’s source_url points to the publisher’s own file, or to the Internet Archive’s copy where the sanctuary’s older page is gone.
USA.gov‘s guidance on government works says you cannot use government material in a way that implies endorsement. NOAA and the sanctuary have not reviewed or endorsed this site.
Our compilation, meaning the tidy tables, column names and the flags we derived, is released under Creative Commons Attribution 4.0. You can reuse and adapt it, including commercially, if you credit the sanctuary for the observations and sanctuaryoceancount.org for the compilation. The suggested citation and the limits of the numbers are on our methods page.
