D’une surface de 520 km² ce bassin versant draine le Sornin qui prend sa source en différents points du Haut Beaujolais : Aigueperse, St Bonnet des Bruyères, St Igny de Vers et Propières. Il parcours près de 53 km jusqu’à son embouchure avec la Loire sur la commune de Pouilly sous Charlieu.
Ses principaux affluents sont la Genette, le Mussy, le Botoret, les Equetteries, le Bézo et le Chandonnet.
Les communes de Arcinges, Belleroche, Belmont de la Loire, Le Cergne, Chandon, Charlieu, Cuinzier, Ecoche, Maizilly, Mars, Pouilly sous Charlieu, Saint Denis de Cabanne, Saint Germain la Montagne, Saint Hilaire sous Charlieu, Saint Nizier sous Charlieu et Villers sont concernées par le périmètre du contrat de rivière.