FS-DOC-03Operations
Process Runbook / SOP
Budget vs Actuals Reporting
[YourCompany.com] · Finance Department · Prepared by FullSpec · [Today's Date]
This runbook is the day-to-day operating guide for the Budget vs Actuals Reporting automation. It tells you exactly what the system does each month, what your team needs to do, how to handle anything unexpected, and who to call if something goes wrong. FullSpec built, tested, and monitors the automation end to end. Your role is limited to one review step per cycle, described in plain English in Section 02. Keep this document accessible to your Finance Manager and anyone who covers that role during leave.
01Process overview
Once a month, when the accounting period closes in QuickBooks, three automated agents run in sequence without any manual intervention from your team. The Actuals Sync Agent pulls the closed-period profit and loss figures directly from QuickBooks via API and writes them into the correct cells of the master Google Sheets budget template. The Variance Analysis Agent then calculates dollar and percentage variances for every budget line, flags lines that exceed the configured tolerance threshold, sends targeted Slack prompts to the relevant department heads asking for a one-line explanation, and pre-populates a commentary column with suggested text drawn from variance size, trend history, and any Slack replies received. Finally, once the Finance Manager has reviewed and approved the commentary, the Report Distribution Agent saves the finished report to Google Drive with a date-stamped filename and posts a Slack notification linking all configured stakeholders to the new file. The only human action in the entire cycle is the Finance Manager's commentary review, which takes under 20 minutes because the drafting work is already done.
Process name
Budget vs Actuals Reporting
Trigger
Scheduled period-close date fires automatically each month once QuickBooks confirms all transactions are posted
Final output
A date-stamped variance report saved to Google Drive and a Slack notification sent to all configured stakeholders
Agents running
Actuals Sync Agent, Variance Analysis Agent, Report Distribution Agent
Tools involved
QuickBooks, Google Sheets, Google Drive, Slack
Weekly volume
1 full report per month covering 20 to 50 cost lines
Human checkpoint
Finance Manager reviews and approves pre-drafted variance commentary in Google Sheets before the report is published
Process owner
Finance Manager
Process Runbook / SOPPage 1 of 4
FS-DOC-03Operations
02Step-by-step: what happens and who acts
What you actually need to do: There is one human step in this process. After the Variance Analysis Agent has run and pre-populated the commentary column in Google Sheets, the Finance Manager opens the budget sheet, reads each flagged variance line and its suggested commentary, edits any line that needs adjustment, and clicks the approval confirmation. That is it. Everything before and after that step is handled automatically by the system. Budget for roughly 20 minutes on or just after close day.
Step
What happens
Who acts
Type
1
The automation platform detects the scheduled period-close date and confirms with QuickBooks that all transactions for the period are posted and reconciled. The workflow fires automatically with no manual input required.
System
Automated
2
The Actuals Sync Agent calls the QuickBooks API and pulls the full profit and loss report for the closed period, returning account-level figures across all cost centres in the correct structure.
Actuals Sync Agent
Automated
3
The fetched figures are written directly into the designated actuals columns of the master Google Sheets budget template. The agent uses the configured account-to-budget-line mapping table to place each figure in the right row without overwriting existing formulas or header rows.
Actuals Sync Agent
Automated
4
The Variance Analysis Agent reads the populated budget and actuals columns, calculates dollar and percentage variances for every line, and flags any line where the variance exceeds the configured tolerance threshold. It also compares flagged lines against trend data from prior periods to identify whether a variance is new or recurring.
Variance Analysis Agent
Automated
5
A Slack message is sent automatically to each department head listing only the flagged budget lines that fall within their cost centre. The message asks for a one-line explanation within 24 hours and includes the budget figure, the actual figure, and the variance amount for easy reference.
Variance Analysis Agent
Automated
6
The Variance Analysis Agent pre-populates a commentary column in the Google Sheets budget template with suggested explanations for each flagged line, drawing on variance size, historical trend data, and any Slack replies already received from department heads. Lines with no reply received are marked as pending with the variance data visible.
Variance Analysis Agent
Automated
7
The Finance Manager opens the Google Sheets budget template, reads each flagged line and its pre-drafted commentary, edits any line that needs adjustment or additional context, and confirms approval. This is the only action your team takes in the entire monthly cycle.
Finance Manager
Human
8
Once the Finance Manager's approval is registered, the Report Distribution Agent formats the finalised Google Sheet into a presentation-ready state and saves it to the designated Google Drive folder using a date-stamped filename and version naming convention. Sharing permissions are applied automatically.
Report Distribution Agent
Automated
9
The Report Distribution Agent posts a Slack notification to the configured finance channel and all stakeholder recipients. The message includes a direct link to the published report, confirms the reporting period, and notes the total variance and any budget lines still carrying a pending commentary flag.
Report Distribution Agent
Automated
Process Runbook / SOPPage 2 of 4
FS-DOC-03Operations
03Handling exceptions
Situation
What the system does
What you do
An account code in QuickBooks has no matching row in the budget mapping table (unmapped account)
The Actuals Sync Agent flags the account as unmapped, skips writing that line to the sheet, and sends a Slack alert to the Finance Manager listing the unmapped code and its dollar value. The rest of the sync completes normally.
Open the mapping table in Google Sheets and add the new account code to the correct budget line. The agent will pick it up on the next scheduled run or when manually retriggered. If the unmapped line is material, notify the FullSpec team so the mapping logic can be confirmed before the report is published.
The QuickBooks API connection fails or the OAuth token has expired before the period-close trigger fires
The automation platform retries the connection three times over 30 minutes. If all retries fail, the workflow pauses and sends an alert to the Finance Manager and to FullSpec support via email.
Check whether your QuickBooks OAuth token needs to be reauthorised. FullSpec will guide you through the reauthorisation steps if needed. Once the connection is restored, manually retrigger the workflow from the automation platform dashboard. Do not export figures manually unless FullSpec confirms the connection cannot be restored within 48 hours.
A department head does not reply to the Slack variance prompt within the configured 24-hour window
The Variance Analysis Agent marks the relevant commentary cell as pending and includes a note that no response was received. The report is not held. The workflow continues on schedule and the pending flag is visible in both the Google Sheet and the stakeholder Slack notification.
Review any pending lines during your commentary approval step. You can either add a brief note yourself, extend the window and retrigger the Slack prompt, or publish the report with the pending flag visible and follow up with the department head separately. The decision to hold or publish rests with you.
Duplicate actuals figures appear in the budget sheet after a sync (data written twice to the same cells)
The Actuals Sync Agent is built to overwrite the designated actuals columns rather than append, so true duplicates should not occur. If a duplicate is detected during the variance calculation step, the Variance Analysis Agent flags the affected rows as a data anomaly and pauses publishing until the Finance Manager reviews.
Open the flagged rows in Google Sheets and compare the figures against the QuickBooks P&L for the period. If the values are identical and one set is clearly erroneous, delete the duplicate rows and confirm in the sheet. Contact FullSpec support at support@gofullspec.com if you cannot identify which figures are correct.
Google Sheets or Google Drive is unavailable when the agents attempt to write or publish
The automation platform detects the service outage and retries write operations every 15 minutes for up to two hours. If the service remains unavailable, the workflow pauses and an alert is sent to the Finance Manager. No data is lost because the QuickBooks pull is cached in the workflow until the write succeeds.
No immediate action is needed. Monitor your email and Slack for a recovery notification from the automation platform. Once Google services are restored the workflow resumes automatically. If the outage lasts longer than four hours, contact FullSpec support so the cached data can be manually reviewed and the run confirmed complete.
The budget template structure has been changed (rows added, deleted, or column headers renamed) since the last cycle
The Actuals Sync Agent attempts to match account codes to the mapping table. If expected header rows or mapped cell references are missing, the agent logs a structural mismatch error, halts the write step, and sends an alert to the Finance Manager describing which references could not be resolved.
Do not restructure the budget template without notifying FullSpec first. If a structural change has already been made, contact support@gofullspec.com and share the updated sheet. FullSpec will update the mapping configuration before the next sync run. In the meantime, the prior cycle's report remains available in Google Drive.
Process Runbook / SOPPage 3 of 4
FS-DOC-03Operations
04Who to contact and when
Fill in the rows marked with placeholders once your team is confirmed. Keep this table updated whenever a role changes so everyone knows exactly who to reach in the first few minutes of an issue.
Role
Name
How to reach them
Finance Manager (process owner, commentary approval, exception decisions)
[Your name]
[Rep email]
Bookkeeper (mapping table updates, accounting system queries)
[Your name]
[Rep email]
Operations Lead (escalation if report is delayed beyond agreed SLA)
[Your name]
[Rep email]
FullSpec builder (automation configuration, agent logic, integration changes)
FullSpec team
support@gofullspec.com
FullSpec support (connection failures, error alerts, token issues, urgent issues)
FullSpec support
support@gofullspec.com
For any issue that could delay the monthly report by more than 24 hours, contact FullSpec support at support@gofullspec.com immediately. Include the period close date, a brief description of what the alert said, and a screenshot of the error if one is visible in Google Sheets or Slack. Do not attempt to manually re-run the QuickBooks export or overwrite the actuals column without FullSpec confirming it is safe to do so.
05Ongoing maintenance
Whenever a new account code is added in QuickBooks or an existing code is renamed or retired
Update the account-to-budget-line mapping table in Google Sheets to include the new or changed code. If the code should map to an existing budget line, add it in the mapping sheet and notify FullSpec so the agent configuration can be confirmed. Do not wait until the next period close to make this update.
Finance Manager or Bookkeeper
Whenever the budget template layout changes (new cost centres, renamed rows, restructured summary page)
Notify FullSpec before making any structural changes to the master budget Google Sheet. FullSpec will update the cell references and mapping configuration before the change is applied to the live template. Changes made without notice will cause the sync agent to halt at the next run.
Finance Manager, with FullSpec confirmation
Monthly, after each report cycle completes
Spot-check the published report by comparing three to five actuals figures against the QuickBooks P&L for the same period. Confirm the variance calculations match your own manual check. Log any discrepancy immediately in the error log and notify FullSpec support.
Finance Manager
Monthly, after each report cycle completes
Review the automation error log in the workflow platform dashboard for any flagged warnings, skipped lines, or retry events from the current cycle. Even if the report published successfully, errors in the log may indicate mapping gaps or connectivity issues to address before the next run.
Finance Manager or FullSpec
Whenever a team member changes role or leaves (Finance Manager, Bookkeeper, department heads)
Update the contact table in Section 04 of this runbook. Update the Slack notification recipient list in the workflow configuration and adjust the commentary approval permissions in Google Sheets. Contact FullSpec to update any agent-level configuration tied to the departing team member's credentials.
Finance Manager, with FullSpec support
Quarterly, or ahead of a new financial year
Review the configured variance thresholds with the Finance Manager to confirm they still reflect the business's tolerance levels. Review the distribution list to confirm all stakeholders are still correct. Assess whether the volume of cost lines has changed significantly and whether the mapping table needs consolidation or expansion. FullSpec can assist with any configuration updates arising from this review.
Finance Manager, with FullSpec
The most common maintenance issue for this process is an unmapped account code. Every time a new supplier category, cost centre, or revenue line is added in QuickBooks, the mapping table needs to be updated before the next period close. If this is missed, the sync agent will skip that line silently and the published report will understate actuals for that code. Make it a habit to update the mapping table the same day any chart-of-accounts change is made in QuickBooks.
Process Runbook / SOPPage 4 of 4