I have built a logistic regression model that predicts the response probability from a marketing campaign. The model ranks correctly (i.e. the lower scored customers take up the offer less often than higher scored customers), but the probabilities predicted by the model are never the same as the actual take-up percentage (i.e. the model scores the customer with 0.25, implying that 1 in every 4 customers with the same score should take up the offer, but in reality only 1 in every 10 customers with the same score takes up the offer).

What could possible reasons for this be? I have checked for multicollinearity, and that is not the issue, and the sample size was sufficient (about 10000 obs for a model with 15 predictors). My gut tells me that it might have something to do with the link function (logit was used), but I don't really understand link functions, so if you think it could be something like that, please try to explain.

Thanks