---
title: "What GAAPcore is, and what it is not · Builder's guide · Chappell AI"
description: "GAAPcore is a ledger, not an app. Your software sends it business documents; it turns them into journal entries, inventory layers and statements, or it refuses them and explains why."
url: https://chappellai.us/guide/02-what-gaapcore-is-and-what-it-is-not/
---

Builder's guide · Section 2

# What GAAPcore is, and what it is not

GAAPcore is a ledger, not an app. Your software sends it business documents; it turns them into journal entries, inventory layers and statements, or it refuses them and explains why.

## What GAAPcore does for you

| It owns | What that means for your console |
| --- | --- |
| Double entry and balancing | You never compute a journal entry for a sale, a receipt or a shipment. You send the document; GAAPcore posts the entry. |
| Subledgers that tie out | Customer, vendor, inventory, bank, asset and lease balances always agree with their control accounts, and GAAPcore reports the tie-out. |
| FIFO inventory cost | Stock is valued in cost layers. Shipments, scrap and production consume the layers in order; your console never sets a cost. |
| Periods and the close | Closed periods cannot be posted into. The close is previewed, checked and then locked. |
| Document lifecycles | Drafts, posting, and reversals that point back to the original. A posted document is never edited; a mistake is reversed. |
| Statements and notes | Trial balance, income statement, balance sheet, cash flow, changes in equity, notes, and group (consolidated) statements. |
| Who wrote what | Every posting is stamped with the application that wrote it and when. |

## What it leaves to you

-   **Screens and workflow.** GAAPcore has no user interface.
-   **People.** GAAPcore authenticates *applications*, never people. Your console signs in its own staff, decides what each may do, and records who asked (section 8).
-   **Approvals and separation of duties** between people (section 10).
-   **Commercial data the books don't need**: price lists, product photos, delivery preferences, notes for the sales team. Keep these in your own store, not in the ledger.

## The database says no

The rules run as database checks, so no caller can get around them, not even a buggy one. When your console asks for something the books cannot accept, it gets a clear refusal. These are real messages:

| The console tries to… | GAAPcore answers |
| --- | --- |
| Post a journal with $1,000.00 of debits and $990.00 of credits | `journal entry JE-0042 must balance (debits 1000.00, credits 990.00, lines 2)` |
| Date an invoice into a closed September | `invoice INV-1093 date 2026-09-28 falls in a closed fiscal period` |
| Post a manual journal straight to a bank's cash account | `CONTROL_ACCOUNT_RESTRICTED`: bank cash moves only through bank documents |

This is the main reason to build on GAAPcore. A console can have bugs and still never leave the books wrong. The worst outcome is a refusal that your screen shows to the user.
