{"id":1067,"date":"2026-10-28T14:34:36","date_gmt":"2026-10-28T14:34:36","guid":{"rendered":"https:\/\/zamacore.com\/blog\/?p=1067"},"modified":"2026-10-28T14:38:30","modified_gmt":"2026-10-28T14:38:30","slug":"erp-opening-balance-reconciliation-checklist-kenya","status":"publish","type":"post","link":"https:\/\/zamacore.com\/blog\/erp-opening-balance-reconciliation-checklist-kenya\/","title":{"rendered":"ERP Opening Balances: A Reconciliation Checklist for Kenyan Teams"},"content":{"rendered":"<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/zamacore.com\/blog\/wp-content\/uploads\/2026\/10\/zamacore-diagram.png\" alt=\"ERP Opening Balances: A Reconciliation Checklist for Kenyan Teams \u2014 workflow diagram\" width=\"1200\" height=\"630\"><\/figure>\n<p>An ERP can launch with every user trained and still begin with the wrong balances. Customer debts may be imported twice, a supplier credit may disappear, or stock quantities may agree while stock values do not. A successful import message only confirms that a file was accepted; it does not prove that the business records reconcile.<\/p>\n<p>This ERP opening-balance reconciliation checklist helps Kenyan operations and finance teams define migration acceptance tests. Use it alongside a broader <a href=\"https:\/\/zamacore.com\/blog\/erp-cutover-rehearsal-checklist-kenya\/\">ERP cutover rehearsal<\/a>. The focus here is the evidence needed to show that the opening position in the new system matches the approved source records.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/zamacore.com\/blog\/erp-opening-balance-reconciliation-checklist-kenya\/#Agree_on_one_cut-off_and_one_accountable_source\" >Agree on one cut-off and one accountable source<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/zamacore.com\/blog\/erp-opening-balance-reconciliation-checklist-kenya\/#Define_what_%E2%80%9Cmatching%E2%80%9D_means_before_importing\" >Define what \u201cmatching\u201d means before importing<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/zamacore.com\/blog\/erp-opening-balance-reconciliation-checklist-kenya\/#Reconcile_detail_as_well_as_totals\" >Reconcile detail as well as totals<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/zamacore.com\/blog\/erp-opening-balance-reconciliation-checklist-kenya\/#Check_units_and_locations_before_valuing_stock\" >Check units and locations before valuing stock<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/zamacore.com\/blog\/erp-opening-balance-reconciliation-checklist-kenya\/#Create_a_difference_register_instead_of_editing_in_the_dark\" >Create a difference register instead of editing in the dark<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/zamacore.com\/blog\/erp-opening-balance-reconciliation-checklist-kenya\/#Run_acceptance_tests_after_the_import\" >Run acceptance tests after the import<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/zamacore.com\/blog\/erp-opening-balance-reconciliation-checklist-kenya\/#Give_the_ERP_implementation_team_a_complete_brief\" >Give the ERP implementation team a complete brief<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Agree_on_one_cut-off_and_one_accountable_source\"><\/span>Agree on one cut-off and one accountable source<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Name the source system, extraction time and business cut-off date for each dataset. If stock is counted at one time while invoices continue to post, identify the movements needed to bridge that interval. Keep the original export unchanged and create a separate working copy for cleanup. Record who approved each correction.<\/p>\n<p>Every balance needs a business owner. Finance should approve account mappings and financial totals; stock controllers should approve quantities and locations; customer-service or credit teams should review disputed customer items. The implementation team can run the import, but it should not silently decide which conflicting business record is correct.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Define_what_%E2%80%9Cmatching%E2%80%9D_means_before_importing\"><\/span>Define what \u201cmatching\u201d means before importing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<table>\n<thead>\n<tr>\n<th>Dataset<\/th>\n<th>Compare<\/th>\n<th>Common exception<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Customers<\/td>\n<td>Open items, total balances and age bands<\/td>\n<td>Unallocated receipt or duplicate customer<\/td>\n<\/tr>\n<tr>\n<td>Suppliers<\/td>\n<td>Unpaid documents and credit balances<\/td>\n<td>Credit note missing from the export<\/td>\n<\/tr>\n<tr>\n<td>Inventory<\/td>\n<td>Quantity and value by item and location<\/td>\n<td>Different unit of measure<\/td>\n<\/tr>\n<tr>\n<td>General ledger<\/td>\n<td>Approved account-level opening totals<\/td>\n<td>Incorrect account mapping<\/td>\n<\/tr>\n<tr>\n<td>Cash and bank<\/td>\n<td>Approved balances and outstanding items<\/td>\n<td>Transaction posted on different dates<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Ask your finance lead to set the relevant accounting treatment and sign-off rules. The software team should implement those decisions and produce comparison reports. A system migration is not a reason to erase unresolved differences or move them into an unexplained balancing entry.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Reconcile_detail_as_well_as_totals\"><\/span>Reconcile detail as well as totals<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Two imports can have the same total and different errors. One customer&#8217;s balance might be overstated while another is understated by the same amount. Compare counts, unique identifiers and selected line items as well as grand totals. Review unusually large balances, negative values and records without a stable source reference.<\/p>\n<p>For customer and supplier accounts, decide whether to migrate individual outstanding documents or summary balances. Document what that decision means for statements, ageing and later allocations. Do not import both approaches as live balances unless the implementation design explicitly prevents double counting.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Check_units_and_locations_before_valuing_stock\"><\/span>Check units and locations before valuing stock<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A product sold as individual units may be purchased in cartons. If the old export records cartons and the new system expects pieces, the item count can be misleading even when product codes look correct. Make unit conversions explicit and review them with someone who handles the goods.<\/p>\n<p>Separate stock physically held at a shop from stock in transit, goods awaiting inspection and quantities assigned to another location. Agree how each category appears at cut-off. Test a sample item through a subsequent sale or transfer to confirm that its opening quantity behaves correctly after migration, not just on the first report.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Create_a_difference_register_instead_of_editing_in_the_dark\"><\/span>Create a difference register instead of editing in the dark<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Each discrepancy should have a reference, source amount or quantity, target amount or quantity, explanation, owner and resolution status. Attach the evidence for a correction. Keep formatting problems separate from business disagreements: a missing leading zero is a mapping issue, while a disputed supplier balance requires business review.<\/p>\n<p>When an import is repeated, identify the batch being replaced. Ask how the system prevents a second upload from creating duplicate balances. Rehearse a failed batch and recovery with sample records before the final migration. A controlled retry is more useful than a promise that uploads always succeed.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Run_acceptance_tests_after_the_import\"><\/span>Run acceptance tests after the import<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol>\n<li>Compare source and target totals for every approved dataset.<\/li>\n<li>Trace sample records back to their original identifiers.<\/li>\n<li>Review exceptions by owner and confirm the approved resolution.<\/li>\n<li>Generate a customer statement and allocate a test receipt.<\/li>\n<li>Review a supplier balance and a credit allocation in the test environment.<\/li>\n<li>Process a sample stock movement and compare the resulting reports.<\/li>\n<li>Record the final batch, approval date and people responsible for sign-off.<\/li>\n<\/ol>\n<p>Keep test activity separate from production transactions. If a production correction is required, use the agreed controlled process and retain its history. Avoid changing the source export after sign-off without generating a new version and explaining what changed.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Give_the_ERP_implementation_team_a_complete_brief\"><\/span>Give the ERP implementation team a complete brief<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Before commissioning migration work, list your current systems, record counts, available exports, unresolved differences and reporting needs. Identify who can answer questions about each dataset. Include the reconciliation reports and acceptance evidence in the scope, rather than treating migration as a simple spreadsheet upload.<\/p>\n<p>Discuss this brief with <a href=\"https:\/\/zamacore.com\/blog\/erp-implementation-services-in-kenya\/\">ZamaCore&#8217;s ERP implementation team<\/a>. Ask for a demonstration using a representative sample and a written separation between data cleanup, mapping, import, reconciliation and post-launch support.<\/p>\n<p>The go-live decision should rest on explainable records: approved source data, repeatable comparisons and resolved exceptions. That is what turns a technically completed import into an opening position the business can trust.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prepare ERP opening balances with checks for customer accounts, suppliers, inventory, source records, import exceptions and migration sign-off.<\/p>\n","protected":false},"author":1,"featured_media":1068,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-1067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-business-systems"],"_links":{"self":[{"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/posts\/1067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/comments?post=1067"}],"version-history":[{"count":1,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/posts\/1067\/revisions"}],"predecessor-version":[{"id":1069,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/posts\/1067\/revisions\/1069"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/media\/1068"}],"wp:attachment":[{"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/media?parent=1067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/categories?post=1067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/tags?post=1067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}