# Entry Desk > Paste one register of unbooked month-end items and get three things over it: a triage verdict per > item, the balanced journal entries, and the multi-period release schedule. A free deterministic > engine in the browser does the prorations and the cent-exact amortisation first, then holds the > model's answer accountable to them. - URL: https://entry-desk.skillsafe.ai/ - API docs: https://entry-desk.skillsafe.ai/api.html - Token panel: https://entry-desk.skillsafe.ai/tokens.html - Platform: SkillSafe (https://skillsafe.ai/) - Model: `gpt-terra` (the balanced OpenAI tier alias) - Price: the app itself is free; each run costs the signed-in user credits for the model call ## What it is for One user, in one sitting, holding one pile of month-end support they have not booked yet: the invoices that arrived after cut-off, the annual policy that started mid-month, the asset that went into service, the four days of payroll that straddle the month end, the contract with revenue still deferred. Entry Desk turns that pile into a triage decision, a set of balanced entries, and a release calendar. It is **not** a general ledger, an ERP integration, or a close-management tool. It does not post, it has no connection to any accounting system, and it does not give financial, accounting, audit or tax advice. Everything it produces is a draft for a qualified preparer and a controller to review. ## The one work object A **register**: one row per unbooked item. Delimited text (tab, comma, semicolon, pipe, or aligned whitespace), with or without a header row. Recognised column roles, matched on many spellings: `description`, `vendor`, `amount`, `date`, `term_start`, `term_end`, `account`, `credit_account`, `department`, `type`, `currency`, `life_months`, `salvage`, `booked`, `support`, `reverses`. With no header row, roles are inferred from what each column contains. Three optional settings sit beside the register: the close period (a month), the proration convention (actual days or whole months), and a materiality floor. A **chart of accounts** may also be pasted — one account per line as `code`, `name` and optionally its kind (`expense`, `asset`, `liability`, `revenue`) — and that is what makes account codes checkable rather than merely present. ## The three lanes All three read the same register and return the same envelope; only the `body` differs. 1. **`triage`** — a `book` / `defer` / `reject` / `query` verdict per item, each with the date that decides its period, the amount tested against the materiality floor, and the approver routed off the approval matrix. This is the inspect-and-decide stage. 2. **`entries`** — the balanced debit and credit lines for the items that belong in this period, with account codes drawn from the pasted chart, an audit-grade memo, the reversal flag and reversal date, and the rows deliberately not booked with their reasons. 3. **`schedule`** — for every term-dated item: basis, how the basis was derived, the support reference, the period portion, what is already booked, this period's accrual, the whole monthly release calendar, and the one-line draft entry. The handoff is a button, not a copy-paste chore: triage passes its verdicts into the entries lane, so only the rows the user decided to book get an entry. ## What runs free, in the browser, with no account - **Money parsing** across parentheses negatives, both thousands conventions, a trailing `CR`, currency symbols and codes, and `k`/`m` scale suffixes. Handled in integer cents throughout. - **Date parsing** that reports a day-first / month-first ambiguity instead of guessing silently, and accepts `2026-07-15`, `15/07/2026`, `15-Jul-26`, `Jul 15 2026` and a bare month. - **Item typing** into AP accrual, prepaid release, depreciation, payroll accrual, revenue recognition, reclass or unclassified — with the evidence for the classification stated. - **Prorations**: the period portion by actual days or by whole months, with the formula shown. - **Cent-exact schedules**: straight-line release across a term, and straight-line depreciation over a life with an optional mid-month convention. The periods sum to the basis exactly, and the rounding difference is placed explicitly in the final period rather than smeared across periods or dropped. - **Twenty deterministic checks**: no amount, no date, ambiguous date, out of period, missing term, reversed term, expired term, duplicate, suspiciously round amount, negative amount, no account code, a code absent from the pasted chart, a thin memo, no support reference, above an accounting manager's authority, an accrual not marked to reverse, an over-booked period portion, mixed currencies, an asset with no useful life, and below the materiality floor. - **Exports**: the parsed register as CSV, the full release calendar as CSV, and the read-out as Markdown. ## How the model is held accountable The engine's facts go **into** the run input, and the model's answer is checked back **against** them: - Every flag the browser raised must come back marked `confirmed`, `set-aside` or `superseded`, one reconciliation entry per flag entry with its row, so a flag that is a real defect on one row and harmless on another can say so. A flag the model ignored is displayed as ignored. - Every drafted entry is checked for debits equal to credits in cents, agreement with the period portion the browser computed for that row to the cent, account codes present in the pasted chart, and the debit and credit sides facing the way that item type requires. - Every register row with a non-zero period amount that got no entry is reported as an omission, and every drafted entry naming a row that is not in the register is reported as an invention. - Every schedule the model returns is compared period for period against the one the browser computed. Checks the app cannot make it says it cannot make — for instance, account codes cannot be validated when no chart was pasted — rather than passing them silently. ## Deliberate limits - **No lease accounting.** ASC 842 and IFRS 16 right-of-use assets are out of scope; a row that looks like a lease is classified and flagged as needing the lease standard, not scheduled. - **No currency translation.** Mixed-currency registers are flagged and never totalled across currencies. - **No apportioning a gross figure by guesswork.** A payroll accrual given as one gross amount is booked as one line with the missing benefits and employer-tax components named, not split across accounts the register never mentioned. - **A register longer than one run can carry is cut on whole-row boundaries with the header kept**, and the number of rows profiled locally versus sent is stated. Never a silent truncation, and never a cut through the middle of a row. - **The approval thresholds are the published defaults** from `@anthropics/journal-entry-prep` ($50K and $250K) and should be set to the organisation's own materiality. ## Persistence Runs are saved to the signed-in user's SkillSafe account in a declared `jeruns` collection, mirrored in `localStorage` for instant paint and offline fallback. The mirror is scoped per subject, so two people sharing a browser never see each other's registers, and signing out purges this device's copy. Restore brings back the result, or the result together with the register that produced it. ## Sources Entry Desk is an independent derived work built on three published agent skills. Credit for the accounting practice encoded here belongs to their authors. - `@anthropics/journal-entry` (`anthropics/knowledge-work-plugins`) — the entry types, the debit and credit conventions, the standard entry format, and the review checklist. - `@anthropics/journal-entry-prep` (`anthropics/knowledge-work-plugins`) — the approval matrix, the documentation requirements, and the twelve common errors. - `@anthropics/accrual-schedule` (`anthropics/financial-services-plugins`) — basis, period portion, already booked, this-period accrual, and the requirement that every basis cite its support. Entry Desk is not affiliated with, endorsed by, or maintained by Anthropic.