Appearance
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_indexhas exceededperiodsare 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_*_configerror 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.