ABSTRACT The phosphorus (P) and BOD7 removal performance of an upflow packed bed reactor (PBR) filled with two reactive filter media was studied over 50 weeks. The lower one-fifth of the reactor was filled with calcium–silicate–hydrate (Sorbulite®) and the upper four-fifth with calcium–silicate (Polonite®). A laboratory-scale upflow anaerobic sludge bed reactor (UASB) delivered wastewater to the PBR. A model was developed to describe the gradient in P concentration change in the reactor, based on reaction kinetics. The reaction terms were assumed to follow the Langmuir isotherm, based on the results obtained in a batch test. First, a comparison was made between experimental and simulated results. The capability of the model to forecast P removal capacity was then tested for three hypothetical cases: (i) reactor filled with Sorbulite and Polonite, (ii) reactor filled with only Sorbulite, and (iii) reactor filled with only Polonite. Finally, a sensitivity analysis was performed for the main parameters in the model. The average removal of P and BOD7 from the UASB effluent was 98% and 90%, respectively. The starting pH of the dual-medium effluent was 12.2 and decreased gradually over time to 11.1. The simulation both overestimated and underestimated mean measured P removal but was within the range of maximum and minimum measured values. The hypothetical cases revealed that most P was removed by Polonite due to calcium phosphate precipitation. The removal capacity of the two filter materials and their layer height in the reactor were the most sensitive parameters in the simulation.