Confirm your category. Structural = the commercial pest-control route; add Ornamental & Turf or Agricultural as needed. Each category = its own exam.
Order study materials. WSU Extension (extension.wsu.edu) + the EM019 manual. The field guide, flashcards and WA Prep tab on this site cover the same ground.
Schedule the exam through WSDA at (360) 902-2020. The core (general) exam is required first; category exams after.
Pay the fee. $33 exam + $73 license. Bring ID.
Sit the exam. 50–100 multiple-choice, 120 minutes, closed book, 70% to pass.
After passing — your WSDA license is issued; renew every 5 years with 40 CEUs.
Keep records. Restricted-use pesticide applications must be recorded for 2 years.
One-pager · WSDA (360) 902-2020 · agr.wa.gov · Olympia WA 98504
'''
# insert the checklist before the WA quick test in the v-wa render
s = s.replace(
"
(function(){ var b=document.getElementById('wa-print'); if(b) b.addEventListener('click', function(){ window.print(); }); })();
'''
# ============ 3. DISTINGUISH-THESE-PESTS ID section ============
DIST = r'''
Distinguish these pests (exam favorites)
Ant vs. termite
Wings — ant: front pair longer than hind; termite: all four equal.
Drywood — dry wood only, kicks out hard 6-sided pellets (no mud).
Hobo spider vs. giant house spider
Legs — hobo: shorter, ~1.5× body; giant house: very long, ~2× body.
Markings — hobo: chevron pattern on abdomen; giant house: plainer.
Bite — hobo's "necrotic bite" is a disproven myth; neither is medically significant.
German vs. Oriental vs. American roach
German — small (~½"), two dark stripes on pronotum, indoor, fastest breeder.
Oriental — dark, shiny, ~1", damp basements/sewers, male wings short.
American — largest (~1½"), reddish-brown, sewers/basements, can fly.
Western black widow vs. false widow
Hourglass — widow: red hourglass on the underside (not the top).
False widow — brownish, no red hourglass.
Only the female widow is dangerously venomous; males are tiny and harmless.
'''
# inject DIST into the v-wa render, after the checklist (or before quick test)
if 'wa-checklist' in s and 'distinguish these pests' not in s.lower():
# inject after the checklist block
s = s.replace('