Journal entry status machine
A journal entry is one double-entry posting drafted from a document. It carries classificationConfidence (HIGH / MEDIUM / LOW / UNCLASSIFIED) and a free-form flags[] (e.g. KEYWORD_MATCH_ONLY, NON_BASE_CURRENCY, REVIEWER_ATTENTION_REQUIRED).
What each state means
| State | Meaning | Who actions it |
|---|---|---|
DRAFT | Freshly constructed by the classify-and-draft worker; not yet reviewed | Bookkeeper |
FLAGGED | Low-confidence fields, unclassified CoA, or otherwise needs attention | Bookkeeper / Senior Accountant |
APPROVED | Reviewer accepted (as-is or edited); goes into the upload file | Terminal |
REJECTED | Reviewer removed from the batch; logged with reason | Terminal |
ESCALATED | Flagged for senior review with a comment | Senior Accountant resolves |
Confidence levels
| Confidence | When | Default state |
|---|---|---|
HIGH | Vendor-master exact match | DRAFT (auto-approvable on review) |
MEDIUM | CoA keyword match | DRAFT |
LOW | Keyword match without vendor master | FLAGGED (KEYWORD_MATCH_ONLY) |
UNCLASSIFIED | Nothing matched | FLAGGED |
Common flags
| Flag | Meaning |
|---|---|
KEYWORD_MATCH_ONLY | LOW confidence — keyword fired but vendor unknown |
NON_BASE_CURRENCY | Document not in client's base currency (FX rate applied) |
REVIEWER_ATTENTION_REQUIRED | Senior accountant override is needed |
DUPLICATE_SUSPECTED | Hash matches another entry in the same batch |
Overriding a flag (clearing the entry to APPROVED despite the flag) requires the OVERRIDE_JOURNAL_FLAG action — Senior Accountant or Platform Admin only.
Where these transitions happen in the handbook
- All transitions: Review a journal batch (B-05)
- Escalation surface: Exception queue (B-12)