MosoFin · Recurring transactions, in plain words

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.

The 20-second version

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.

What a run builds

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.

#DueScheduledAmount $Status
1Fri 1 Jan 2027, New Year's DayMon 4 Jan 20278,500.00Pending
2Mon 1 Feb 2027Mon 1 Feb 20278,500.00Pending
3Mon 1 Mar 2027Mon 1 Mar 20278,500.00Pending
4Thu 1 Apr 2027Thu 1 Apr 20278,500.00Pending
5Sat 1 May 2027Mon 3 May 20278,500.00Pending
6Tue 1 Jun 2027Tue 1 Jun 20278,500.00Pending
7Thu 1 Jul 2027Thu 1 Jul 20278,500.00Pending
8Sun 1 Aug 2027Mon 2 Aug 20278,500.00Pending
9Wed 1 Sep 2027Wed 1 Sep 20278,500.00Pending
10Fri 1 Oct 2027Fri 1 Oct 20278,500.00Pending
11Mon 1 Nov 2027Mon 1 Nov 20278,500.00Pending
12Wed 1 Dec 2027Wed 1 Dec 20278,500.00Pending
13Sat 1 Jan 2028, New Year's DayMon 3 Jan 20288,755.00Pending
14Tue 1 Feb 2028Tue 1 Feb 20288,755.00Pending
15Wed 1 Mar 2028Wed 1 Mar 20288,755.00Pending
16Sat 1 Apr 2028Mon 3 Apr 20288,755.00Pending
17Mon 1 May 2028Mon 1 May 20288,755.00Pending
18Thu 1 Jun 2028Thu 1 Jun 20288,755.00Pending
19Sat 1 Jul 2028Mon 3 Jul 20288,755.00Pending
20Tue 1 Aug 2028Tue 1 Aug 20288,755.00Pending
21Fri 1 Sep 2028Fri 1 Sep 20288,755.00Pending
22Sun 1 Oct 2028Mon 2 Oct 20288,755.00Pending
23Wed 1 Nov 2028Wed 1 Nov 20288,755.00Pending
24Fri 1 Dec 2028Fri 1 Dec 20288,755.00Pending
Total207,060.00NOT POSTED
Example figures for a made-up company, in dollars. The shaded rows are the 7 dates that roll forward: #1, 5, 8, 13, 16, 19 and 22. Every roll stays in its own month. Each row has a memo, for example "Office rent January 2027, Riverside Properties, lease yr 1, $8,500".
Rent per month$8,500 → $8,7558,500 × 0.03 = 255 more from bill 13
Bills2412 at 8,500 and 12 at 8,755
Total$207,06012 × 8,500 + 12 × 8,755 = 102,000 + 105,060
Dates rolled7Weekends and US federal holidays, always forward

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.

The mistake it catches

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 books
Rows in the file24, all Pending
File headerNOT POSTED
Existing Riverside templatefound
A person enters the schedule. Each month, the skill reads the ledger and checks that the bill posted. The Status column changes from what actually posted, never from the plan.

The common shortcut

Make the rows, load them, and believe it runs
Templatenever created
Old Riverside templatestill runs
Rent from Januarypaid twice
A template that points at a renamed account fails every month and shows no error. A file of 24 rent bills that somebody loads twice pays the landlord twice.

At 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.

Duplicates found1The open-ended Riverside template
Months checked10 of 10January to October 2026, 85,000 posted
Posted by the skill0A person posts. The skill reads
What else it finds

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.

CandidatePer month $What the skill sees
Summit Cleaning950On 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 Logistics1,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 Control350A candidate
Metro Shred120A candidate. The owner says no: "we check the shred count each month"
Total2,920
Example figures for a made-up company, in dollars. 950 + 1,500 + 350 + 120 = 2,920. The skill ranks candidates by frequency and effort. All four are monthly, so this page lists them by amount. That order is this page's choice.

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 flag for your accountant

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.

How a run starts

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.

  1. 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.
  2. 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.
  3. C. The amount and the currency of each occurrence.
    Each occurrence stays in the contract currency.
  4. 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.
  5. 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.
  6. 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.
  7. F2. The payment terms, for example Net 30, for bills and invoices.
    The terms set the due date of each occurrence.
  8. 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.
  9. 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.
  10. 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?"
What you need

Connect once, or upload your lists

Connected with MosoFin

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
Uploading instead

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.

What you get back

Six sheets, from the summary to the coverage

Schedule summaryThe type, counterparty, dates, totals and increase rule. The header says NOT POSTED and gives the validation status, for example "validated against Northbrook Trading's chart on 29 Oct 2026".
Occurrence scheduleOne row for each occurrence: date, period, amount, tax, total, memo and a Status column. Every row starts Pending.
Posting detailEach occurrence with its full posting lines, and a Validated column for each line.
Reversal scheduleOnly for accruals. Northbrook's rent is a bill, so this sheet is not needed.
Validation and discoveryThe account and supplier checks, the duplicate check, and the candidates.
CoverageWhat the skill calculated, what it read, and with which tool.

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.

What it never does

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.
Words you'll hear

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.
Sources

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.

About this skill

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 →