Interactive visualization of saltwater fishing survey data
Loading data from database...
🔍 Filters
ℹ️
Ready
📅
Date Range
📊
Chart View
🗺️
Catch Area
(0 selected)
🐟
Species
(0 selected)
0
Total Records
0
Total Anglers
0
Total Chinook
0
Total Coho
-
Year Range
Catch Areas Map
ℹ️
Click any area on the map to filter data to that area. Selected areas are highlighted with orange fill and amber borders.
💡 Tip: Click any marine area to filter data
Catch Trends Over Time
ℹ️
Total Catch by Species
ℹ️
Top 10 Catch Areas - Total Catch
ℹ️
Monthly Catch Distribution
ℹ️
Success Window - When Fishing is Good but Not Crowded
ℹ️
1Timespan
2Species
3Location
4Weighting
5Results
Planning Budget
ℹ️
0 / 500
×
📚 Dashboard Help Guide
📺 New to the Dashboard? Watch Video Tutorials!
Learn how to use the dashboard with our comprehensive video series covering filters, metrics, Trip Planner, and more.
📊 Metrics Explained
Total Catch
The absolute number of fish caught. Shows overall production volume for an area or time period.
CPUE (Catch Per Unit Effort)
Fish caught per angler interviewed. Formula: Total Fish ÷ Total Anglers. Higher values indicate more efficient fishing. Example: 7.5 CPUE means each angler averaged 7.5 fish.
Skunk Probability
Percentage of fishing parties (boats or shore groups) that caught nothing. Formula: (Zero-Catch Surveys ÷ Total Surveys) × 100. Lower is better! Example: 12% means 88% of fishing parties caught at least one fish.
Success Rate
Percentage of fishing parties (boats or shore groups) that caught at least one fish. Formula: 1 - Skunk Rate. Unit: Per fishing party, not per individual angler. Example: 88% means 88 out of 100 fishing parties caught something (12% got skunked).
Hotness Score
Composite metric that combines total catch volume, catch rate (CPUE), and success rate into one score. Areas with high values across all three metrics rank highest. Perfect for finding the overall best fishing spots.
Success Window
Time periods when catch rates are high but crowds are low. Look for gaps where the red line (success) is high and the purple area (crowds) is low. These are prime fishing opportunities!
📈 Charts Guide
Catch Trends Over Time
Shows how catches have changed over time for each species. Use to identify seasonal patterns or long-term trends.
Total Catch by Species
Pie chart showing proportion of each species caught. Quickly see which species dominate the fishery.
Top 10 Catch Areas
Compare fishing areas by four metrics (use the icon buttons to switch):
Total Catch (∑): Find most productive areas (highest volume)
Catch Rate (⚡): Find most efficient areas (best success per angler)
Skunk % (🦨): Find most reliable areas (lowest chance of catching nothing)
Hotness (🔥): Find overall best spots (composite score of volume, rate, and success)
Tip: An area might rank #1 in Total Catch but #8 in Catch Rate - meaning lots of fish being caught and it's crowded!
Catch Distribution
Shows species catches broken down by time period. Adapts to your Time Granularity selection (Yearly/Monthly/Weekly/Daily).
Success Window
Dual-axis chart revealing when fishing is good but not crowded:
Red Line (left axis): Catch rate - higher is better
Purple Area (right axis): Total anglers - shows crowd size
The Sweet Spot: Red line peaks above purple area = excellent fishing with few competitors!
Fishing Spots Layer
The map includes a "Fishing Spots" toggle that shows popular salmon fishing locations throughout Puget Sound. These are well-known productive spots where anglers frequently target salmon.
Toggle on/off: Use the checkbox next to the map title to show or hide fishing spots
Zoom to see names: Spot labels only appear at zoom level 12 or closer (zoomed in)
Click for details: Click any marker to see the spot name in a tooltip
Use in Trip Planner: Many of these spots have optimal fishing time predictions (see Optimal Fishing Times section below)
🎛️ Filters Guide
Year Range
Select start and end years to analyze specific time periods. All charts update to show only data within your selected range.
Catch Area
Filter to specific marine areas. Multi-select supported. The map highlights selected areas in red. Tip: Click an area on the map to auto-select it!
Species
Choose which species to include in analysis. All charts recalculate to show only selected species. Useful for species-specific planning.
Time Granularity
Changes how time-based charts group data:
Yearly: See long-term trends
Monthly: Identify best months (default)
Weekly: Fine-tune timing within a season
Daily: Day-by-day detail (best for short date ranges)
Reset Button
Clears all filters and returns to default view. Your filter preferences are saved automatically and restored when you return!
💡 Use Case Examples
Finding the Overall Best Fishing Spots (Quick Method)
Click the Hotness (🔥) button on Top 10 Areas chart
View areas ranked by composite score (volume + efficiency + reliability)
Top-ranked areas excel across all metrics
Result: Best all-around fishing spots without comparing multiple views!
Finding the Best Chinook Fishing
Set Species filter to Chinook only
Click Hotness (🔥) to see best overall Chinook areas
Or use Catch Rate (⚡) mode for highest efficiency
Check Success Window to find when Chinook rates peak
Result: Best area + best time for Chinook!
Avoiding Crowds
View Top 10 Areas in Skunk % (🦨) mode
Find areas with low skunk probability (high success)
Check Success Window chart
Look for periods where red line is high but purple area is low
Result: Good fishing without the crowds!
Planning a Multi-Day Trip
Set Time Granularity to Daily
Set date range to your trip dates
View Catch Distribution to see daily patterns
Check Success Window for best days
Result: Schedule fishing on highest-success days!
Tip: Or switch to the Trip Planner for personalized recommendations based on your dates and priorities!
Comparing This Year vs Last Year
Set Year Range to current year only
Note the key metrics (total catch, CPUE)
Set Year Range to last year only
Compare the differences
Result: See if fishing is better/worse this season!
🧭 Trip Planner Guide
Trip Planner is a guided 5-step wizard that analyzes your preferences and recommends personalized fishing opportunities. Use it when planning a specific trip with set dates and priorities. Switch to Trip Planner mode using the toggle in the dashboard header.
The 5-Step Wizard
Step 1: Pick Timeframe
Add one or more date ranges (e.g., "July 4-10")
Optional labels for each timespan (e.g., "Summer Vacation")
Set fishing window size (default: 3 days) - subdivides date ranges into smaller periods
Example: 14-day vacation with 3-day windows = 5 possible fishing windows
Step 2: Select Species
Individual Mode: Select species in priority order (drag to reorder)
Custom Groups Mode: Create up to 3 groups combining multiple species (e.g., "All Salmon")
Groups help reduce planning budget by treating multiple species as one option
Higher-priority species/groups get more weight in recommendations
Step 3: Choose Location
Select marine areas in priority order
List View: Select from alphabetical area list with drag-to-reorder
Map View: Click areas on interactive map to add them
Higher-priority areas get more weight in recommendations
Tip: Put your non-negotiable preference first (e.g., if dates are fixed, prioritize Species or Location)
Step 5: Your Recommendations
Three personalized recommendation cards tailored to your priorities
Each card shows: Species, Location, Timeframe, key metrics (Catch Rate, Success Rate, Avg Anglers, Total Catch)
Overall Score (0-100) and Confidence Level (based on sample size)
Click "View Detailed Data" to jump to Explorer with that recommendation's filters pre-loaded
Understanding Recommendations
🎯 Top Priority Match
Best option for your highest-weighted preference. Optimizes for what you care about most.
⚖️ Balanced Tradeoff
Good compromise across all factors. Solid performance in species, location, and timeframe.
💎 Best Value
High success with lower crowds - the hidden gem. May sacrifice volume for better fishing experience.
Key Concepts
Planning Budget (500 max):
Formula: Species × Areas × Windows Across Timespans
Example: 3 species × 5 areas × 10 windows = 150 scenarios ✓
Example: 5 species × 10 areas × 15 windows = 750 scenarios ✗ (exceeds limit)
If exceeded, a modal suggests specific reductions
Budget Management Strategies
Use Species Groups (Most Effective)
Switch to "Custom Groups" mode in Step 2. Create a group like "All Salmon" (chinook + coho + pink + sockeye + chum). This reduces 5 species to 1 group, cutting budget by 80%! Groups are the #1 way to stay under budget.
Increase Fishing Window Size
Change from 2-day windows to 3-4 day windows in Step 1. Fewer windows = lower budget. Trade-off: less granular recommendations.
Select Fewer Areas
Focus on 3-5 top areas instead of 10+. Quality over quantity - better to analyze a few areas deeply.
Shorten Date Ranges
Instead of analyzing Apr-Oct (7 months), focus on peak season (Jun-Aug). Fewer days = fewer fishing windows.
Real Example: If budget shows 620/500, you could: (1) Create an "All Salmon" group → drops to 124/500 ✓, or (2) Change from 3-day to 4-day windows → drops to 465/500 ✓.
Fishing Windows:
Subdivides date ranges into smaller periods for analysis
Click "View Detailed Data" on any recommendation to explore further in Explorer mode
Pro Tips
Budget Management: Create species groups (e.g., "All Salmon") to reduce permutations significantly
Window Optimization: Start with 3-day windows, refine to 2-day windows if needed
Area Selection: Include diverse areas for better recommendations - mix popular and off-the-beaten-path locations
State Persistence: Selections auto-save and restore on page refresh - never lose your progress
Restart Anytime: Use ↻ Restart button to clear all selections and begin fresh
Seamless Integration: "View Detailed Data" loads Explorer with recommendation filters pre-applied for deep analysis
🎣 Optimal Fishing Times (Slack Currents)
What Are Slack Currents?
Slack current is the brief period when tidal currents reverse direction and water movement is minimal. During these windows, fishing conditions are often optimal because:
Fish are more actively feeding (less energy fighting current)
Bait is easier for fish to catch
Your gear drifts naturally without being pulled by strong currents
Boat positioning and control is easier
How to Use This Feature
Complete Trip Planner wizard with future dates (past dates won't show predictions)
Look for green fishing spot tags in your recommendations
Click any green tag - a side panel slides in from the right
View timeline visualization showing 2-hour fishing windows for each day
Plan your trip to arrive 1 hour before slack and fish through the window
Understanding the Timeline
The timeline shows horizontal bars representing 2-hour fishing windows (1 hour before + 1 hour after slack). Each window is color-coded and positioned by time of day:
X-axis: Time of day (3am to 10pm)
Y-axis: Each row represents one day
Bar colors: Different colors for multiple windows on same day
Hover for details: Shows exact slack time, fishing window, and current type
Current Types
You'll see two types of slack currents in the predictions:
Before Flood: Slack period before current begins flowing in (toward shore/inland). Often excellent for fishing.
Before Ebb: Slack period before current begins flowing out (toward open ocean). Also productive for fishing.
Note: Both types are good for fishing - fish the slack window regardless of flood/ebb cycle!
Important Notes
Accuracy: Predictions have ±15-30 minute error margin. Slack currents are estimates, not guarantees.
Data Source: Uses NOAA Tides & Currents API with multiple nearby current stations per spot (where available).
Future dates only: Past fishing windows show as non-clickable gray tags.
Not all spots covered: Some fishing spots don't have nearby NOAA current stations - these won't show predictions.
Weather impacts: Strong winds, storms, and unusual weather can shift actual slack times.
Best practices: Cross-reference with NOAA tide charts for critical trips and be prepared for timing variations.
Troubleshooting
Tags aren't clickable: Ensure your fishing window includes future dates. Past dates don't show predictions.
Panel shows error: NOAA API may be temporarily unavailable, or the fishing spot has no current stations configured. Try again later or check a different spot.
Times seem off: Remember there's a ±15-30 minute error margin. Slack current predictions are estimates based on tidal models and may vary from observed conditions.
📍 My Spots - Personal Fishing Spots
My Spots lets you draw and save your own fishing areas directly on the map. Each spot automatically gets NOAA current stations assigned so you can get fishing time predictions immediately — the same slack current system used by the curated Fishing Spots layer.
Getting Started
Open the panel: Click the orange + My Spots button in the map header.
Draw a spot: Click Draw New Spot, then click the map to place polygon corners. Double-click to close and finish the shape.
Fill in the form: Give your spot a name, confirm the catch area (auto-detected from your polygon location), and add optional notes such as depth or best season.
Save: Click Save Spot. The spot appears on the map immediately in orange.
Using Your Spots
Fishing Times
In the Trip Planner, your personal spots appear as orange tags in the Known Fishing Spots section of recommendation cards. Click an orange tag (for a future date) to see optimal slack current windows for that location — the same prediction system used by the curated fishing spots.
Zoom to Spot
Click Zoom on a spot card to pan and zoom the map to that spot. Spot name labels appear at zoom level 12+.
Show / Hide All
Use the My Spots toggle checkbox in the map header to show or hide all your personal spots at once.
Delete
Click Delete on a spot card and confirm to permanently remove it from your browser.
Current Stations & Fishing Times
When you save a spot, the app automatically finds the nearest NOAA current stations (up to 5, within 16 km). A pathfinding algorithm avoids routing through land, so stations across a bay won't be assigned if a closer one exists on the same water body. These stations power the slack current predictions for your spot.
The station status indicator in the save form shows how many stations were found. If no stations are found within range, fishing time predictions won't be available for that spot.
Submitting to the Community
Found a great spot you'd like to share? Click Submit on a spot card to open a pre-filled GitHub issue with your spot's geometry and metadata. An admin will review it and may add it to the shared dataset. Submission is optional — your spots stay private unless you choose to submit.
Privacy & Storage
All spots are stored in your browser's localStorage only. They are never sent to a server and are not visible to anyone else. Clearing your browser data will delete your saved spots — there is currently no export or backup.
Tips
Draw your polygon to match your actual fishing area — accurate shapes improve current station assignment.
The catch area is auto-detected from your polygon location but can be changed in the dropdown if needed.
Add notes (depth, tide conditions, best months) to remember what makes each spot productive.
Spot labels appear at zoom level 12+. Zoom in to see names on the map.
You can have multiple spots and toggle them all on/off with the My Spots checkbox.
🔍 Tips & Tricks
Interactive Map: Click any marine area to automatically select it in the filter! Toggle the "Fishing Spots" layer to show/hide popular fishing locations. Spot names appear when zoomed to level 12+.
Hover for Details: Hover over any chart element to see exact values
Filter Memory: Your filter settings are saved automatically - they'll be restored when you return
Hotness Quick Start: New to the dashboard? Click the Hotness (🔥) button for an instant view of the best all-around fishing areas!
Compare Metrics: An area ranking #1 in Hotness is great overall, but check individual metrics to understand why - is it volume, efficiency, or reliability?
Area Prefix Numbers: Areas are prefixed with numbers (e.g., "(Area 4) Neah Bay") to help you sort numerically
Weekly Format: Weeks are displayed as "YYYY-MM-W##" (e.g., "2024-06-W2" = 2nd week of June 2024)
Skunk vs CPUE: High CPUE doesn't always mean low skunk % - you can have high averages with high variability!
Mode Switching: Toggle between Explorer and Trip Planner modes without losing progress - your selections in each mode are saved automatically!
Multi-Select Shortcuts: Use "✓ All" and "× Clear" buttons above dropdowns for quick selections. Selected items appear as tags above the dropdown with removable × buttons.
⚠️ Understanding the Law of Small Numbers
What is it? The Law of Small Numbers is the tendency for small samples to show extreme or unusual values purely by chance, even when no real pattern exists.
Why it matters for fishing data: When an area or time period has very few anglers interviewed, the statistics can be misleading:
Example 1: Area shows 15 fish/angler CPUE, but only 3 anglers were interviewed. This could easily be random variation!
Example 2: Area shows 0% skunk rate, but only 5 anglers surveyed. A few more interviews might reveal a different picture.
Example 3: Weekly data shows huge spike in catch rate, but that week had only 2 interview days due to weather. Not representative!
How to interpret data responsibly:
Check the sample size: Hover over chart points to see "Total Anglers" - this is your sample size
Be skeptical of extremes with small samples: If you see an amazing catch rate but only 10-20 anglers, treat it as "interesting but unproven"
Prefer areas/times with larger samples: 500+ anglers interviewed gives much more reliable statistics than 50 anglers
Look for consistency: An area that shows good catch rates across multiple years/months is more reliable than a one-time spike
Use multiple metrics or Hotness: The Hotness (🔥) score helps by combining metrics - areas ranking high in Hotness typically have larger sample sizes and consistent performance. You can also check if an area ranks high in Total Catch, CPUE, AND low Skunk % individually.
Red flags for small sample issues:
🚩 Daily or weekly granularity with extreme values (sample likely very small)
🚩 Obscure areas with impressive stats (fewer anglers = less data)
🚩 Early/late season spikes (fewer fishing days = fewer samples)
🚩 Perfect scores (0% skunk or 100% anything) with limited data
⚠️ Rule of Thumb: Don't make important fishing trip decisions based on data representing fewer than 100 anglers. Look for patterns across larger samples or multiple time periods.
This doesn't mean small sample data is useless - it's great for generating hypotheses ("Maybe Area 13 is worth exploring!"), but confirm with larger datasets or personal experience before relying on it.
❓ Frequently Asked Questions
What's the difference between the metric buttons?
Each metric measures different aspects of fishing success:
Total Catch (∑): Pure volume - best for finding productive areas
Catch Rate (⚡): Efficiency - average fish per angler
Skunk % (🦨): Reliability - chance of catching nothing
Hotness (🔥): Composite score - combines all three for overall best spots
When should I use Hotness vs individual metrics?
Use Hotness (🔥) for a quick overview of the best all-around areas. Use individual metrics when you have specific priorities: Total Catch if you want volume, Catch Rate for efficiency, or Skunk % for reliability.
Why do different metrics show different "top 10" areas?
Each metric measures different aspects. An area with high total catch might have moderate CPUE (because it's very popular/crowded). The Hotness score helps identify areas that excel across multiple dimensions.
What does "skunked" mean?
Catching zero fish. The Skunk Probability shows what percentage of anglers caught nothing.
How is catch rate calculated?
Total fish caught divided by total anglers interviewed in the surveys. It represents the average fish per angler.
Why doesn't the Success Window show my area?
The chart shows data across all areas (or your selected areas). To see a specific area's success window, use the Catch Area filter to select just that area.
What's the difference between Explorer and Trip Planner modes?
Explorer (default) is a flexible dashboard for freely exploring historical data with custom filters and charts. Trip Planner is a guided 5-step wizard that analyzes your preferences (dates, species, locations, priorities) and recommends specific fishing opportunities. Use Trip Planner when planning a trip, Explorer when researching patterns.
Can I download this data?
Currently not supported in the interface, but the data is publicly available from WDFW.
⚖️ Disclaimer
Independent Project
This website is an independent, personal project created by Jeremy Veleber. It is not affiliated with, endorsed by, or officially connected to the Washington Department of Fish and Wildlife (WDFW) or any government agency. The views and interpretations presented here are solely those of the creator and do not represent official WDFW positions or policies.
Data Accuracy
The data displayed on this dashboard is sourced from publicly available WDFW creel survey records. While efforts have been made to present this data accurately, no guarantees are made regarding the accuracy, completeness, or timeliness of the information. Data may contain errors, omissions, or discrepancies from the original source. Always verify important information directly with WDFW before making decisions.
Map Boundaries
The marine area boundaries shown on the interactive map are approximate representations only and are not official legal boundaries. These boundaries have been hand-traced for visualization purposes and should not be used for navigation, regulatory compliance, or determining legal fishing boundaries. For official marine area boundaries and regulations, consult the official WDFW fishing regulations and marine area maps.
No Warranty
This dashboard is provided "as is" without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the creator be liable for any claim, damages, or other liability arising from the use of this dashboard.
Not Legal or Professional Advice
Nothing on this website constitutes legal, professional, or regulatory advice. Users are responsible for understanding and complying with all applicable fishing regulations. Always check current WDFW regulations before fishing.
External Links
This site may contain links to external websites. These links are provided for convenience only, and the creator is not responsible for the content or accuracy of external sites.
×
⚠️ Planning Budget Exceeded
🎣Loading...
My Fishing Spots
Draw personal fishing spots on the map. Current stations are auto-assigned so fishing time predictions work immediately. Spots are saved in your browser only.
Click map to add points. Click first point to close.
Save Your Spot
Saved Spots
Tap map to add points. Tap first point to close.
Submit for Community
Submit your spot for consideration in the community map. An admin will review and may add it to the shared dataset.