Accounts

TL;DR

Two different things share the word. A GL account is NetSuite's, imported and read-only here. A CCC account is this system's own, editable, and it is what a calculation rule books against.

Both appear in CCC and they are not interchangeable.

The GL account

The general ledger account as NetSuite holds it. It arrives through the NetSuite import into gl_accounts, alongside subsidiaries and accounting periods, and it carries the account number finance works with.

It is read-only in CCC. Nothing in this system edits it; the import replaces it. You see it at /generalledger/accounts, which is a listing rather than an editor.

The ledger totals per period are attached to these accounts, which is what the income statement reads.

The CCC account

CCC's own account, in the accounts table, and the thing a calculation rule points at. A rule books its impact against a CCC account, never against a GL account directly.

It carries:

ColumnMeaning
nameWhat it is called in CCC
accountgroup_idWhich account group it belongs to, and therefore which part of the margin chain the impact lands in
gl_accountThe internal gl_accounts.id it maps to, not the displayed account number
parentIts parent, so accounts form a tree
sortorderWhere it sits in the income statement

You edit it at /configuration/accounts. That screen is an editor, and an edit changes what future calculation does.

Why the mapping matters

The join is accounts.gl_account = gl_accounts.id. For example, the model uses internal id 438 for displayed account 81100; entering 81100 as the id does not create that mapping. The gl_account column links the two account lists. It lets CCC book a rule impact against its own account while still reporting it under the ledger account finance recognises, so the income statement can put transaction-level contribution and ledger period totals side by side.

Changing a mapping affects report joins and future calculation. It does not rebuild stored impacts or per-order totals. Record the affected rules and dates, then use recalculate margin.

The account group decides the margin component

The group, not the account, decides which part of the chain an impact reaches. A group of type contribution is one of revenues, cogs, voc or vmc, and contribution margin adds them in that order. Groups of other types sit outside the contribution chain and appear in the income statement instead.

/configuration/accountgroups is read-only. Groups come from config/reference/accountgroups.json, reapplied by the installer. Changing the groups is a repository change, including the impact tables required by contribution groups.

Where to look, and where to change

ToGo to
See the ledger accounts NetSuite sent/generalledger/accounts
See or change CCC's accounts and their GL mapping/configuration/accounts
See the groups and margin components/configuration/accountgroups
See what was booked against them/contributionmargin/impact
See the ledger totals per period/generalledger/accounttotalperperiod

Evidence

accounts schema from app/jobs/install/install.php, including the gl_account, accountgroup_id and parent columns. gl_accounts written by app/jobs/netsuite/accounts.php, which uses the swap pattern and is not defined in the installer. Account group types from config/reference/accountgroups.json. Screens from app/http/configuration/ and app/http/generalledger/. Basis: code-checked.