Photometric rotational modulations due to starspots remain the most common and accessible way to study stellar activity. In the Kepler-era, there now exists precise, continuous photometry of ∼150 000 stars presenting an unprecedented opportunity for statistical analyses of these modulations. Modelling rotational modulations allows one to invert the observations into several basic parameters, such as the rotation period, spot coverage, stellar inclination and differential rotation rate. The most widely used analytic model for this inversion comes from Budding and Dorren, who considered circular, grey starspots for a linearly limb darkened star. In this work, we extend the model to be more suitable in the analysis of high precision photometry, such as that by Kepler. Our new freely available fortran code, macula, provides several improvements, such as non-linear limb darkening of the star and spot, a single-domain analytic function, partial derivatives for all input parameters, temporal partial derivatives, diluted light compensation, instrumental offset normalizations, differential rotation, starspot evolution and predictions of transit depth variations due to unocculted spots. Through numerical testing, we find that the inclusion of non-linear limb darkening means macula has a maximum photometric error an order-of-magnitude less than that of Dorren, for Sun-like stars observed in the Kepler-bandpass. The code executes three orders-of-magnitude faster than comparable numerical codes making it well suited for inference problems.