On the Offerings for Students and Offerings for Teachers pages, we built in a postcode functionality that specifically matches how schools search for activities. A teacher enters the school's postcode, then the extracurricular activities are sorted by distance from that school. Each activity thereby shows the commuting distance in kilometres.
Activities that take place on site at the school, where the activity provider comes to the school, are automatically assigned 0 km. Those always come out on top, regardless of where the company itself is located. This makes sense from a teacher's perspective: if there is no need to travel, distance is no longer a factor.
This functionality sounds simple but requires thoughtful implementation. The geocoding of postcodes, the distance calculation, the exception logic for on-location activities and the performance with large numbers of results, all things that need to work seamlessly without the user noticing.