A useful ledger does not turn transaction strings into decisions. It makes each grouping traceable, labels every inference, and preserves unknowns for an accountable reviewer.
Freeze the source set and entity boundary
List the legal entity, accounts included, covered dates, source-file names, export timestamps, currencies, and row counts before normalization begins. Keep an unchanged copy of every buyer-supplied file and assign each row a stable source identifier. The working ledger should carry that identifier through every transformation so a reviewer can return from a vendor total to the exact transaction, invoice, or receipt that supports it.
Do not treat a missing account, partial month, excluded card, or unavailable invoice as zero activity. Record the missing source and covered period. If several currencies appear, preserve the original amount and currency. Add a converted column only when the buyer supplies the rate or approved conversion method, and label the date and source used. The factual ledger is allowed to be incomplete; it is not allowed to hide the incompleteness.
Group descriptors without erasing ambiguity
Create a raw descriptor column and a separate proposed vendor name. Repeated strings such as a processor prefix, local reseller, abbreviated product, parent company, or marketplace charge can refer to the same vendor, but the grouping remains a documented transformation. Preserve every distinct descriptor and cite the invoice, receipt, or buyer confirmation that supports a merge. When evidence conflicts, keep separate candidates and mark the relationship unknown.
Record transaction date, amount, currency, source, and any buyer-supplied vendor or owner. Calculate apparent cadence only from observed dates and label it inferred. Monthly-looking charges can include usage adjustments, credits, taxes, or several products billed together. A recurrence field should say what pattern appears in the included rows, not declare a contract term or renewal obligation that the source records do not establish.
Reconcile the ledger to included rows
Count and total the included source rows before and after grouping. List exclusions, refunds, reversals, transfers, and non-software candidates separately rather than deleting them during cleanup. Verify that every normalized amount points to one source row and that each source row appears once in the reconciliation. This is a control over the prepared document, not an accounting reconciliation or an opinion about financial statements.
Software Spend Record is operated by Reality Contact, LLC. The buyer decides which sources are complete, resolves ambiguous vendors, and gives the finished ledger to its responsible finance or procurement professional. The service records transaction facts and visible gaps. It does not verify charges, classify expenses, assign accounts, approve invoices, decide tax treatment, negotiate terms, or recommend which software to keep.
Where the service stops
Reality Contact, LLC prepares a factual inventory and document pack but does not provide bookkeeping, accounting, tax, legal, financial, or procurement advice; verify vendors; approve charges; judge necessity; negotiate; cancel; renew; or decide which software the buyer should keep. The buyer confirms source completeness, resolves unknown vendors, supplies renewal dates and responsible owners when known, writes its own keep or review instructions, and hands the ledger to its accountable finance or procurement professional. The service is informational document preparation and does not replace bookkeeping, accounting, tax, legal, financial, procurement, contract, or vendor review by accountable professionals. The buyer controls source completeness, resolves vendor identities, writes every keep or review instruction, and gives the ledger to its responsible finance or procurement professional.
Sources: Zylo pricing and SaaS system-of-record scope; Spendflo renewal-management scope.