This registration page may not work well in Internet Explorer. Please use a different browser to complete your registration.

Aquatic Facility Operator (AFO) Certification-Course & Exam

March 13, 2025 8:00 AM - 5:00 PM (EDT)

Description

Aquatic Facility Operator (AFO) Certification

Hosted by the Maryland Recreation and Parks Association



Dates:  March 1-12, 2025 (Virtual 6-10 hours self-paced) and March 13, 2025 (Full Day Onsite)

Onsite Location:   Arundel Olympic Swim Center (2690 Riva Rd, Annapolis, MD 21401)

Time:  Virtual (Self-paced from 6-10 hours) and Full Day Onsite (8am-5pm)

Fee:  $395 (includes course materials, online course, exam, continental breakfast, and lunch)


The Aquatic Facility Operator (AFO) certification provides the most comprehensive and up-to-date training on operations, mechanical systems, water chemistry, disinfection, safety and much more. AFO certification will help you or your staff better understand the entire pool system and run all types of aquatic facilities safely, efficiently and confidently.

Why Become an AFO?

  • Learn from expert instructors and network with other professionals from the field.
  • Join an elite group of more than 8,000 AFOs who have committed to advancing the field.
  • Reduce your agency’s liability and take your career to the next level.

Eligibility

AFO candidates should be at least 18 years of age. There are no education or experience prerequisites for taking the AFO exam.

How to Become an AFO? 

To become an AFO, you must successfully pass the AFO exam. The AFO exam is 50 questions, open-book and covers five core competencies: water chemistry and disinfection, mechanical systems and operations, health and safety, daily operations and maintenance. AFO certification is valid for five years.

Blended Learning Course and Exam

This course is a combination of the AFO Online Learning Course, a one-day in-person training with an AFO Instructor, and the exam is administered at the end of the in-person training. 

  • AFO Online Learning Course: This course provides in-depth instruction on all facets of aquatic facility operation and management. Including: Water Chemistry, Filtration, Disinfection, Water Testing and Treatment. It includes 6 modules = 7 hours of learning. Participants must complete the entire Online Learning Course and provide a certificate of completion prior to coming to the in-person training.
  • In-Person Instructor Training: This course provides in-depth instruction on all facets of aquatic facility operation and management. Including: Mechanical Systems, Facility Environment, Hot Tub and Special Case Pool Operation and Risk Management. 
  • AFO Exam: The exam is paper/pencil and administered by the AFO Instructor. Results are provided immediately. 
  • Registration is open and first come, first serve. Registration will remain open until Feb. 19 as long as space is available. 

All AFO Course options offer 1.5 CEU's.

Please Note:

  • This course and exam is available to MRPA members and nonmembers.
  • Registration closes on February 19, 2025.
  • Registration fees are due by February 19, 2025.
  • MRPA will strive to distribute books by February 28, 2025.
  • Please note any special testing accommodations during your registration. 


Questions?

  • Course Questions - Willa Suter  - Willa.Suter@pgparks.com 
  • Facility Questions - Noah Callahan - rpcall26@aacounty.org



Pricing

$395 (includes course materials, online course, exam, continental breakfast, and lunch) 

Contact Information

Name: Willa Suter
Phone: (202) 853-7232
Email: willa.suter@pgparks.com
Details: MRPA Office info@mdrpa.org 301-352-7203
We're sorry. No registrations are currently available. You may wish to contact the event organizer for assistance.
{{ vm.EventInfo.ErrorMessage }}

Select Registration Options

Edit
{{vm.regWarningMessage}}
{{vm.regAlertMessage}}

Exhibitor Opportunities

Name Price Att Qty
{{ et.Name }}
{{ et.IncludedAttendeesCount }} {{ et.AttendeeRegType.RemainingPerType }} Remaining {{ et.AttendeeRegType.RemainingPerType * -1 }} on Waiting List {{ et.AttendeeRegType.RemainingPerType * -1 }} Over Limit
{{ et.Remaining }} Remaining
Sold out

Attendee Registration Options Total Remaining: {{ vm.EventInfo.VacantSpotsPerEvent }}

Waiting List Available
{{ vm.stats.totalAttendeesCount }} Registered , {{ vm.OverallOverAmount() }} on Waiting List , {{ vm.OverallOverAmount() }} Over Limit
Name Price Qty
{{ rt.Name }}
{{ rt.IsMemberOnly ? ' (Members Only)' : '' }}
Limit: {{ rt.LimitPerPurchase }}
Included Attendees: {{ rt.AttendeesCountPerOneRegistration }}
{{rt.Price | currency }} {{rt.PriceAfterDiscount | currency }} {{ rt.Price | currency }}
{{ rt.RemainingPerType }} Remaining
{{ rt.RemainingPerType * -1 }} on Waiting List
{{ rt.RemainingPerType * -1 }} Over Limit

{{'[[Sponsorship]] Opportunities' | localizeString:'['}}

Name Price Att Qty
{{ st.Name }}
{{ st.IncludedAttendeesCount }} {{ st.AttendeeRegType.RemainingPerType }} Remaining {{ st.AttendeeRegType.RemainingPerType * -1 }} on Waiting List {{ st.AttendeeRegType.RemainingPerType * -1 }} Over Limit
{{ st.Remaining }} Remaining
Sold out
Continue

Registration Information

Edit

Exhibitor - {{er.Name}}

Exhibitor #{{ $index + 1 }}

Total: {{exhibitor.TotalPrice | currency}} {{ exhibitor.IsBenefit ? "- Included as a Benefit" : exhibitor.IsDiscounted ? "- Discounts have been applied" : ""}}
Exhibitor Directory
Primary Contact
Booth Information
Additional Information
Additional Items

Attendee - {{er.Name}}

{{ att.getAttendeeTerm(vm.EventSettings.AdditionalAttendeesTerm, $index) }} #{{ att.getAttendeeIndexDisplay(vm.EventSettings.AdditionalAttendeesTerm, $index) }}

Total: {{att.TotalPrice | currency}} {{att.DiscountMessage | localizeString:'['}}
A No Show fee is being assessed for {{fee.EventName}} on {{fee.EventStartLocalTimeString}}.

Address


Phone

Additional Information
Event Sessions

{{slot.Name}}

{{$select.selected.SessionName}}
(full)
{{slot.SelectedSession.SessionDescription + (slot.HasFees ? " (Price: " + (slot.PriceTotal | currency) +")" : "")}}

Additional Items

{{'[[Sponsorship+]]' | localizeString:'['}} - {{er.Name}}

{{'[[Sponsor]]' | localizeString:'['}} #{{ $index + 1 }}

Total: {{sponsor.Price | currency}}
Continue

Additional Items

Edit

{{(vm.EventInfo.Terms.Donation || "Fundraising") + " Opportunities"}}

Campaign Name Item Description Amount
{{item.CampaignName}} {{item.Description + (item.ShowMinimumPrice && item.MinimumPrice ? " (Min: " + item.MinimumPrice + ")" : "")}}
Continue

Complete Registration

Edit

Terms & Conditions

No Show Policy

{{ vm.EventInfo.EventSettings.NoShowPolicy }}

Enter Promo Code

This event is synced to a webinar so no confirmation email will be sent from GrowthZone.

Thank you to our {{'[[Sponsor+]]' | localizeString:'['}}