This paper proposes a general network performance model (NPM) for monitoring the performance of urban rail systems using smart card data. NPM is a schedule-based network loading model with strict capacity constraints and boarding priorities. It distributes passengers over the network given origin-destination demand, operations, route choice, and effective train capacity. A Bayesian simulation-based optimization method for calibrating the effective train capacity is introduced, which explicitly recognizes that capacity may be different at different stations depending on congestion levels. Case studies with data from the Mass Transit Railway network in Hong Kong are used to validate the model and illustrate its applicability. NPM is validated using survey data on left-behind passengers and exiting passenger flow extracted from smart card data. The use of NPM for performance monitoring is demonstrated by analyzing the spatial-temporal crowding patterns in the system and evaluating dispatching strategies.