Four templates, one year.
Current answers, such as this one from Hyperbots, list the parts of a good setup: a template, a schedule, approval, evidence. They stop before the three things that go wrong in practice, which are the date, a second run, and a closed month. So here is one example register, worked through.
The company closes monthly on a calendar year and has four entries that never change. All amounts are in US dollars and every figure is an example.
| Template | Amount | Schedule | Ends | Entries in 2026 | Total in 2026 |
|---|---|---|---|---|---|
| Office rent | 18,500 a month | Monthly, from 31 January | Lease end, 30 June 2028 | 12 | 222,000 |
| Insurance, prepaid annual policy of 54,000 | 4,500 a month | Monthly, from 31 January | 12 occurrences | 12 | 54,000 |
| Software, prepaid annual contract of 30,600 | 2,550 a month | Monthly, from 31 March | 12 occurrences | 10 | 25,500 |
| Equipment maintenance contract | 7,200 a quarter | Every 3 months, from 31 March | 31 December 2026 | 4 | 28,800 |
| Total | 38 | 330,300 |
Each row has the same accounts and the same amount every time. That is the test for a scheduled entry. Intuit’s own guidance draws the same line: Scheduled for rent, loan payments and depreciation, and Reminder for something like a utility bill that changes each month, so a person enters the amount.
Every row also has an end. The insurance and software rows end after twelve entries because the prepaid balance is gone by then. A template with no end keeps posting after the contract does, and nobody notices until the prepaid account goes negative.
Monthly means a calendar month.
The rent template starts on 31 January. Three schedules that all sound like “monthly” give three different years.
| Month | Monthly, anchored on the 31st | Monthly, from the last date | Every 30 days |
|---|---|---|---|
| January | 31 Jan | 31 Jan | 31 Jan |
| February | 28 Feb | 28 Feb | none |
| March | 31 Mar | 28 Mar | 2 Mar |
| April | 30 Apr | 28 Apr | 1 Apr |
| May | 31 May | 28 May | 1 May and 31 May |
| June | 30 Jun | 28 Jun | 30 Jun |
| July | 31 Jul | 28 Jul | 30 Jul |
| December | 31 Dec | 28 Dec | 27 Dec |
The first column is what most teams mean. The day comes from the start date, so February gets its last day and March goes back to the 31st.
The second column steps from the previous entry instead. Once February clamps to the 28th, every later entry is dated the 28th. The amounts still land in the right months, but the dates no longer say month end, and anything that keys off the date, such as a cutoff report or a reversal set for the first of the next month, is a few days out.
The third column is the expensive one. Thirty days is a little shorter than the average month, so the dates drift. February gets no rent and May gets two entries.
The year total is still 222,000, which is why an annual review rarely catches it. The February and May income statements are both wrong by 18,500, and a monthly flux review spends time explaining a rent swing that is only a scheduling choice.
Give each date one key.
A schedule runs more often than people expect. A job retries after a timeout. Someone presses Run now on the same day the scheduled run fires. A template saved with a past start date creates the missed months at once: Sage Intacct queues these catch up entries automatically when you save.
The safe design gives each occurrence one key, the template plus the date, and makes the ledger refuse a second entry with the same key. A repeat run then finds the entry it already made and moves on. Without that key, the only protection is a person spotting two rent entries on the same day, usually during the flux review.
The same thinking applies to a template you change. If the rent goes up in July, end the old template on 30 June and start a new one on 31 July. The entries for January to June then still point to the template and amount that produced them.
Let a closed month stop the schedule.
Now add a fifth template. The company sublets a small office from 1 August at 3,400 a month. September is closed and locked on 7 October, and the signed sublease reaches finance on 12 October. Someone sets up the template with a start date of 31 August.
Two entries, 6,800 in all, now belong to months that are already closed. Sage Intacct’s help page says plainly to be mindful not to select a date in a closed period. There are three ways a system can respond: post into the closed month anyway, move the entries quietly into October, or stop and show that it skipped.
The third is the one to want. The first changes a month the team has signed off. The second hides a cutoff decision inside an entry that looks routine. Stopping leaves the choice with a person, and the choice is short. If 6,800 is immaterial, book it once in October with a note saying which months it covers, and start the template on 31 October. If it is not, it is a prior period question and the month gets reopened through the normal process.
Either way, the October flux review sees 10,200 of sublease expense where 3,400 is expected, and the note explains it before anyone has to ask.
Leave a trail from each entry to its template.
Auditors already treat well run recurring entries differently. PCAOB AS 2401 paragraph .61 says standard journal entries used on a recurring basis are generally subject to the company’s internal controls, and asks auditors to put more emphasis on nonstandard ones. Paragraph .60 names preformatted entries and exception reports as examples of controls the auditor should understand.
The same paragraph .61 lists round numbers among the signs of an inappropriate entry. Recurring entries are often round: 18,500 of rent, 7,200 of maintenance. A link from each entry to its template, and from the template to the lease or contract, is what lets those entries be cleared quickly instead of sampled one by one.
Keep the support on the template as well as the first entry. Sage Intacct notes that an attachment added to a recurring entry is linked only to the first transaction it creates, so the November rent entry carries no lease unless the team puts it somewhere the auditor can follow.
| Test | What good looks like |
|---|---|
| Start a monthly template on 31 January. | The March entry is dated 31 March. |
| Run the same date twice, by hand or by retrying a failed run. | One entry for that date, and a log line saying the second run found it. |
| Lock a month, then let a scheduled date fall inside it. | No entry in the locked month, a visible skipped run, and nothing posted to the next month without a person deciding. |
| Save a template with a start date three months back. | You can see, before saving, how many catch up entries it will create and in which periods. |
| Open any generated entry. | It names the template it came from, and the template still holds the support. |
How Rivane runs recurring journals today.
In Rivane a recurring template holds balanced journal lines, a schedule and an end. A scheduled run each day picks up every template that is due. The key for each occurrence is the template plus the date, so a retry or a second Run now finds the entry already made.
Rivane recurring journals, as built
# How Rivane runs recurring journals today.
templates journal entry or sales invoice;
lines must balance before saving
schedule monthly with a count (quarterly
is 3, annual is 12) or every N
days (weekly is 7)
month end anchored on the start date's day:
31 Jan, 28 Feb, 31 Mar
bounds end date or a maximum count;
the template then shows Ended
daily run one scheduled sweep; a template
can also be run now
one key template + date; a repeat run
finds the entry already made
output a draft entry, posted through the
same path as a manual one
locked month logged as skipped; the template
stays on that date until a person
reopens the month or skips it
trail every entry links to its template;
every run is logged
The month end rule is the first column of the date table: the day comes from the start date, so 31 January runs to 28 February and back to 31 March. A date in a locked month is logged as skipped and the template stays on that date, so the sublease example would wait at 31 August until someone reopens August or skips the date forward. Each generated entry records the template it came from, and an entry dated in a month that was closed and reopened is flagged as a prior period change.
Some limits worth knowing. Every generated entry arrives as a draft today, whichever posting option the template has, and posts through the same path as a manual entry, including any approval rules. Amounts are fixed on the template; there is no formula or variable amount. Schedules are monthly counts or a number of days, with no business day rule. Pause, resume, skip and end are available through the API, while the recurring list in the app shows each template’s status with a Run now action.
A schedule worth trusting is short to describe.
Calendar months anchored on the start date. One key per date. A locked month that stops the schedule and shows it. An end, an owner and the support on every template. Run the five tests on whatever system you use, ideally before the first close in it.
If you would like to run those tests in Rivane with your own templates, book a demo.
Sources
- Intuit, Create recurring invoices and other transactions in QuickBooks Online (updated 5 August 2026). Read in the page for the three template types: Scheduled for transactions that never change, such as rent, loan payments and depreciation; Reminder for something like a utility bill that changes each month; and Unscheduled, created by hand each time.
- Sage Intacct, Add a recurring journal entry. Read in the page for catch up entries queued when the start date is in the past, the warning not to pick a date in a closed period, the end options (never, a number of occurrences, or an end date), the email alert when a scheduled entry fails, and the note that an attachment links only to the first entry created.
- PCAOB, AS 2401, Consideration of Fraud in a Financial Statement Audit. Read on the PCAOB site for paragraphs .58 to .62: preformatted journal entries and exception reports (.60), the characteristics auditors look for, including round numbers (.61), and the difference between standard entries used on a recurring basis and nonstandard entries (.61).
- Hyperbots, What is recurring journal entry automation? Read as a current answer. It lists the parts of a good setup (template, schedule, amount logic, approval, evidence, exception review) but does not cover month end dates, repeat runs or closed periods.
A note on how this was researched. The Intuit and Sage Intacct pages and AS 2401 were read on their own sites. The current answer was read in full as text. The company, its templates and every amount are examples, and the dates and totals were computed in a script and checked by hand. The Rivane section describes the product as built today, checked against the code rather than marketing copy.
On embedded social posts: we looked for public posts from practitioners or vendors on recurring journal schedules and found none we could verify as current, relevant and authentic, so this article uses ordinary citations instead.