Independent site, not affiliated with NOAA or the Hawaiian Islands Humpback Whale National Marine Sanctuary. Register and find official results at oceancount.org.

Download the Ocean Count data

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.

ColumnTypeMeaning
count_datedate (ISO 8601, YYYY-MM-DD)Date of the count, as printed in the results sheet's "Preliminary Data" title.
seasoninteger (year)Whale season the count belongs to. Counts run January to March, so the season is the calendar year of the count.
count_monthtextJanuary, February or March.
islandtextIsland name as the sanctuary writes it, with the ʻokina (Hawaiʻi means Hawaiʻi Island).
island_idtextASCII key for the island: kauai, oahu, molokai, hawaii.
avg_whales_per_15min_periodnumberThe 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.
unittextUnit of avg_whales_per_15min_period: humpback whales per 15-minute count period, island average, as published.
reported_precisiontextHow 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_placesintegerNumber of decimal places in the printed value (0, 1 or 2).
sheet_reports_decimalsboolean (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_statustextAlways "preliminary": every results sheet is titled "Preliminary Data".
source_documenttextType of source document.
source_publishertextWho published the source document.
source_urlURLThe official results sheet (PDF) the value was taken from.

ocean-count-count-summary.csv

One row per count, from the press releases. 44 rows.

ColumnTypeMeaning
count_datedate (ISO 8601)Date of the count.
seasoninteger (year)Whale season (calendar year of the count).
count_monthtextJanuary, February or March.
participantsinteger (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_roletext"volunteers", or "site leaders" for the COVID-era counts when only trained site leaders took part.
participants_qualifiertextHow the release states the headcount: "more than", "about", or empty when it gives the number plainly.
participants_include_maui_great_whale_countbooleantrue when the headcount sentence also covers the Great Whale Count on Maui (and Lānaʻi in later years).
soc_sitesinteger (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_whalesinteger (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_starttime (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_endtime (HH:MM, Hawaiʻi time)End of that busiest 15-minute period, as the release states it.
day_total_whales_kauaiinteger (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_oahuinteger (whale sightings)Same as day_total_whales_kauai, for Oʻahu.
day_total_whales_molokaiinteger (whale sightings)Same as day_total_whales_kauai, for Molokaʻi.
day_total_whales_hawaiiinteger (whale sightings)Same as day_total_whales_kauai, for Hawaiʻi Island.
statewide_avg_whales_per_site_per_15minnumberAverage 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_notetextOur note where the 2010 report's site averages for the same count disagree with the stated statewide figure by 1.5 or more.
data_statustextAlways "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_documenttextType of source document.
source_publishertextWho published the source document.
source_urlURLThe 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.

ColumnTypeMeaning
count_datedate (ISO 8601)Date of the count. In 2010 the February count was held on March 6 (see schedule_note).
seasoninteger (year)Whale season (calendar year of the count).
count_monthtextCalendar month of the count date.
islandtextIsland as named in the release, with the ʻokina. Includes Kahoʻolawe in 2008 and 2009.
island_idtextASCII key for the island.
avg_whales_per_15min_periodnumberAverage 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.
unittextUnit of avg_whales_per_15min_period.
reported_precisiontext"whole number" or "N decimal(s)", from the stated value. Empty when there is no value.
decimal_placesintegerDecimal places in the stated value. Empty when there is no value.
release_notetextNote the release gives for this island and count, such as "Did not participate in January count" or "Cancelled due to inclement weather".
schedule_notetextOur note when the count was held off its scheduled date, from the release.
data_statustextAlways "as stated in the release": the 2008 to 2012 releases do not call their figures preliminary.
source_documenttextAlways "press release".
source_publishertextWho published the release.
source_urlURLThe 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.

ColumnTypeMeaning
count_datedate (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).
seasoninteger (year)Whale season (calendar year of the count).
count_monthtextJanuary, February or March.
islandtextIsland as named in the report, with the ʻokina.
island_idtextASCII key for the island.
avg_whales_per_15min_periodnumberMean 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_errornumberStandard error the report gives with that mean.
unittextUnit of avg_whales_per_15min_period.
reported_precisiontext"2 decimals" for every row.
decimal_placesintegerDecimal places in the stated value.
notetextOur 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_statustextAlways "as stated in the annual report".
source_documenttextThe annual report: author, year, title and publisher as printed on its title page.
source_publishertextWho the report was prepared for.
source_quotetextThe sentence in the report that states the value.
source_urlURLThe 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.

ColumnTypeMeaning
count_datedate (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).
seasoninteger (year)Whale season (calendar year of the count).
count_monthtextThe count as the report labels it: January, February or March (February 2010 was held on March 6).
islandtextIsland, with the ʻokina.
island_idtextASCII key for the island.
site_numberintegerOur 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_nametextOur site name, with ʻokina and kahakō.
report_site_numberintegerSite number as the report prints it.
report_site_nametextSite name as the report prints it.
coastlinetextCoast the site faces, from our site list.
avg_whales_per_15min_periodintegerThe 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.
reportedboolean (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.
unittextUnit of avg_whales_per_15min_period.
reported_precisiontextAlways "whole number".
notetextOur note, for example where the report prints one site's values under another site too.
data_statustextAlways "as printed in the report".
source_documenttextThe 2010 report, with author, title and date.
source_publishertextWho the report was prepared for.
source_urlURLThe Internet Archive's copy of the report part that holds the site's page.
source_pageintegerPrinted 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.

ColumnTypeMeaning
count_datedate (ISO 8601)Date of the count, from the results sheet.
seasoninteger (year)Whale season (calendar year of the count).
count_monthtextJanuary, February or March. The February 2010 count was held on March 6 (tsunami warning).
islandtextIsland, with the ʻokina.
island_idtextASCII key for the island.
sheet_rowintegerThe 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_nametextThe 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_numberintegerOur 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_nametextOur site name, with ʻokina and kahakō, the same on every row for a site.
period_starttime (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_endtime (HH:MM)End of the period, 15 minutes after the start.
adultsintegerAdult whales the site recorded in the period, as printed. Empty when the site did not report the period.
calvesintegerCalves 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).
whalesintegeradults + calves: the count behind our reading of the printed island averages (see our methods page).
reportedboolean (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_averagesboolean (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.
notetextThe sheet's own words for a cell or row with no count, or our note on a printed value.
transcriptiontext"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_urlURLThe 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.

ColumnTypeMeaning
count_datedate (ISO 8601)Date of the count on Kahoʻolawe. The March 2003 count there was held on April 5.
seasoninteger (year)Whale season (calendar year of the count).
count_monthtextThe count as the report labels it: January, February or March.
islandtextAlways Kahoʻolawe.
island_idtextAlways kahoolawe.
period_starttime (HH:MM)Start of the 15-minute period. Empty on the two rows for counts canceled because of weather.
period_endtime (HH:MM)End of the period.
whalesintegerWhales 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.
notetextThe site name the report uses and anything the report says about the count.
data_statustextAlways "as printed in the annual report".
source_documenttextThe annual report: author, year, title and publisher.
source_publishertextWho the report was prepared for.
source_tabletextThe table and page, with its caption.
source_urlURLThe 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.

ColumnTypeMeaning
seasoninteger (year)Whale season (calendar year of the counts).
count_monthtextJanuary, February or March: the report's average over that month's count.
islandtextIsland, with the ʻokina.
island_idtextASCII key for the island.
site_numberintegerOur site number, matched through the report's census tables. Empty where we could not match the report's site.
site_nametextOur site name, with ʻokina and kahakō.
report_site_numberintegerSite number as the report prints it.
report_site_nametextSite name as the report prints it (its spelling, uncorrected).
behaviortextbreaches, slaps (pectoral fin, head or tail) or dives. The report gives dives from 2006 only.
per_whalenumberThe 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.
reportedboolean (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.
unittextUnit of per_whale.
notetextOur note on a printed value, for example values the report repeats from another site.
data_statustextAlways "as printed in the 2010 report".
source_documenttextThe 2010 report.
source_pageintegerThe report's printed page number.
source_urlURLThe 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.

ColumnTypeMeaning
seasoninteger (year)Whale season (calendar year of the count).
count_monthtextJanuary, February or March, as the report labels the count (the February 2010 count was held on March 6).
islandtextIsland, with the ʻokina.
island_idtextASCII key for the island.
period_starttime (HH:MM)Start of the 15-minute period. Empty on the total row.
period_endtime (HH:MM)End of the period. Empty on the total row.
rowtext"period" for one 15-minute period, "total" for the report's total over the morning.
calvesintegerCalves sighted in the period at all the island's sites, as printed.
adultsintegerAdults sighted, as printed.
whales_as_printedintegerThe 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_printedtextThe report's percentage of calves, with its % sign.
notetextOur note on a printed value that does not add up.
data_statustextAlways "as printed in the 2010 report".
source_documenttextThe 2010 report.
source_pageintegerThe report's printed page number.
source_urlURLThe 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.

ColumnTypeMeaning
count_datedate (ISO 8601)Date of the count. Since 2019 the Great Whale Count is held on the same Saturdays as the Sanctuary Ocean Count.
seasoninteger (year)Whale season (calendar year of the count).
count_monthtextJanuary, February or March.
programtextAlways "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_sitesinteger (sites)Number of Great Whale Count sites that collected data, as the release states it. Empty when the release does not say.
gwc_sites_scopetextWhat gwc_sites covers, as worded in the release: "Maui" or "Maui and Lānaʻi".
gwc_busiest_period_countintegerWhales (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_unittextThe release's own word for that figure: "whales" or "whale sightings".
gwc_busiest_periodtextStart and end of the busiest period, Hawaiʻi time, as the release states it (two periods when it reports a tie).
gwc_day_total_mauiinteger (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_sitesinteger (sites)Number of Maui sites behind gwc_day_total_maui when the release states it (March 2025 only).
gwc_day_total_lanaiinteger (whale sightings)Total for the whole day at the Lānaʻi site, 2024 to 2026, when stated.
notetextOur note, for example when only one site could report.
data_statustextAlways "as stated in the joint release".
source_documenttextThe joint Sanctuary Ocean Count and Great Whale Count press release or community announcement.
source_publishertextWho published the release.
source_quotetextThe release sentences the row's figures come from, separated by " | ".
source_urlURLThe 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.