SH-31 begins at an intersection with U.S. Route 26 in Swan Valley. The highway leaves Swan Valley to the northeast, crossing Rainey Creek and entering a rural part of Bonneville County. The route turns north before heading northwest, then turning north again. After crossing Pine Creek, SH-31 heads northeast and enters Targhee National Forest. The highway enters a mountainous region at this point, passing to the south of Stouts Mountain. SH-31 crosses North Pine Creek before crossing into Teton County. It passes the Pine Creek Campground before leaving Targhee National Forest. The highway enters a rural area and begins a more easterly course. It turns northeast into Victor, then turns east, becoming Center Street. SH-31 terminates at Idaho State Highway 33 in central Victor.