MosoFin · GL coding, in plain words

Which account does each payment belong in, and which ones should a person review?

Each payment in your books goes into an account, for example Rent or Office Supplies. This skill suggests that account for each transaction. It shows the evidence for each suggestion, and it separates the clear items from the items that a person must review.

The 20-second version

You give it the transactions, or it finds the transactions that nobody coded yet. It reads your own chart of accounts and how you coded each vendor before. It suggests an account, says how sure it is, and gives one sentence of reasons. It flags the items that need a decision from you. It never posts anything and never changes your books.

What a run finds

39 transactions at Northbrook Trading for September 2026

Every business keeps a list of its accounts. Accountants call this list the chart of accounts. A textbook gives each group of accounts a first digit, for example 5 for expenses. It lists the accounts in the order of the financial statements1. The textbook says that these numbers are its own conventions. Charts differ from company to company. Northbrook Trading, for example, uses numbers that start with 6 for expenses. So the skill codes only to accounts that are in your own chart.

Northbrook Trading is a US company and works in US dollars. On Monday 5 October 2026, the owner asks the skill to code September. The skill finds 38 transactions in the account 8999 Uncategorized Expense. The owner also uploads one statement file from the bank. That file has one more item, a deposit from Stripe. Here are the 13 items that show how the skill thinks.

#DateVendorAmount $Suggested accountConfidenceWhy, and the flag
1Tue 1 SepHarbor Office Supply (via Square)−312.406520 Office SuppliesHighYou coded this vendor to 6520 in 23 of 24 earlier payments, most recently on Thu 20 Aug 2026
2Wed 2 SepNimbusHost−480.00None yet. The nearest is 6330 Software SubscriptionsLow, needs reviewA new vendor that sells cloud hosting. Your chart has no hosting account, so you choose the account
3Fri 4 SepSwiftPost−86.506150 Shipping and DeliveryMediumThe word "courier" is in the bank text
4Tue 8 SepBrightwave Telecom−229.006340 Telephone and InternetMediumInconsistent history: 7 times to 6340 and 5 times to 6310. Your house rule picks 6340, and the skill reports the conflict
5Wed 9 SepTechDepot (via PayPal)−3,150.00History says 6520. Consider Computer EquipmentMediumPossible capital expenditure, and unusual amount: 21.7 times the usual $145.00
6Fri 11 SepBlue Ridge Coffee−148.756730 MealsMediumDuplicate vendor record: the history is in two vendor records, 9 and 4 payments
7Mon 14 SepNorthshore Bank−1,850.002700 Bank Loan, the full amountMediumSplit required: a loan payment, and no lender statement shows the interest part
8Tue 15 SepKlarwerk (via Wise)−940.006420 Professional FeesMediumCross-border: the vendor is in Germany. The skill applies no tax treatment
9Fri 18 SepSwiftPost+45.006150 Shipping and Delivery, as a reductionMediumA refund. It reduces the expense that it came from
10Sat 19 SepGlowSpa−260.00None. Needs reviewLowPossible personal: a spa on a Saturday. You give the business purpose
11Mon 21 SepNo payee−57.20None. Needs reviewLowThe bank text is "POS DEBIT 0034871". It has no payee and no description
12Fri 25 SepNorthbrook credit card−4,200.00A transfer. No expenseMediumPossible transfer: +4,200.00 arrives on the card account on Mon 28 Sep, 3 days later
13Wed 30 SepLindqvist Property−3,000.006810 Rent, for reviewMediumRelated party: the owner named this as another business of the owner
14 to 38Sep25 routine items−11,486.90The accounts in their historyHighConsistent history. No flag
39Tue 29 SepStripe, from the bank file+3,862.40No income. Match it to 1250 Stripe ClearingLow, needs reviewPossible invoice payment or deposit: the amount agrees with the 3,862.40 in 1250 Stripe Clearing
1 to 38From the ledger−26,155.75−14,668.85 for rows 1 to 13, and −11,486.90 for the routine items
1 to 39With the bank file−22,293.35−26,155.75 + 3,862.40
Example figures for a made-up company, in dollars. Rows 2 and 10 are Low by our choice for this example. The skill gives no band for row 2, and the personal flag on row 10 limits it to Medium in any case.

Row 5 is a laptop and a monitor for $3,150. To capitalize a purchase is to record it as a long-term asset and spread its cost over the years of its use. Companies do this only for items of material value, so a cheap stapler stays an expense2. Northbrook's own limit for this is $2,500, and $3,150 is $650 above it. So the skill flags the purchase. You decide.

Rows 11 and 39 show why records must name the source of each payment and each receipt. A tax guide says that records must show the payee, the amount, the date and what you bought. It also says that records must separate business receipts from other receipts3. Row 11 has no payee, so the skill does not guess. Row 39 is a Stripe payout. Your sales are already in the books, so the skill matches the payout to the clearing account. If it coded the payout as income, it would count the same sales two times.

Row 10 can be personal. Business expenses must be ordinary and necessary, and a personal cost that you paid from business money is not a business expense4. The skill does not know your reason for the spa visit. It shows the flag, and you answer it.

High26Row 1 and the 25 routine items. 26 ÷ 39 = 66.7%
Medium9Rows 3, 4, 5, 6, 7, 8, 9, 12 and 13. 9 ÷ 39 = 23.1%
Low4Rows 2, 10, 11 and 39. 4 ÷ 39 = 10.3%
Flagged9Rows 4, 5, 6, 7, 8, 10, 12, 13 and 39. Rows 2 and 11 need review and have no flag

26 + 9 + 4 = 39 rows. The three percentages add to 100.1% because we round each one to one decimal place.

The mistake it catches

A habit looks like a rule

The fastest way to code a payment is to copy the account that the vendor got last time. That works until the habit is wrong. In the skill's own words, "two years of consistent miscoding still recommends itself confidently". So the skill reports how often you used an account. It does not say that the account is correct.

What the skill does

It shows the history and its count
Brightwave: 7 to 6340, 5 to 6310a split
Brightwave answer6340, by your rule
TechDepot: 6 of 6 to 6520capex flag
For Brightwave, the history is 7 ÷ 12 = 58.3% and 5 ÷ 12 = 41.7%. The skill does not pick a side. Your house rule picks 6340, and the skill reports that the history disagrees. For TechDepot, the history is consistent, but a $3,150 laptop is not office supplies. The skill flags it and limits it to Medium.

The common shortcut

Copy the most common or the latest account
Brightwave6340 or 6310, by chance
TechDepot6520, no question
Who sees the problemnobody
Telephone costs stay in two accounts. A $3,150 asset goes into the expenses of one month, and nobody asks if you must capitalize it.

A rule from you or a correction that you saved always wins over the history. The skill still shows you the conflict.

How a run starts

Seven questions, in one message

The skill asks these first, in one short batch. It asks only for what it cannot already see.

  1. Use MosoFin for this run, or upload the data yourself?
    MosoFin is the connection to your books and the other platforms you link. Without it, you upload the files, and the checks are the same. The skill asks this only if your account has the MosoFin tools. If not, it says once that the run is manual.
  2. Which transactions do you want coded? Paste a list, give a bank or card export, or let the skill find them.
    This is the work itself, so you must answer it. With MosoFin, the skill offers to find the items in your uncategorized and suspense accounts.
  3. Which company are they for?
    The same vendor can go to different accounts in different charts. In a group, the skill checks the company for each batch before it codes any item.
  4. Do you want tax codes? If yes, for which country or state, and which tax codes do you use?
    The skill suggests tax codes only with both answers. Without them, each row says "TBD". It never assumes a tax treatment.
  5. Above what amount do you record a purchase as an asset, and not as an expense?
    The skill always asks this. It drives the possible capital expenditure flag. Ask your accountant if you are not sure. If you leave it blank, the skill never picks a limit. It flags large equipment and marks the limit "unknown".
  6. Do you have house rules that override what you did in the past?
    Optional. A rule from you wins over the history. Without rules, the skill uses the history and calls it practice.
  7. What are the names of the owners, their family members on the books, and their other businesses?
    Optional. The skill uses the names only for the related-party flag and never stores them.

Then it reads the plan back and waits for your yes. The skill's own example is for Northbrook:

"Coding the 38 transactions in Uncategorized Expense at Northbrook Trading, read from your Mosofin connection, against its chart and coding history. Bank-feed items still awaiting review are not in the ledger — upload the statement CSVs if you want those coded too. Tax codes from the configured list, which code applies to be confirmed by you; capitalization threshold $2,500. Shall I go ahead?"

The Stripe deposit in row 39 came from the bank feed. It was not in the ledger yet, so the owner uploaded the statement file for it.

What you need

Connect once, or upload two files

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 your chart of accounts, your vendors, your coding history, and the items in uncategorized and suspense accounts
  • It reads the tax codes in your books, your bank and card accounts, your employee list, and your country and industry
  • You still give it your tax rules, your capitalization limit and any house rules. Your books do not hold them
  • For bank-feed items that are not in the ledger yet, upload the statement files
Uploading instead

Bring the transactions and the chart

  • Transactions to code, with date, payee, description and signed amount. A CSV or XLSX export, or a pasted table. Required
  • Chart of accounts, numbers and names, CSV or XLSX. Required. Without it, the skill stops and asks
  • Company name, required. Country or state, required for tax codes. Industry, if known
  • Tax code list, required for tax codes
  • Recommended: exports for every bank and card account, your earlier vendor-to-account coding, and open invoices if the batch has deposits
  • Optional: your capitalization limit and house rules, typed in the chat
What you get back

A coded list, with the evidence beside each line

The coded listEach row has the suggested account, the tax code, the confidence, one sentence of reasons, the evidence and the flags.
A summaryThe total coded, the percentage in each confidence band, and the count of flagged items.
The headerThe workspace and the company by name, any company file left out, whether the data was test data, and whether the skill read your chart.
Two more sheetsUncoded Population lists what waits in uncategorized and suspense accounts. Coverage shows what the skill read, and with which tool.

It asks before it makes an Excel file. For Northbrook, the name is Northbrook Trading_Coded_Transactions_2026-10-05.xlsx. If you say no, you get the same sheets as tables in the chat. A Data sources line ends the answer. If you recode an item, the skill asks at the end if it must keep that change as a rule. After you see the results, it asks if you want to save your own version. On a yes, it saves your rules, for example phone and internet to 6340 for Northbrook. It never saves the transactions, the amounts or a personal or related-party flag.

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 questions 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 invents an account. It codes only to accounts in your chart. With no chart, it stops and asks. Then it uses your category names, or a placeholder that you authorize with a mark that says you must change it before you post.
  • Never treats how often you did something as proof that it is correct. It reports a split history as a split. Your rule or your saved correction wins, and it shows the conflict.
  • Never chooses a capitalization limit or a tax treatment for you. It shows a possible personal or related-party item and never concludes it. It never stores that flag against a named person.
Words you'll hear

Seven terms, in plain English

Chart of accounts
The numbered list of all the accounts in your books1.
GL coding
The choice of an account in the general ledger for each transaction.
Uncategorized or suspense account
A holding account for items that nobody coded yet. For the skill, it is the list of work to do.
Capitalize
To record a purchase as a long-term asset and spread its cost over its years of use2.
Confidence band
High, Medium or Low. Any flag from the special checks limits an item to Medium. These bands are the skill's own.
Transfer
Money that moves between two of your own accounts. It is not an expense and not income.
Related party
An owner, a family member or another business of the owner. A payment to one of them needs a person to review it.
Sources

Where the facts on this page come from

The sources are two sections of an accounting textbook and two IRS pages. 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. OpenStax: Principles of Accounting, Volume 1, 3.2 Define and Describe the Expanded Accounting Equation and Its Relationship to Analyzing TransactionsA chart of accounts gives each group a first digit, for example 1 for assets and 5 for expenses. It lists the accounts in the order of the financial statements. The textbook says that these are its own conventions.
  2. OpenStax: Principles of Accounting, Volume 1, 11.2 Analyze and Classify Capitalized Costs versus ExpensesTo capitalize is to record a long-term asset and spread its cost over its economic life. Companies capitalize only items of material value.
  3. IRS: Publication 583, Starting a Business and Keeping RecordsRecords must identify the source of receipts. Supporting documents must show the payee, the amount, the proof of payment, the date and a description of the purchase.
  4. IRS: Small Business, Self-Employed, Other Business FAQs, Income and expensesBusiness expenses must be ordinary and necessary. You cannot deduct personal expenses that you paid from business money. For a cost with mixed use, only the business part counts.

No outside authority backs the five tiers, the confidence bands, the flags, the 3-day transfer window, the Evidence and Verdict columns or the three sheets. 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.

About this skill

This page explains gl-coding-assistant, 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 correction followed on 27 October 2026. This page describes that version. Want the worked examples? Learn it step by step →