{"id":328455,"date":"2026-07-06T19:43:40","date_gmt":"2026-07-06T19:43:40","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sailing-flow\/"},"modified":"2026-07-06T20:31:56","modified_gmt":"2026-07-06T20:31:56","slug":"burgee","status":"publish","type":"plugin","link":"https:\/\/pe.wordpress.org\/plugins\/burgee\/","author":23518769,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.6.4","stable_tag":"2.6.4","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Burgee \u2013 Race Scoring for Sailing Clubs","header_author":"Nathaniel G. Beighley","header_description":"Race scoring and results publishing for sailing clubs: manage seasons, series, boats, and races, score PHRF handicap racing with the World Sailing Low-Point system, and publish schedules, scratch sheets, results, and series standings.","assets_banners_color":"629dae","last_updated":"2026-07-06 20:31:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/getburgee.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":55,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"2.6.4":{"tag":"2.6.4","author":"vortexnetworking","date":"2026-07-06 20:31:56"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3598285,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3598285,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3598285,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3598285,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3598285,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.6.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3598302,"resolution":"1","location":"assets","locale":"","width":1280,"height":876},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3598302,"resolution":"2","location":"assets","locale":"","width":1280,"height":948},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3598302,"resolution":"3","location":"assets","locale":"","width":1280,"height":969},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3598302,"resolution":"4","location":"assets","locale":"","width":1280,"height":789},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3598302,"resolution":"5","location":"assets","locale":"","width":1280,"height":674},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3598302,"resolution":"6","location":"assets","locale":"","width":1280,"height":830},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3598302,"resolution":"7","location":"assets","locale":"","width":1280,"height":1000},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3598302,"resolution":"8","location":"assets","locale":"","width":1280,"height":694}},"screenshots":{"1":"Season standings for a Racing Series \u2014 one scoring column per regatta, with dropped races shown as (\u2212n). Scored on PHRF corrected time using the World Sailing Low-Point system.","2":"Single-race results by division: finish, elapsed, and corrected times with Low-Point scores.","3":"Scratch sheet \u2014 the registered fleet for a Racing Series, grouped by division with PHRF ratings.","4":"The season race schedule; completed races link to full corrected-time results.","5":"Enter Results \u2014 per-division start time and course distance plus each boat's finish time; corrected times and points are recalculated on save.","6":"Racing Series settings \u2014 Time-on-Distance or Time-on-Time, the RRS A5.2\/A5.3 penalty rule, and a tiered throwout schedule.","7":"Admin dashboard with an About panel and a Getting Started checklist.","8":"Central boat registry with type, sail number, default PHRF, and owner."}},"plugin_section":[],"plugin_tags":[270391,21070,270392,188121,42698],"plugin_category":[],"plugin_contributors":[78154,270393],"plugin_business_model":[],"class_list":["post-328455","plugin","type-plugin","status-publish","hentry","plugin_tags-phrf","plugin_tags-racing","plugin_tags-regatta","plugin_tags-sailing","plugin_tags-scoring","plugin_contributors-freemius","plugin_contributors-vortexnetworking","plugin_committers-vortexnetworking"],"banners":{"banner":"https:\/\/ps.w.org\/burgee\/assets\/banner-772x250.png?rev=3598285","banner_2x":"https:\/\/ps.w.org\/burgee\/assets\/banner-1544x500.png?rev=3598285","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/burgee\/assets\/icon.svg?rev=3598285","icon":"https:\/\/ps.w.org\/burgee\/assets\/icon.svg?rev=3598285","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/burgee\/assets\/screenshot-1.png?rev=3598302","caption":"Season standings for a Racing Series \u2014 one scoring column per regatta, with dropped races shown as (\u2212n). Scored on PHRF corrected time using the World Sailing Low-Point system."},{"src":"https:\/\/ps.w.org\/burgee\/assets\/screenshot-2.png?rev=3598302","caption":"Single-race results by division: finish, elapsed, and corrected times with Low-Point scores."},{"src":"https:\/\/ps.w.org\/burgee\/assets\/screenshot-3.png?rev=3598302","caption":"Scratch sheet \u2014 the registered fleet for a Racing Series, grouped by division with PHRF ratings."},{"src":"https:\/\/ps.w.org\/burgee\/assets\/screenshot-4.png?rev=3598302","caption":"The season race schedule; completed races link to full corrected-time results."},{"src":"https:\/\/ps.w.org\/burgee\/assets\/screenshot-5.png?rev=3598302","caption":"Enter Results \u2014 per-division start time and course distance plus each boat's finish time; corrected times and points are recalculated on save."},{"src":"https:\/\/ps.w.org\/burgee\/assets\/screenshot-6.png?rev=3598302","caption":"Racing Series settings \u2014 Time-on-Distance or Time-on-Time, the RRS A5.2\/A5.3 penalty rule, and a tiered throwout schedule."},{"src":"https:\/\/ps.w.org\/burgee\/assets\/screenshot-7.png?rev=3598302","caption":"Admin dashboard with an About panel and a Getting Started checklist."},{"src":"https:\/\/ps.w.org\/burgee\/assets\/screenshot-8.png?rev=3598302","caption":"Central boat registry with type, sail number, default PHRF, and owner."}],"raw_content":"<!--section=description-->\n<p>Burgee is a complete race-management toolkit for sailing clubs that run PHRF\nhandicap racing.<\/p>\n\n<ul>\n<li>Organize racing as Season \u2192 Series \u2192 Race.<\/li>\n<li>Maintain a managed list of divisions (e.g. Spinnaker, Jib &amp; Main) and assign\neach boat a division and PHRF rating per season \u2014 boats can change divisions\nbetween seasons without losing their identity or history.<\/li>\n<li>Enter finish times and let the plugin calculate elapsed and corrected times\nusing either Time-on-Distance or Time-on-Time, and assign points using the\nWorld Sailing Low-Point system. Choose the RRS A5.2 or A5.3 penalty rule per\nseries, independent of the correction method. Results remain fully editable\nafter submission.<\/li>\n<li>Series standings with configurable throwouts (\"drop the worst N scores once M\nraces have been sailed\") and RRS Appendix A8 tiebreaks.<\/li>\n<li>All scoring \u2014 both correction methods, A5.2\/A5.3, and throwouts \u2014 is free.<\/li>\n<li>Responsive, mobile-friendly public output via shortcodes.<\/li>\n<\/ul>\n\n<h3>Shortcodes<\/h3>\n\n<ul>\n<li><code>[wpsf_schedule]<\/code> \u2014 season race schedule.<\/li>\n<li><code>[wpsf_scratch_sheet]<\/code> \u2014 the season's registered boats by division.<\/li>\n<li><code>[wpsf_series_title]<\/code> \u2014 a standings breadcrumb heading.<\/li>\n<li><code>[wpsf_race_results]<\/code> \u2014 results of a single race.<\/li>\n<li><code>[wpsf_race_details]<\/code> \u2014 course\/conditions detail for a single race.<\/li>\n<li><code>[wpsf_standings]<\/code> \u2014 full series standings grid.<\/li>\n<\/ul>\n\n<p>Legacy shortcode tags from version 1.x ([SeasonSchedule], [ScratchSheet],\n[ShowSeriesTitle], [RaceResults], [RaceDetails], [show_series_standings]) remain\nregistered for backward compatibility.<\/p>\n\n<!--section=changelog-->\n<h4>2.6.4<\/h4>\n\n<ul>\n<li>Housekeeping: plugin-header cleanup for the WordPress.org directory (removed a\nduplicate URI from the header). No functional changes.<\/li>\n<\/ul>\n\n<h4>2.6.3<\/h4>\n\n<ul>\n<li>Fix: the result-email setup now only appears with a Pro license. The boat email\naddress and \"email race results to this boat\" option, the additional-recipients\nlist, and the unsubscribe manager were showing in the free edition even though\nsending results is a Pro feature. They are now hidden without a license, and any\nsaved addresses are preserved (never blanked) when settings or a boat are saved.<\/li>\n<\/ul>\n\n<h4>2.6.2<\/h4>\n\n<ul>\n<li>Fix: a stand-alone race no longer shows divisions that have no boats entered.\nPer-division start times and course distances are now scoped to the divisions\nactually racing, on both the admin entry screen and the public race view.<\/li>\n<li>New: result and cancellation emails can now be sent for stand-alone races, drawing\nrecipients from the race's own entries (plus your Settings recipients), the same way\nseries races do. (Pro.)<\/li>\n<\/ul>\n\n<h4>2.6.1<\/h4>\n\n<ul>\n<li>Fix: the admin menu icon is now centered in the WordPress sidebar.<\/li>\n<li>Internationalization and coding-standard cleanups for WordPress.org. No changes\nto your data, settings, or scoring.<\/li>\n<\/ul>\n\n<h4>2.6.0<\/h4>\n\n<ul>\n<li>New: Stand-alone scored races. Score a one-off race that belongs to no series or\nregatta \u2014 pick its boats from your registry, set each one's division\/PHRF\/sail\nnumber, enter finish times, and publish a results page. It is scored\nindependently and never appears in any standings. All scoring \u2014 including\nTime-on-Time and RRS A5.3 \u2014 is free.<\/li>\n<\/ul>\n\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>New: Pro licensing via Freemius. Result-email notifications are the only Pro\nfeature; all scoring and standings \u2014 both correction methods, A5.2\/A5.3, and\nthrowouts \u2014 stay free. Your settings are never deleted \u2014 Pro features reactivate\ninstantly on existing data when a license is active.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Throwouts: a Racing Series can now define a tiered throwout schedule \u2014 e.g.\ndrop 1 after 8 races, 2 after 10 \u2014 instead of a single threshold. Existing\nsingle-step settings keep working unchanged.<\/li>\n<li>Scoring: added an optional Time-on-Time method per Racing Series\n(Corrected = Elapsed x A \/ (B + PHRF), defaults A=650 \/ B=550, editable).\nTime-on-Distance remains the default and is unaffected.<\/li>\n<li>Scoring: added an optional RRS A5.3 toggle per Racing Series. When on, a boat\nthat came to the starting area but did not finish is scored against the number\nof boats that came (entries minus DNC) rather than the full entry list. Off by\ndefault (standard A5.2).<\/li>\n<li>Schema changes now also apply automatically after an in-place update, not only\non reactivation.<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Terminology: \"Race Cup\" is now called \"Regatta\" throughout the admin and public\noutput, matching common sailing-club usage. The standings shortcode accepts\nregatta=\"ID\" (and ?wpsf_regatta=); the previous cup=\"ID\" \/ ?wpsf_cup= keep\nworking, so existing pages and links are unaffected.<\/li>\n<li>Scoring: added the standard RRS scoring abbreviations OCS, RET, NSC, RAF, and DNE\nalongside the existing DNF\/DNS\/DNC\/DSQ. All are scored under RRS 2025-2028 rule\nA5.2 (entries + 1).<\/li>\n<li>Scoring: a DNE (disqualification, not excludable) is now never dropped by a\nseries throwout, as the rules require. Ordinary DSQ scores remain excludable.<\/li>\n<li>Docs: refreshed the in-code scoring rule citations to the RRS 2025-2028 edition\n(Low Point A4, non-finishers A5.2, race-tie averaging A7, series tiebreaks A8).<\/li>\n<li>Mobile: on the single-race results view, boat names are now bold and every other\nboat is lightly shaded, so boats are easier to tell apart when stacked. On the\nseries and regatta standings, the score columns now scroll horizontally within a\npanel (Place and Boat stay frozen) instead of being crammed together.<\/li>\n<li>Schedule: a cancelled race now shows its notes (the reason for cancellation) in a\ntooltip on hover or focus.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>New: Result and cancellation emails now include an unsubscribe link (and\nList-Unsubscribe headers for mail-client one-click unsubscribe). Clicking the\nin-email link opens a confirmation page with a button, so link prefetchers and\nscanners can't unsubscribe anyone by accident. Each email is sent to its\nrecipient individually so the link removes only that address. Unsubscribed\naddresses are skipped on future sends and can be reviewed and re-subscribed\nfrom the Settings screen. Result emails are no longer copied to the site admin\nunless the admin address is itself a subscribed recipient.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>New: \"Clear Results\" on the Enter Results screen \u2014 a confirmed do-over that\ndeletes all results and per-division parameters for a race and resets its\nconditions, notes, and status back to Scheduled. The race itself (name, date,\nseries\/cup) is kept.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fix: Cancelled races entered from \"Enter Results\" were saved as Completed\nbecause the race-level Status field collided with the per-boat status fields,\nso cancelled races were scored (everyone at 0 points), polluted series and\nseason standings, and were not shown as cancelled on the schedule. The\nrace-level field is now distinct, so cancelled races save correctly, are not\nscored, and show as cancelled.<\/li>\n<li>Cancelled races: when the email option is checked, a cancellation notice\n(including the race notes) is now sent instead of a results table.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete rewrite: prepared statements throughout, nonce + capability checks on\nall admin actions, escaped output, prefixed tables, full CRUD for seasons,\ndivisions, boats, registrations, series, and races, editable results, per-series\nthrowouts, and responsive frontend output.<\/li>\n<\/ul>","raw_excerpt":"Race scoring for sailing clubs: manage seasons, series, and boats, score PHRF handicap racing, and publish schedules, results, and standings.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/328455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=328455"}],"author":[{"embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vortexnetworking"}],"wp:attachment":[{"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=328455"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=328455"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=328455"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=328455"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=328455"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=328455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}