We pay the same bills every month. Can we enter them once, and how do we know they keep running?
Rent, cleaning and software bills come every month. This skill designs and checks the schedule for a repeating bill, invoice or journal entry. Each month after that, it checks that the entry actually ran.
You tell it the amount, the dates and the coding. It calculates every future date and amount. It checks your accounts and suppliers, and it looks for a repeating entry that already exists. It finds charges that you key by hand each month. It gives you a specification, and a person enters it in your accounting system. It never creates the template, never posts and never schedules anything.
24 rent bills for Northbrook Trading, from January 2027
Northbrook Trading is a made-up company. It works in US dollars, on the accrual basis, with a calendar year. On Thursday 29 October 2026 the owner asks for a schedule of office rent bills to Riverside Properties. The rent is $8,500 a month, due on the 1st, for 24 months from 1 January 2027. The skill's own read-back uses $8,500. Other pages on this site show other rent figures for Northbrook. This page follows the skill's own example. The read-back gives no year, so this page uses 2027.
The lease has a 3% increase each year at its anniversary, 1 January 2028. This page treats the increase as compound each year, and the anniversary as the lease date. Those two choices are the example's choices. In 24 months only one increase occurs: 8,500 × 1.03 = 8,755.
When the 1st is a weekend or a holiday, Northbrook moves the bill to the next business day. Accountants call this a forward roll. The skill asks for the holiday calendar, because each country publishes its own. Northbrook uses the US federal holiday dates that the Office of Personnel Management publishes1.
| # | Due | Scheduled | Amount $ | Status |
|---|---|---|---|---|
| 1 | Fri 1 Jan 2027, New Year's Day | Mon 4 Jan 2027 | 8,500.00 | Pending |
| 2 | Mon 1 Feb 2027 | Mon 1 Feb 2027 | 8,500.00 | Pending |
| 3 | Mon 1 Mar 2027 | Mon 1 Mar 2027 | 8,500.00 | Pending |
| 4 | Thu 1 Apr 2027 | Thu 1 Apr 2027 | 8,500.00 | Pending |
| 5 | Sat 1 May 2027 | Mon 3 May 2027 | 8,500.00 | Pending |
| 6 | Tue 1 Jun 2027 | Tue 1 Jun 2027 | 8,500.00 | Pending |
| 7 | Thu 1 Jul 2027 | Thu 1 Jul 2027 | 8,500.00 | Pending |
| 8 | Sun 1 Aug 2027 | Mon 2 Aug 2027 | 8,500.00 | Pending |
| 9 | Wed 1 Sep 2027 | Wed 1 Sep 2027 | 8,500.00 | Pending |
| 10 | Fri 1 Oct 2027 | Fri 1 Oct 2027 | 8,500.00 | Pending |
| 11 | Mon 1 Nov 2027 | Mon 1 Nov 2027 | 8,500.00 | Pending |
| 12 | Wed 1 Dec 2027 | Wed 1 Dec 2027 | 8,500.00 | Pending |
| 13 | Sat 1 Jan 2028, New Year's Day | Mon 3 Jan 2028 | 8,755.00 | Pending |
| 14 | Tue 1 Feb 2028 | Tue 1 Feb 2028 | 8,755.00 | Pending |
| 15 | Wed 1 Mar 2028 | Wed 1 Mar 2028 | 8,755.00 | Pending |
| 16 | Sat 1 Apr 2028 | Mon 3 Apr 2028 | 8,755.00 | Pending |
| 17 | Mon 1 May 2028 | Mon 1 May 2028 | 8,755.00 | Pending |
| 18 | Thu 1 Jun 2028 | Thu 1 Jun 2028 | 8,755.00 | Pending |
| 19 | Sat 1 Jul 2028 | Mon 3 Jul 2028 | 8,755.00 | Pending |
| 20 | Tue 1 Aug 2028 | Tue 1 Aug 2028 | 8,755.00 | Pending |
| 21 | Fri 1 Sep 2028 | Fri 1 Sep 2028 | 8,755.00 | Pending |
| 22 | Sun 1 Oct 2028 | Mon 2 Oct 2028 | 8,755.00 | Pending |
| 23 | Wed 1 Nov 2028 | Wed 1 Nov 2028 | 8,755.00 | Pending |
| 24 | Fri 1 Dec 2028 | Fri 1 Dec 2028 | 8,755.00 | Pending |
| Total | 207,060.00 | NOT POSTED |
The skill checks the total with its own formula: occurrences × amount + escalations. That is 24 × 8,500 + 12 × 255 = 204,000 + 3,060 = 207,060. There is no sales tax on the rent, so the total tax is 0.
Saturday 1 January 2028 shows how a roll policy works. Federal staff observe that holiday on Friday 31 December 20271. That rule is for federal staff. Northbrook's policy is the owner's choice, and it is forward. So the skill uses the holiday date and moves the bill to Monday 3 January. It never moves one bill forward and the next bill backward.
Why must a bill stay in its own month? On the accrual basis, you record an expense in the period when you incur it, no matter when the cash moves2. Rent is a usual example2. So a roll never moves an occurrence out of its period.
A schedule is not a template
A spreadsheet of future rows is a plan. The template is a record inside your accounting system, and a person must create it. If nobody creates it, nothing happens, and somebody finds the gap in month two. The skill says this in each output.
What the skill does
It gives a specification and checks it against your booksThe common shortcut
Make the rows, load them, and believe it runsAt Northbrook, the skill reads the platform's list of repeating entries. The list has the landlord, the insurer and three software suppliers. It already holds a Riverside template: $8,500, monthly on the 1st, with no end date. Its next date is Sunday 1 November 2026. The counterparty, the amount and the frequency are the same, so the new schedule would duplicate it from January. The skill reports the possible duplicate and asks the owner.
The owner says that the lease renews on 1 January 2027. So the specification says this: a person ends the old template after its Tuesday 1 December 2026 bill, before the new one goes in. The skill also flags that the old template had no end date. An open-ended entry needs management approval.
Then it checks the old template's history. Did a bill post each month? The template posted in each month from January to October 2026, to Rent Expense. That is 10 × 8,500 = 85,000, and no month is missing. A government guide to internal control lists reconciliations among the control activities3. This monthly check is a reconciliation: what should run against what did run.
Four charges that you key by hand each month
The skill looks at 12 months of history for charges that repeat but have no template. It shows them as candidates. It does not show them as a plan, because some people key a charge by hand on purpose.
| Candidate | Per month $ | What the skill sees |
|---|---|---|
| Summit Cleaning | 950 | On the 1st, keyed by hand, and not on the list of repeating entries. A second $950 on 6 September is a possible duplicate. The skill names no other skill for it. This page leaves it for the owner to check |
| Crestline Logistics | 1,500 | $1,000 a month through August, then $1,500 from 1 September, per a contract letter. History is not the contract. Check the letter first |
| Keystone Pest Control | 350 | A candidate |
| Metro Shred | 120 | A candidate. The owner says no: "we check the shred count each month" |
| Total | 2,920 |
Two charges look regular but are not candidates. The term loan of $300,000 has interest on the 15th, but the interest changes with the days in each period. The $7,200 insurance policy, paid on 1 September, spreads at 7,200 ÷ 12 = 600 a month. The skill sends that one to prepaid-amortization-schedule.
A 24-month lease can need lease accounting
Under the US lease standard, a lease of 12 months or less can stay off the balance sheet. Most longer leases need an asset and a liability4. Northbrook's lease is 24 months, and it reports on the accrual basis. So the skill flags "lease accounting may apply, expense is not the billed amount", and it asks the reporting basis. The skill does no lease accounting. Your accountant decides the coding. The skill does not say which sheet carries the flag.
Ten items, in one message
The skill asks these first, in one short batch. It asks only for what it cannot already see. The skill labels them A to I, with an extra item F2 after F.
- A. Use MosoFin for this run, or upload the data yourself?MosoFin is the connection to your books and other linked platforms. With it, the skill reads from there. Without it, you upload the files, and the checks are the same. It asks only if your account has the MosoFin tools.
- B. What type: a repeating journal entry, bill, invoice or subscription? With which supplier or customer?The template and the risk of a duplicate change with the type. For bills and invoices, the skill finds the name in your supplier or customer list.
- C. The amount and the currency of each occurrence.Each occurrence stays in the contract currency.
- D. The start date, and an end date or a number of occurrences.An entry with no end needs management approval. For "until cancelled", the skill builds 12 or 24 months and flags the schedule for a renewal review.
- E. The frequency and the day rule, for example "the 1st of the month" or "the last business day"."Monthly" alone can mean more than one date. The rule must give one date.
- F. The coding: the accounts, the item, and a tax code if tax applies.The skill checks each one against your live chart of accounts and item list.
- F2. The payment terms, for example Net 30, for bills and invoices.The terms set the due date of each occurrence.
- G. The holiday calendar, and the roll policy: forward or backward.Business-day rolls need both, in one direction for the full schedule. The skill never picks a default. It asks once, and it reads a saved version first.
- H. Any increase rule, and any stop or pause conditions.These are in the contract, not in the ledger. This item is optional. For an increase tied to a price index, the skill asks for the index source and your assumption. It never assumes a rate.
- I. A part period at the start or the end: divide by days, or follow the contract?The two methods give different amounts on the first bill. The skill never picks a default. Northbrook's lease starts on the 1st, so it needs no part period.
Then it reads the plan back and waits for your yes. The skill's own example is this one:
"Building a recurring bill for Northbrook Trading: office rent to the landlord you named, $8,500 a month in USD, on the 1st, 24 occurrences from 1 January, rolled forward on the US federal holiday calendar, coded to Rent Expense, a 3% annual increase at the lease anniversary, validated against your Mosofin connection. Nothing will be posted. Shall I go ahead?"
Connect once, or upload your lists
Say yes, then give it what no ledger holds
- It reads back the workspace and the company file by name, and waits for your yes
- It reads the chart of accounts, the supplier and customer lists, the tax codes and the posting history
- It reads a saved holiday calendar and roll policy before it asks for them
- You still give it the increase and stop terms and the part-period choice. They are not in the books
- If no connection works, it still calculates the schedule and says that it checked nothing against your books
Type the terms, and bring the exports
- The type, counterparty, amount, currency, dates, frequency and day rule, typed in the chat, required
- The coding and the payment terms, typed in the chat or as CSV or XLSX, required
- Chart of accounts, and the item list for invoices, CSV or XLSX, required for the account check
- Supplier or customer list and tax code list, CSV or XLSX, recommended
- List of repeating templates and 12 to 24 months of transactions with this counterparty, CSV or XLSX. The skill recommends both, for the duplicate check and the monthly check
- The holiday calendar and roll policy, typed in the chat, when the rule uses business days. A memo pattern, the contract as a PDF, and a list of several items, when you have them
On the upload path, the checks run on your files and carry the label user-supplied. A check with no file is NOT VALIDATED, and the header names it.
Six sheets, from the summary to the coverage
It asks whether you want an Excel file before it makes one. Northbrook's file name is Riverside Properties_RecurringSchedule_2026-10-29.xlsx, with the company name on every sheet. If you say no, you get the same sheets as tables in the chat. After you see the results, it offers to save the holiday calendar and the roll policy. It also offers to save the register of repeating arrangements and the declined candidates with their reasons. It never saves a rate.
If the owner says "put these in QuickBooks for me", the skill declines. It has no write access. It gives the specification, says that nobody posted anything, and offers the monthly check for next month. If the owner asks about a price-index increase, it asks for the index source and the assumption, and it gives no rate.
Six rules that never bend
- Never reads MosoFin without asking. A connected account is not permission to read it.
- Never reads anything before you answer the intake items and say yes to the read-back.
- Never writes, updates or deletes anything, in any system. Every entry that it makes is a proposal for a person to post.
- Never says "posted", "created" or "scheduled". The output is a specification. Every occurrence starts Pending, and the file's header says NOT POSTED.
- Never assumes a rate or uses a default holiday calendar. The skill and a saved version supply no inflation or tax rate. A saved version can keep the index source, never the rate.
- Never builds a schedule before it checks for an existing one. It never lets an unvalidated schedule look validated. The validation status goes in the header of the first sheet.
Six terms, in plain English
- Recurring template
- A record inside your accounting system that makes the same entry on a fixed date. A person creates it.
- Schedule
- The list of every future date and amount. The skill makes it as a specification.
- Roll
- The move of a date that falls on a weekend or holiday to the next or the previous business day.
- Escalation
- A fixed increase in the amount, for example 3% each year at the lease anniversary.
- Accrual basis
- You record an expense in the period when you incur it, no matter when the cash moves2.
- Run audit
- The monthly check that each repeating entry posted, at the expected amount and accounts. It is the skill's name for this check.
Where the facts on this page come from
The sources are a US government holiday list, an accounting textbook, an older US government audit guide and the US lease standard. We found each one on 28 October 2026 in search results. We did not open the pages, so follow each link for today's wording. What the skill does comes from the skill's own files.
- U.S. Office of Personnel Management: Federal HolidaysOPM publishes the federal holiday dates. Most federal staff on a Monday to Friday week observe a Saturday holiday on the Friday before. They observe a Sunday holiday on the Monday after.
- OpenStax: Principles of Accounting, Volume 1, 4.1 Explain the Concepts and Guidelines Affecting Adjusting EntriesAccrual accounting records revenue and expenses in the period when the business earns or incurs them, no matter when cash moves. Rent and insurance are examples of costs that adjusting entries record at period end.
- GAO: Internal Control Standards (Internal Control Management and Evaluation Tool, GAO-01-1008G)Control activities include approvals, verifications, reconciliations and records. No one person should control all key parts of a transaction. This is older guidance from 2001.
- FASB: Accounting Standards Update No. 2016-02, Leases (Topic 842)A short-term lease has a term of 12 months or less. A lessee can elect to keep it off the balance sheet. Other leases generally need a right-of-use asset and a lease liability.
No outside authority backs the six stages, the Pending status, the NOT POSTED header or the six sheets. The same applies to the 12- or 24-month horizon, the duplicate check and the run audit. They are the skill's own rules. We made up Northbrook Trading and every figure in the example for this page. All four sources are US sources. Other countries have their own lease standards, holiday calendars and price indexes.
This page explains recurring-transaction-builder, from the MosoFin finance skills library, MosoFin/mosofin-finance-skills on GitHub. Read the skill on GitHub → The skill is in the card format on the main branch. It merged in PR #1 on 26 October 2026, and a bookkeeping-audit fix followed on 27 October 2026. This page describes that version. Want the worked examples? Learn it step by step →