# Rollforward Desk > Build and review a roll-forward schedule for one balance-sheet account for one period. The > browser reads the account's GL detail, sorts every posting into additions, accruals booked, > reversals of prior accruals, payments and settlements, reclasses and adjustments, FX > translation or unclassified, foots beginning balance plus activity against the ending balance > per GL, ties each line to the rows behind it and works any gap instead of plugging it. All of > that is free and runs before sign-in. A metered review (gpt-terra) then decides whether the > schedule can go into the close package, explains each line and each exception, places the > unclassified rows and writes support requests and a file note. Every amount it writes is > checked against the schedule. URL: https://rollforward-desk.skillsafe.ai/ API: https://rollforward-desk.skillsafe.ai/api.html Derived from: @anthropics/roll-forward (anthropics/financial-services-plugins, Apache-2.0) - https://skillsafe.ai/skill/@anthropics/roll-forward Notice: https://rollforward-desk.skillsafe.ai/NOTICE.txt ## Who it is for An accountant or controller closing the month, or an auditor's contact preparing support, who holds one balance-sheet account's GL detail for the period (an accrued liability, deferred revenue, a prepaid, a reserve) and needs the schedule that proves the movement: where the beginning balance came from, what moved it, and that it lands on the trial balance. ## What the browser computes (free, no model) - Reads the paste or a dropped CSV/TSV/text export. The first line naming at least two known columns is the header: date, journal or document, source, description or memo, and either debit and credit columns or one signed amount (debit positive by default; credit positive is a setting). Accepts thousands separators, parentheses and minus negatives, CR/DR suffixes, currency symbols and codes, European decimals, ISO, month/day/year, day/month/year and dotted dates. Total and balance lines are skipped and named; a beginning-balance line is used only when no beginning balance is entered. - Balances are entered in the account's natural sign, and every posting is converted to it with the normal-balance setting, so a liability's credit balance is positive and reversals and payments are normally negative. - Classifies each posting by the first rule that applies: a line the user chose for that posting, a component column in the paste, the journal source (REV, ACCR, PAY, CD, AP, SJ, FX, RECLASS and their usual spellings), or a memo keyword (reversal, accrual, payment, settlement, recognised, amortisation, invoice, billed, reclass, adjustment, revaluation). Anything else is unclassified and still counts toward the foot. Every row carries the rule that placed it. - The schedule: L1 beginning balance (close package, else GL at prior-period end, else the paste's beginning-balance line), L2 additions, L3 accruals booked, L4 reversals of prior accruals, L5 payments and settlements, L6 reclasses and adjustments, L7 FX translation, L8 unclassified, L9 computed ending balance, L10 ending balance per GL, L11 unexplained difference. Each line has a ties-to reference naming its rows and rules and its debits and credits. - The gap, never plugged. Three causes are provable from the numbers: a close-package beginning balance that differs from the GL at prior-period end, postings dated outside the period, and exact duplicate rows. Each has a determinate effect on the gap; they are tested alone and in every combination, and only a combination that closes the gap within the tolerance is called its cause. Otherwise the gap is unexplained and candidates are named as candidates only: a posting of exactly the gap's size, one of exactly half (a debit/credit swap), a gap divisible by nine (a transposition). - Flags: unclassified rows, rows moving against their line, cut-off, duplicates, last period's accruals with no reversal and reversals with nothing to reverse (when last period's accrual list is pasted), accruals and reversals of the same amount in one period, unreadable lines, truncation, a slash-date setting that looks reversed (the other reading puts every row inside the period), and a tolerance that is unreadable or large enough to hide a real difference. Amounts of a trillion or more are refused rather than rounded. - Verdict floor: ties, ties with exceptions (foots, but a warning needs an answer), or does not tie. - Exports: schedule CSV and Markdown, every classified posting as CSV (memo cells that start with = + - @ are neutralised for spreadsheets), and a print of the schedule. File names carry the account, the period and the foot result, and say "partial" when the paste was cut. - Next period: copy this period's accruals as next period's "last period's accruals" list, or start the next period in one step (the ending balance carries forward as the beginning balance and the dates move on a month). - Against your last review: when a saved review exists for the same account, the page lists each line whose figure has moved since. ## What the model does (metered) One lane, `review`. The run input is a JSON object: `task` ("review"), `facts` (the computed schedule as a JSON string), `account`, `entity`, `period`, `question`. The reply is one JSON object: `verdict` (ties, ties_with_exceptions, does_not_tie; never looser than the floor), `headline`, `lines` (one note per activity line with postings), `gap` (status, the proven causes, explanation, action), `exceptions` (one per warn or block flag, with owner and blocking), `reclass_suggestions` (one per unclassified row, with a line that fits its sign), `support_requests`, `file_note` and `summary`. The page checks all of it against the schedule: coverage of lines, flags and rows, the gap status and causes, blocking rules, verdict floor, that every amount written appears in the facts, that every id cited exists, and that nothing proposes a plug. Suggested lines can be applied to the free schedule and the review run again. ## What it does not do No ERP or GL connection, no posting of entries, no sub-ledger matching (see a reconciliation tool for GL against sub-ledger), no multi-period or multi-account roll. It does not know your accrual policy or materiality, so a flagged item can be legitimate; that is why the review names an owner and the evidence to pull. Not accounting or audit advice. ## Examples Four invented companies, each with a saved review replayed at no cost: an accrued-liabilities roll that ties (Quillmere Fabrication), deferred revenue that ties with exceptions (Brasswick Analytics: two unclassified rows and a billing that reduces the balance), accrued expenses whose gap is explained exactly by a beginning-balance mismatch, a posting dated in July and a duplicated payment (Velmarsk Components), and prepaid expenses whose gap has no proven cause (Calder & Finch, with a sign-flip candidate).