Tool · Trial version
Stream Fish Occurrence Probability Tool (Trial)
Enter the habitat conditions at one point in a stream, and the tool ranks the freshwater fish likely to live there by probability of occurrence as an estimated fish fauna. You can also compare the change under human modifications such as concrete banks.
Before you use it
This tool is based on research carried out by SATO Tatsuya, the founder of Zakko CLUB, during his master’s and doctoral studies at the Graduate School of Bioresources, Mie University. However, the assessments on this site also include field measurements from streams and analytical methods that have not been published in papers, so please treat the values shown as reference values only. Decisions on construction plans, impact assessments or protected areas must always be combined with field surveys and expert judgement.
The original works (the master’s thesis and others) are held by the Laboratory of Fish Propagation, Graduate School of Bioresources, Mie University.
To protect rare species, survey locations and field measurements are not published.
1. Enter the conditions at one point
2. River system and connection to the sea
3. Human modification scenario (optional)
4. Estimated fish fauna (reference values)
Enter width, depth and velocity to calculate.
The effect of a concrete bed itself is not in the survey data and is not included in this calculation. Bottom-dwelling fish (marked ◆) lose their habitat base on a concrete bed, so their actual probability is likely to fall much further than shown.
How to use it, and what it assumes
- In step 1 you enter the conditions at a single point in the stream — values measured at each point along a cross-sectional transect.
- In step 2, choosing the river system and whether fish can move between the river and the sea removes species that, from known distributions, are unlikely to live there. The ajime loach does not occur in rivers flowing into the Kumano Sea, and the Tōkai small spined loach occurs only in rivers flowing into Ise Bay. The ayu, bōzu-haze goby, shima-yoshinobori goby and gokuraku-haze goby move between rivers and the sea.
- The result is an estimated fish fauna, ranked by probability of occurrence. Because common species tend to score higher, you can also sort by “suitability for each species” (compared with that species’ average probability). The sum of the probabilities is a rough guide to the number of species expected at the point.
- In step 3, choosing a modification scenario recalculates the probabilities with the inputs replaced by the assumed post-modification state and shows them alongside the current values. Depth and velocity depend on the design, so they are not changed except in the impoundment scenario; if you know the values after the works, change them in step 1 and compare.
- The effect of a concrete bed itself is not in the survey data and is not included. In the three-sided concrete scenario, bottom-dwelling fish are marked ◆ to indicate that their probability is likely to fall further than shown.
- Some fish show a higher probability after modification. This is presented as it is — the result the survey data give — but effects not in the data, such as the loss of hiding places and feeding grounds, are not reflected, so it may be overestimated. These fish are annotated.
- Water temperature and water quality are not included. Connectivity is handled only through the “move between the river and the sea” option in step 2.
- If the tool shows “outside the data range”, the estimate is an extrapolation beyond the data used to build the model, so treat it with particular caution.
About this attempt
In graduate school I studied where stream fish live in relation to physical conditions such as channel width, depth, current velocity and substrate, and expressed those relationships as statistical models. It was painstaking work: diving to check for fish, catching them to count and measure them, measuring the habitat at the same points, and explaining whether a fish was present or absent from the conditions.
River works, dam construction, road improvements, surveys of protected areas and impact assessments all call for evidence on whether a place is habitable for fish. Yet tools that anyone can use for that judgement are rarely made publicly available.
Perhaps there should be a site that can assess the habitat of living things in this way. Ideally I should continue the research myself and improve its accuracy, but if researchers keep working at it, this kind of assessment should be achievable. This page is a thought experiment — a trial — to test that possibility.
Scale of the surveys
From 2006 to 2009, surveys in rivers in Mie, Gifu and Aichi Prefectures covered about 780 points and plots in total, and about 10,000 fish were recorded or caught (more than 3,700 of them were also measured for body length). Site names and measured values are not published.
For fish, we recorded species identification, presence or absence, number of individuals and body length, and prepared voucher specimens. For habitat, we measured channel width, depth, current velocity, overhanging bank vegetation, emergent plants, submerged plants, overhead cover, stone embeddedness and substrate, and — depending on the survey — water temperature, pH, dissolved oxygen, bank material and elevation. Fish were detected by combining underwater observation with sampling using an electrofisher and various nets.
The tool’s calculations use the data in which fish and habitat were recorded at each point along transects (503 points in six rivers). The other surveys established which fish live in which river systems and which habitat differences relate to differences in fish fauna, and formed the basis for choosing survey sections and the variables to analyse.
Analysis protocol
1. Survey design
Treating a river as a sequence of riffles and pools, we laid cross-sectional transects at regular intervals along each survey section and, at each point on a transect, recorded at the same time whether fish were present and what the habitat was like. Pairing fish and habitat at the same point produces data in which fish occurrence can be explained by habitat conditions.
2. Data integration and quality control
Because recording formats differed between years and rivers, the data were aligned to ten variables — the nine common to all rivers plus the extent of concrete on the banks (none, partly, mostly) — with unified scoring criteria, before being merged. Rivers from years without bank records were sections without revetments and were treated as “none”. Sections with a concrete bed (25 points) were confined to a single section, where the effect of concrete could not be separated from conditions peculiar to that section, so they were excluded together with points with missing values, leaving 477 points from six rivers for analysis.
3. Screening the variables with multivariate analysis
In-stream habitat can be described along axes such as “from riffles with loose stones to pools with accumulated sediment” and “from near the bank to mid-channel”, and the way species partition habitat appears along those axes. The ten variables, which have different units, were therefore first standardised and their interrelationships screened with multivariate analysis. After confirming that no pair of variables overlapped so strongly that one would make the other redundant (all redundancy indicators were within acceptable limits), all ten were kept as candidates for the models.
4. Modelling by variable selection
For each species, we used a statistical model suited to binary presence/absence data and, guided by an information criterion, added and removed variables one at a time to find the combination with the best balance between explanatory power and simplicity. We used variable selection for the following reasons:
- Including all ten variables lets a model learn chance quirks specific to the surveyed rivers (overfitting), which lowers accuracy when it is applied to other rivers.
- Different species respond to different habitat features (riffles with loose stones, bank vegetation, depth and so on), and keeping only the variables each species needs makes the results easier to interpret ecologically.
- It keeps the estimates stable even for fish recorded at relatively few points.
Each species’ model also uses only data from the rivers where that species was recorded, so that absences in rivers outside its natural range are not mistaken for unsuitable habitat.
5. Validation
For fish recorded in more than one river, we built a model from the data without one river — repeating the variable selection from scratch — and predicted the river that had been left out, repeating this for every river (“between-river validation”). Because the variable selection is redone each time, the accuracy is not inflated. For fish recorded in only one river, the data from that river were split into five parts and cross-validated in the same way, repeated 20 times. Accuracy is reported as the AUC (0.5 = no better than chance, 1 = perfect discrimination).
6. Inclusion criteria and reliability
Fish with an AUC of 0.6 or more are included. In between-river validation, an AUC of 0.75 or more is rated “high”, 0.70–0.75 “medium” and 0.60–0.70 “low”; fish recorded in only one river are labelled “single river”. The tool warns you when an input falls outside the range of the data used to build the model.
7. Estimating fish fauna and modification scenarios
The fish fauna is estimated by running every species’ model on the same inputs and ranking the species by probability of occurrence. Narrowing the candidates by river system and connection to the sea is based on existing knowledge of distributions. A modification scenario recalculates the probabilities after replacing inputs such as vegetation, loose stones and bank concrete with a typical post-modification state; it is a guide for comparing the direction and size of change.
Fish included and model summary
| Fish | Reliability (AUC) | Rivers · points (occurrences) | Variables selected |
|---|---|---|---|
| Japanese dace Pseudaspius hakonensis (Günther, 1877) | High(0.79) | 2・169(56) | width, depth, bank vegetation, emergent plants, stone embeddedness, submerged plants, overhead cover, substrate |
| Juvenile cypriniforms (e.g. pale chub, dark chub) Cypriniformes spp. (juv.) | High(0.77) | 6・477(30) | width, velocity, bank vegetation, submerged plants, overhead cover, substrate, bank concrete |
| Bōzu-haze goby Sicyopterus japonicus (Tanaka, 1909) | High(0.76) | 2・169(88) | depth, velocity, bank vegetation, stone embeddedness |
| Shima-yoshinobori goby Rhinogobius nagoyae Jordan & Seale, 1906 | Medium(0.74) | 2・189(14) | depth, velocity, bank vegetation, substrate |
| Dark chub Nipponocypris temminckii (Temminck & Schlegel, 1846) | Medium(0.74) | 5・457(252) | width, depth, velocity, bank vegetation, submerged plants, overhead cover, substrate, bank concrete |
| Tōkai small spined loach Cobitis minamorii tokaiensis Nakajima, 2012 | Medium(0.73) | 2・68(31) | depth, bank vegetation, emergent plants, overhead cover, substrate |
| Ayu sweetfish Plecoglossus altivelis (Temminck & Schlegel, 1846) | Low(0.65) | 2・169(52) | width, depth, emergent plants, substrate |
| Pale chub Zacco platypus (Temminck & Schlegel, 1846) | Low(0.63) | 6・477(259) | width, depth, velocity, stone embeddedness, submerged plants, substrate |
| Kawa-yoshinobori goby Rhinogobius flumineus (Mizuno, 1960) | Low(0.61) | 6・477(269) | width, velocity, stone embeddedness, submerged plants, overhead cover, substrate, bank concrete |
| Ajime loach Cobitis delicata Niwa, 1937 | Single river(0.78) | 1・120(61) | emergent plants, stone embeddedness, submerged plants, overhead cover |
| Southern medaka Oryzias latipes (Temminck & Schlegel, 1846) | Single river(0.78) | 1・48(10) | width, depth, emergent plants, overhead cover |
| Tamoroko gudgeon Gnathopogon elongatus (Temminck & Schlegel, 1846) | Single river(0.76) | 1・48(19) | depth, velocity |
| Akaza torrent catfish Liobagrus reinii Hilgendorf, 1878 | Single river(0.66) | 1・120(32) | width, stone embeddedness, submerged plants |
| Gokuraku-haze goby Rhinogobius similis Gill, 1859 | Single river(0.64) | 1・69(32) | width, depth |
Scientific names follow Eschmeyer’s Catalog of Fishes (as of September 2026), except for the Tōkai small spined loach, which is given the subspecies name used in Japan.
Fish with lower reliability
- Kawa-yoshinobori goby: it occurs at almost every point in some rivers and hardly at all in others, so its occurrence rate varies greatly between rivers. Rivers with few absences give the model little to learn about unsuitable conditions, and the relationship with habitat is not consistent between rivers, which likely lowered its discrimination.
- Ayu sweetfish: it swims in schools and moves widely, so the link between the point where it happened to be and that point’s substrate or vegetation tends to be weak. It may also be affected by stocking.
- Pale chub: it is widespread in many rivers and uses both fast and slow water, so habitat differences have a smaller effect.
- Akaza torrent catfish: it is nocturnal and hides under stones during the day, so it is easily missed by daytime underwater observation, and it may actually have been present at points recorded as absent. Having been recorded in only one river also limits the model.
- Gokuraku-haze goby: recorded in only one river and at relatively few points, so accuracy is limited.
For these fish, accuracy could be improved by combining detection methods that miss fewer fish and by surveying more rivers.