Books, Records, Reporting and Reconciliation Controls
The record-keeping obligation
Books and records must be complete, accurate, timely and retrievable. In practice that means a single authoritative trade record, a full audit trail of who did what and when (including amendments, with before-and-after values), sequential numbering that cannot be overwritten, and retention for the period the regulator requires - commonly around five years, counted from the date the record was created or the relationship ended, whichever the rule specifies. Records must be produced on request and retained in a form that survives system migration.
Reporting flows from the same data: regulatory returns, transaction reporting, client statements and tax reporting. If the underlying book is wrong, every report is wrong, so data quality and reconciliation are control activities, not back-office chores.
Reconciliation compares independent sources: bank/cash accounts, custodian position statements versus internal stock records, and internal ledger versus sub-ledger. Breaks must be investigated to root cause, aged, escalated on a defined timetable, and cleared only with documented approval. Manual journal adjustments require maker-checker; one person should not both trade and confirm.
Traps
- Reconciling to zero without investigating the cause - a compensating error can hide two real ones.
- Restarting the retention clock on an amendment, or deleting rather than superseding a record.
- Allowing the same individual to book, confirm and reconcile a trade.
- Assuming a large unexplained break is "timing" indefinitely; timing differences must resolve.
Rule of thumb
Two independent sources, one owner, an ageing clock. Every reconciliation needs a named owner, a frequency, a break-age threshold and an escalation path.
Worked example: Internal stock records show 10,000 shares of XYZ; the custodian statement shows 9,600. Investigating rather than adjusting: 300 relate to a trade settling tomorrow (timing) and 100 are an unbooked corporate action (real error) - treating all 400 as timing would leave the error live.