Railway nodes are often operated close to their capacity limit. With the expected growth in rail demand due to the planned modal shift towards rail, these nodes are likely to become saturated. To decide which infrastructure or operational measures should be implemented, it is therefore important to assess their existing capacity. This paper proposes a mixed-integer programming approach to evaluate the practical capacity of a railway node using cyclic timetabling. The node infrastructure is modeled at the track-circuit level, with signalling and interlocking rules explicitly represented. Traffic is described in terms of train lines, each defined by its origin–destination, rolling stock, stopping pattern, set of routes, and frequency per cycle. For the lines crossing the node, we generate microscopic cyclic timetables while gradually increasing line frequencies. Practical capacity is defined as maximum frequencies of lines that give feasible cyclic timetables. We apply the method to the Pierrefitte–Gonesse node in France, exploring the impact of traffic heterogeneity, the degree of route overlap in shared track-circuits, and the number of available routes per line.

