Company MTD Mapping Process (CT600)

This page explains, step by step, how Trade Control builds the company MTD CT600 micro-accounts mapping from template definitions and live transactions.

It is aimed at technical implementers and advanced users who need to understand the mapping pipeline rather than the user interface.

This document focuses on:

For an overview of what the MTD interface shows, see company-map.md.

1. High-level mapping chain

At a high level, the mapping process is:

In shorthand:

Transactions → Cash Codes → Categories → Reporting Groups → AC-codes → MTD CT600

Each stage is deterministic and defined by the template stack.

2. From transactions to cash codes

2.1 Posting transactions

Operational activity is recorded as transactions, for example sales, purchases, or wages.

Each transaction is posted to a cash code.

Cash codes represent the smallest operational buckets, for example sales, materials, subcontractors, rent, or bank charges.

The choice of cash code is a configuration decision in the company’s chart of accounts.

The mapping process assumes:

If a transaction uses a cash code that is not mapped to a category in the Profit Root, it will not contribute to any AC-code total.

3. From cash codes to categories

3.1 Category membership

Each cash code is assigned to exactly one category in the Category Tree.

Examples, names illustrative and not exhaustive:

This assignment is defined in the template SQL:

3.2 Category totals

For each category, the system totals all transactions posted to its cash codes.

These category totals are the primary inputs to the reporting groups and AC-codes.

4. From categories to reporting groups

4.1 Reporting group assignment

Categories are grouped into reporting groups that correspond to the micro-accounts structure, for example Turnover, Other Income, Direct Costs, Staff Costs, Admin, Premises, Depreciation, and Tax.

Examples:

The reporting group assignment is defined in the template layer and is stable for the micro-accounts format.

4.2 Reporting group totals

For each reporting group, the system sums the totals of all categories assigned to that group.

These reporting group totals are then mapped to AC-codes.

5. From reporting groups to AC-codes

5.1 AC-code mapping

The micro-accounts CT600 format uses a small set of AC-codes.

The mapping from reporting groups, and sometimes specific categories, to AC-codes is defined in MICRO_CUR_2026 and refined in MICRO_CUR_STD_2026.

Typical examples:

Additional codes such as CP28 and CP46 are used for capital and depreciation movements and are populated from specific categories and cash codes defined in the STD template.

5.2 AC-code totals

For each AC-code, the system:

The result is the resolved AC-code value used by the MTD CT600 interface.

6. Template layering and its effect on the mapping

The mapping process is driven by a template stack.

Each template contributes definitions and overrides.

6.1 BASE_MIN_2026

BASE_MIN_2026 provides the foundation:

If only BASE_MIN_2026 were applied, the system would have a coherent Category Tree but no complete CT600 micro mapping.

6.2 MICRO_CUR_2026

MICRO_CUR_2026 adds the micro-accounts layer:

After MICRO_CUR_2026, the system can produce a valid micro-accounts CT600 mapping, but with relatively coarse-grained categories and cash codes.

6.3 MICRO_CUR_STD_2026

MICRO_CUR_STD_2026 refines the mapping for standard micro deployments:

The final resolved mapping is the result of all three templates applied in order, with later templates overriding earlier ones where they define the same structures.

7. Validation and common failure cases

The mapping process includes validation to catch configuration and template issues before they surface as incorrect CT600 values.

7.1 Unmapped cash codes

Symptom:
Transactions appear in the ledger but do not contribute to any AC-code total.

Cause:
A cash code is not assigned to any category in the template layer.

Resolution:

7.2 Unmapped categories

Symptom:
A category total is non-zero, but no AC-code shows the expected movement.

Cause:
The category is not mapped to any reporting group or AC-code in MICRO_CUR_2026 / MICRO_CUR_STD_2026.

Resolution:

7.3 Conflicting template definitions

Symptom:
Totals appear duplicated or missing after a template change.

Cause:

Resolution:

7.4 Depreciation and capital mismatches

Symptom:

Cause:

Resolution:

8. How the MTD CT600 interface uses the resolved mapping

Once the mapping chain has been resolved and validated:

The interface does not recalculate or reinterpret the mapping.

It simply presents the resolved result of the template-driven pipeline described above.