Your actual hours and wages will almost always differ to your forecast. This is because Rotaready takes a snapshot of your hours and wages the moment your rota is published and uses this for your forecast. A lot can change between then and now.
Consider the following scenarios when questioning why your actual hours/wages differ:
Changes were made to the rota, such as extra shifts being added and existing shifts being lengthened, shortened or deleted
Employees worked longer than expected, by starting early or finishing late (this may be negated, depending on your organisation's sanitisation/rounding rules)
Employees worked overtime that triggered a different pay rule
Employees didn't show up for work
Pay records were changed for employees, such as a pay rise or pay decrease
A salaried employee joined the team, either as a new joiner or from another site/department
A salaried employee left the team, either as a leaver or moving into a different site/department
A cover shift was added, originating in another site/department but was worked in your site/department. The originating site will have chosen to attribute hours/wages to the work site.