One of the best features of SugarCRM is the ability to configure calculated fields right from Studio. More advanced configuration can be done using workflows or programmatically using logic hooks to satisfy your business rules. One thing all of these customization have in common is that they all only run when a record is saved.
Imaging you have an important expiration date field on your Cases and you have a calculated field that counts the number of days until that date. A report runs that shows the records where that expiration date field is 3 or less. That calculated field only updated when a record is saved so if nothing happens on given record for a number of days your report would be off and wouldn't catch the nearing expiration.
With the example above the original expiration date could likely be used but what is more difficult is if related data is needed for a calculation. A common example is a calculated field for the last completed Call record on the Contacts module. This field would not update on the Contact when the Call is updated without either custom code or an Advanced Workflow which has some limitations.
While this could all be solved with custom code that gets expensive. Especially when there are multiple rules that need to be coded.
This is where Background Updater comes in. Administrators can configure any module, including custom modules, to update a given number of records on a regular schedule. During this configuration we show the number of records not updated in the last 24 hours to help calculate how many records to update each run.