We construct a simulation model of a non-life insurance market with heterogeneous insurers which are differentiated by non-price attributes over which insurance consumers have preferences. The model is calibrated and validated on motor insurance data. Insurers and customers are self-directing and follow simple rules of behaviour when selling and buying insurance policies, yet complex systemic market-wide behaviour emerges. Two stylized facts are qualitatively reproduced by the model: (1) Cycles in market loss ratios (underwriting cycles) emerge endogenously, even in the absence of factors such as capital shocks and interest rate
fluctuations. (2) In the steady state, the distribution of firm sizes is right-skewed and heavy-tailed, so some very large insurers emerge and acquire a significant share of the insurance market.