Skip to content

Close Items in Depth

This page documents the major close items Kraal automates as part of the month-end close workflow. Each item is template-driven (see Client Setup & Close Workflow) and runs when its predecessors finish; this guide focuses on the substance of each item — what gets computed, what gets posted, and what to look for in review.

TIP

All automatically generated close-item journal entries appear in the client's audit trail. See Audit Trail & Execution Feed for how to review history.

Tax Provision

Computes the period's income tax provision using a CPA-grade ASC 740 reconciliation rather than a flat book × rate multiplication.

What it computes:

  • Taxable income = pre-tax book income + permanent differences + temporary differences
  • Current tax = taxable income × combined rate (the cash payable)
  • Deferred tax = -temporary differences × combined rate (the timing shift)
  • Total book tax expense = current + deferred = (book + permanent) × rate

Configuration:

  • Effective rate (or) Federal rate + State rate — when both federal and state are configured, the proposal can split current tax into two journal entries with separate accounts
  • Expense + payable accounts for each rate channel
  • Deferred tax accounts (optional) — when configured, deferred tax produces a separate journal entry against the deferred asset / liability
  • Book-to-tax adjustments — list of permanent and temporary differences with label, amount, and direction (add / subtract)
  • YTD true-up (on by default) — Kraal subtracts what's already been booked in the current fiscal year so monthly re-runs only post the delta, not the full YTD amount

What you see in metadata:

  • A reconciliation block tracing pre-tax → adjustments → taxable income → federal/state current → deferred → total → YTD already booked → period delta
  • A separate proposal per channel (federal, state, deferred) when accounts are configured

Review checklist:

  • Confirm the period's pre-tax income source matches what you'd accrue
  • Sanity-check the effective tax rate against the company's recent ETR
  • For deferred, confirm the temporary differences haven't reversed since the last period

Bad Debt Allowance

Computes the required allowance for doubtful accounts using an aging-bucket percentage model, and posts the delta against the existing allowance — never the full amount.

What it computes:

  • Aging buckets per outstanding receivable: current / 30 / 60 / 90 / 120+ days
  • Required allowance per bucket × the configured rate, summed across buckets
  • Existing allowance balance (from trial balance or GL)
  • Period adjustment = required − existing

Customer-level visibility:

The result includes a per-customer aging breakdown — top 25 customers by exposure with their total outstanding, oldest age, and per-bucket detail. Use this during review to see who is driving the allowance rather than just the aggregate.

Specific write-offs:

If you configure a write-off age threshold, Kraal flags invoices aged beyond it as write-off candidates with their customer, age, and outstanding amount. Write-off proposals are always review-only — they need explicit sign-off and proper invoice linkage when posted.

Configuration:

  • Aging percentages per bucket (defaults are conservative)
  • Expense account (P&L) — typically Bad Debt Expense
  • Allowance account (BS contra-asset)
  • Recovery account (optional) — for when the required allowance drops below existing and you're releasing reserve
  • Write-off age days (optional) — enable specific write-off proposals

Review checklist:

  • Look at the top-customer view: are the aging totals reasonable?
  • Confirm the existing allowance balance source — Kraal will note whether it pulled from trial balance closing or GL net activity
  • For write-off candidates, verify each invoice is genuinely uncollectible before posting

Prepaid Amortization & Deferred Revenue

Both items follow the same pattern: the client provides recurring amortization schedules; Kraal computes the period's straight-line recognition amount and posts it.

Schedule fields:

  • Total amount
  • Number of periods (e.g., 12 for monthly over a year)
  • Current period index (which period are we in?)
  • Debit and credit accounts

What Kraal does correctly:

  • Cent-residual — the final period absorbs any rounding remainder so the schedule totals exactly back to the original amount
  • Past-the-end — schedules whose period_index has exceeded periods are recognized as completed and skipped. Re-running a closed schedule will not over-recognize
  • Missing index — when no period-index field is present, Kraal still recognizes the base amount but flags the schedule so you know the residual cent won't post automatically

Review checklist:

  • Spot-check that the per-period amount matches your schedule
  • Confirm completed schedules are showing as such (you may want to retire them)
  • For schedules flagged as "not tracked," add a current-period field so the final-period catch-up will fire next year

Payroll Accruals

Computes the period-end payroll accrual based on:

  • Gross per pay period
  • Pay frequency (biweekly, semimonthly, monthly)
  • Date of last completed payroll
  • Optional payroll tax rate

Kraal accrues gross × (accrued_days / period_days) plus the tax portion, producing two journal entries (wages accrual and payroll-tax accrual) with auto-reversal flagged — these will reverse on the first day of the next period.

Review checklist:

  • Verify the last payroll date is current
  • For first-time payroll periods, confirm gross per period
  • After posting, confirm the auto-reversal lands in the next open period

Depreciation

Kraal prefers the connected ERP's native depreciation tool, which knows about each asset's useful life, salvage value, and schedule. The native path posts depreciation entries automatically; Kraal reports the count of entries created.

When the native tool is unavailable, Kraal lists the fixed assets that would otherwise be depreciated — these need manual review and posting in your ERP.

Cutoff Analysis

Looks at GL activity across a window around the period boundary (period-end ± 5 days) and surfaces entries that may have been misposted to the wrong period:

  • Creation-vs-posting gap > 7 days — an entry posted on the 30th but created on the 10th of the next month suggests a back-date that may warrant explanation
  • Posting-date / creation-date period mismatch — an entry posted in one period but actually created during another

These are surfaced as review items, not corrections. The reviewer decides which (if any) need adjustment.

Period Closing Voucher (PCV)

The final close step submits the period closing voucher in your ERP, which locks the period and zeroes income/expense to retained earnings.

Kraal will not run the PCV until all prerequisite items are complete (trial balance, reconciliations, accrual entries, depreciation, deferred revenue, prepaid amortization, cutoff analysis). It also won't run if the ERP's fiscal year configuration is missing or the retained earnings account is not set.

By default, PCV auto-submits when the client's automation policy allows it. Clients that prefer manual submit can disable auto-submit per template; the policy still drafts the voucher but leaves the submit step to a human.

Intercompany Reconciliation

See the dedicated page: Multi-Entity & Intercompany Reconciliation.

FX Revaluation

See the dedicated page: FX Revaluation.

What if a close item fails?

  • Configuration errors — Kraal returns a clear missing_*_config error naming the field. Fix in close configuration and re-run.
  • Transport errors — temporary ERP-side failures are flagged as retryable; running the item again often succeeds.
  • Imbalances or thresholds breached — Kraal returns the item as needing review, with the imbalance details in metadata. Fix the underlying data before re-running.

Each close item has a stable identifier (tax_provision, bad_debt_allowance, etc.) used in the audit trail, so the full history of each run — what was configured, what posted, what was skipped — is reviewable in the Audit Center.

Kraal — AI-powered accounting for modern firms