Who this is for
A finance manager, bookkeeper or owner who relies on a Google Sheet that is refreshed on a schedule from the accounting system and has found it stale, cut off after the first page of rows, or half-written.
A weekly report stops at a round number of rows, shows last month's figures, or has a blank section after a run that nobody noticed had failed.
The result
One named export writes every source row into a staging range, swaps it into the report only when the row count equals the source count, stamps a data-as-of time and a run status on the sheet, and on a forced failure, including a deliberately truncated read that the platform itself would call a successful run, leaves the previous complete report with a visible warning.
What is included
- One scheduled export from one accounting report or list into one Google Sheet, built with a script bound to the sheet
- Reading every page of the source with the page size and incremental option the source documents, and counting rows read against the source's own total
- Writing to a staging range and swapping it into the report only after the completeness check passes
- A status block on the sheet: data-as-of time, row counts, last run result and the reason of any failure, plus a stale flag that a sheet formula computes from the data-as-of time so a stopped schedule shows even when no script runs
- A lock against overlapping runs, a self-imposed deadline below the platform run-time limit so the script stops cleanly and records why, and a stay-within-limits rule for the script's run time and call count
You receive
- The script and its schedule settings, with a note on the limits it works within
- A test log: a multi-page synthetic source, a run that reaches its deadline, an overlapping run and the sheet status after each
- A one-page runbook for a failed run: where to look and who restarts it
What is not included
- Redesigning the report, adding charts or changing what the report measures
- Several exports, several sheets or a data warehouse; this scope is one export to one sheet
- Changing accounting data or approving what the figures mean
- Sharing or permission changes on the sheet, which stay with its owner
- Bookkeeping, tax, audit or any accounting advice, including deciding how a transaction should be treated in your accounts
- Changing posted, reconciled or locked-period transactions: your accountant or account holder decides and performs those
- Live changes: your authorised account holder applies any agreed change and holds the production keys
What we need from you first
- What the export reads, how often it runs and where it writes, in a few sentences
- The row count you expect and the row count the sheet actually shows, as numbers only
- Whether the script is bound to the sheet and who created its schedule
- Do not send credentials, bank details, invoices, customer records or confidential code in the first enquiry
Never send passwords, keys, customer records or confidential code in the first enquiry. Secure handover is agreed after scoping.
How we check it is done
- Against a synthetic source of 250 rows, which exceeds the source's default page size, the report shows 250 rows and the status block shows 250 read of 250 total.
- With the read deliberately cut short after the first page (for example 100 of the 250 source rows), the run is treated as failed: the swap is refused, the report still shows the previous complete data, and the status block shows the shortfall, for example 100 read of 250 total.
- With the script deadline set low enough to be reached partway through a run, the report still shows the previous complete data, and the status block shows the failure, the time and the reason.
- Two runs started at the same moment do not interleave rows; the second waits or exits with a recorded reason.
- The status block shows a data-as-of time within the agreed age after a successful run and its formula flags the report as stale when the age exceeds the agreed limit, including when no script has run since.
You inspect the named test evidence and sign off before payment. Your authorised account holder performs and verifies any live change, and decides what happens to records already posted.
When we would stop or decline
- The export is built in a tool that cannot hold a script and cannot be rebuilt as one
- The source cannot be read page by page and has no total to compare
- The report must be real-time rather than scheduled, which needs a different design
Questions
Can it refresh in real time?
No. This is a scheduled export. Real-time needs a different design and quote.
Why a staging range?
Writing directly into the report means a failed run can leave it half-new and half-old. A staging range lets the swap happen only after the count matches.
What limits does the script have to respect?
Google publishes limits for script run time, daily trigger time and calls. The job works within them and reports a clear failure when a limit stops a run, rather than writing partial data.
Price and terms
£245 · untested offer price. £245 after the agreed checks pass and you sign off. No payment before sign-off.
This is a new service with no published client results. The price is a starting point we have not yet tested with buyers. Nothing is ordered or charged by the enquiry. The full specification is on the Synthetic Industry catalogue.