{"id":1095,"date":"2026-11-11T21:11:24","date_gmt":"2026-11-11T21:11:24","guid":{"rendered":"https:\/\/zamacore.com\/blog\/?p=1095"},"modified":"2026-11-11T21:11:24","modified_gmt":"2026-11-11T21:11:24","slug":"designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor","status":"publish","type":"post","link":"https:\/\/zamacore.com\/blog\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/","title":{"rendered":"Designing a Custom ERP System in Kenya for a Project Based Contractor"},"content":{"rendered":"<figure><img decoding=\"async\" src=\"https:\/\/zamacore.com\/blog\/wp-content\/uploads\/2026\/11\/zamacore-designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor-flier.webp\" alt=\"ZamaCore guide to designing an ERP around project stores and site work\"><\/figure>\n<p>The van returns from a fit out site with four unopened light fittings. Someone places them in the central store, but the project still shows all four as consumed. A second site buys the same fittings next week. Finance thinks the first project cost more than it did and the buyer has spent money on items already in the building. Nothing was stolen or lost. The business simply failed to record the return in a way the next decision could use.<\/p>\n<p>A custom ERP system in Kenya can be worthwhile for a contractor when ordinary purchasing, stock and accounting tools cannot express how materials and costs move between projects. Construction and installation work often starts with an estimate, changes under site conditions and ends with outstanding commitments still to settle. A good design lets users follow both the physical fitting and the commercial promise attached to it.<\/p>\n<p>Consider a fictional contractor managing electrical fit outs in Nairobi and nearby counties. The contractor uses a central store, temporary site stores and occasional direct deliveries. This guide follows a light fitting from estimate to final account. It asks when a rule should be configurable, where custom development adds value and how to prove the resulting ERP fits the contractor&#8217;s working day.<\/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\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Decide_which_project_question_deserves_custom_treatment\" >Decide which project question deserves custom treatment<\/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\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Treat_the_estimate_as_a_baseline\" >Treat the estimate as a baseline<\/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\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Map_the_stores_that_actually_exist\" >Map the stores that actually exist<\/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\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Separate_a_request_from_a_stock_movement\" >Separate a request from a stock movement<\/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\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Show_committed_costs_before_supplier_invoices_arrive\" >Show committed costs before supplier invoices arrive<\/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\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Model_a_transfer_between_two_active_projects\" >Model a transfer between two active projects<\/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\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Keep_subcontractor_work_distinct_from_material_issues\" >Keep subcontractor work distinct from material issues<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/zamacore.com\/blog\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Design_for_site_evidence_arriving_late\" >Design for site evidence arriving late<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/zamacore.com\/blog\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Decide_which_rules_belong_in_configuration\" >Decide which rules belong in configuration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/zamacore.com\/blog\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Commission_a_pilot_around_a_real_project_close\" >Commission a pilot around a real project close<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/zamacore.com\/blog\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Plan_for_handover_while_the_design_is_fresh\" >Plan for handover while the design is fresh<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/zamacore.com\/blog\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Reconstruct_the_project_position_on_a_Friday_afternoon\" >Reconstruct the project position on a Friday afternoon<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/zamacore.com\/blog\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Give_a_site_supervisor_a_credible_fallback\" >Give a site supervisor a credible fallback<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/zamacore.com\/blog\/designing-a-custom-erp-system-in-kenya-for-a-project-based-contractor\/#Put_the_fitting_back_on_the_right_project\" >Put the fitting back on the right project<\/a><\/li><\/ul><\/nav><\/div>\n<h2 id=\"s1\"><span class=\"ez-toc-section\" id=\"Decide_which_project_question_deserves_custom_treatment\"><\/span>Decide which project question deserves custom treatment<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ask the commercial manager what they struggle to answer before approving another purchase. They might know the original budget and the invoices already received but lack a reliable view of committed orders, stock sitting at site and materials transferred to another job. That gap affects a decision the business makes repeatedly. It gives discovery a sharper purpose than a request for one system to manage everything.<\/p>\n<p>Use a recently completed project and reconstruct its position at a particular week. How much material had been ordered? How much had arrived? How much had been installed? What could still be returned? Record which answers came from reliable documents and which came from recollection. A custom ERP should improve the weakest connection in that chain. If existing tools already answer the question with modest configuration, a new build may offer little extra value.<\/p>\n<p>Define the decision in terms of a named role. Before approving a replacement purchase, the buyer needs to see usable project stock, central stock available for transfer and outstanding supplier deliveries. The site manager needs to confirm what is actually usable. The commercial manager needs to know which project would absorb the cost. That is a manageable problem to design and test. A universal real time view is too vague to serve as an acceptance condition.<\/p>\n<p>Check whether a process change would solve the problem. If the business already has a return function that nobody uses because responsibility is unclear, new software alone will inherit the same habit. Assign an owner and try the existing process on a small job. If it still cannot distinguish a reusable return from waste or an interproject transfer, you have evidence for configuration or a custom extension.<\/p>\n<h2 id=\"s2\"><span class=\"ez-toc-section\" id=\"Treat_the_estimate_as_a_baseline\"><\/span>Treat the estimate as a baseline<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The estimator expects a project to use eighty light fittings. The customer later adds a floor and approves another ten. The storekeeper issues eighty five, the site installs seventy nine and returns six. Each number answers a different question. An ERP that continuously overwrites the original estimate will make every final job look close to its most recent plan. Preserve the baseline and the approved changes as separate records.<\/p>\n<p>Define the level of detail at which people can maintain the baseline. A cost code might represent lighting for a floor, while material lines identify individual fittings. Too little detail makes variation analysis impossible. Too much detail creates codes that supervisors cannot distinguish during busy work. Ask an estimator and a site supervisor to classify the same sample purchase independently. Differences reveal where definitions or examples need improvement.<\/p>\n<p>Decide how a revised estimate becomes authorised. A proposed variation may be technically necessary while the customer has not yet approved its commercial terms. Managers need visibility of that exposure without counting it as approved revenue. The design should distinguish an internal forecast, a proposal sent to the customer and an accepted variation. Developers should describe how each state affects purchasing authority and the project report.<\/p>\n<p>Retain assumptions that explain the estimate. If the eighty fittings assume one specification and a supplier later proposes a different model, price and availability can change without changing the number of fittings. Capture the approved specification, any allowed substitute and the person who can make the substitution. A clear baseline lets the buyer investigate a difference without having to reconstruct an old tender from people&#8217;s memories.<\/p>\n<h2 id=\"s3\"><span class=\"ez-toc-section\" id=\"Map_the_stores_that_actually_exist\"><\/span>Map the stores that actually exist<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The central store has shelving and a regular clerk. A site store may be a locked room controlled by a foreman. A direct delivery might go straight to an installation team without passing through either location. The ERP must recognise the points where responsibility changes, even when a site lacks a permanent storekeeper. Ask the contractor to draw the movement of a typical fitting on its way to installation.<\/p>\n<p>Give each location a clear meaning. Stock in central stores may be available across projects. Stock reserved for a project may still be physically central but commercially committed. Goods in transit have left one location and have not been acknowledged at the next. Installed material is no longer usable stock. If a single location code attempts to represent ownership, reservation and physical position together, staff will struggle to record ordinary movements honestly.<\/p>\n<p>Ask who can confirm receipt at a temporary site. The system could allow a nominated site supervisor to acknowledge quantity and condition from a phone. If another person receives the delivery in an emergency, provide an exception process with later review. A workflow that permits only an absent storekeeper to receive goods will encourage supervisors to borrow credentials or backdate documents. Design a legitimate path for the conditions your sites actually face.<\/p>\n<p>Plan the close of a temporary store. When a project ends, remaining materials must return to central stores, transfer to another project or be dealt with under an agreed exception. The site should not disappear from a location list while stock remains against it. Ask the developer to demonstrate a closure checklist and the report identifying unresolved quantities. That simple test can expose gaps in returns, transfers and project accounting.<\/p>\n<h2 id=\"s4\"><span class=\"ez-toc-section\" id=\"Separate_a_request_from_a_stock_movement\"><\/span>Separate a request from a stock movement<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A supervisor asks for twelve fittings. The request tells the buyer about demand, but no physical item has moved. A storekeeper reserves ten and asks purchasing to obtain two. The project may have approval for twelve without yet having received any. Keep these facts separate so finance, stores and site management can each see the position relevant to their decision.<\/p>\n<p>Decide who can change a request after approval. If the supervisor increases the quantity to sixteen, the business may require another approval. If the storekeeper supplies ten now and two later, the original approved twelve should remain visible. A developer should explain how staff can fulfil partial quantities without repeatedly editing the approved total. Otherwise the record loses the reason a buyer placed the additional order.<\/p>\n<p>Check the difference between issuing to a site and installing on a job. A fitting delivered to the site store may still be returned or transferred. Charging every issue as permanently consumed can distort project cost and make usable stock invisible. Finance should define how the business accounts for these movements. The operational design should at least preserve enough information for finance to apply its chosen policy and for the site to locate the fitting.<\/p>\n<p>Follow the six returned fittings. The foreman initiates a return, central stores checks the identity and condition, and the project position updates after acceptance. If one fitting is damaged, it should not appear in available central stock. The source project may still carry a cost under the company&#8217;s policy. Test the complete transaction with the people involved, including the person authorised to decide how a damaged return is treated.<\/p>\n<h2 id=\"s5\"><span class=\"ez-toc-section\" id=\"Show_committed_costs_before_supplier_invoices_arrive\"><\/span>Show committed costs before supplier invoices arrive<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A project report that includes only posted invoices can look healthy while large purchase orders remain outstanding. The commercial manager needs to understand the estimate, approved variations, commitments, received costs and forecast remaining work. Define these categories with finance before building the report. Avoid adding figures that already overlap. For example, a received item may also appear on an open order unless the remaining commitment is reduced correctly.<\/p>\n<p>Use a simple purchase to test the calculation. The buyer orders ten fittings at an illustrative unit price of one thousand shillings. Six arrive and the supplier invoices those six. If the report shows the invoice and the full original order as separate future obligations, the project appears to owe too much. The outstanding commitment should reflect the remaining four where the company&#8217;s policy uses that basis. Confirm the interpretation with finance using real documents.<\/p>\n<p>Handle changes in supplier price explicitly. A vendor may charge more for the final four fittings than originally agreed. Someone must approve the change and decide which project absorbs the difference. The ERP should preserve the original commitment and the approved revision or correction. Replacing the old price everywhere can make an earlier approval look broader than it was and conceal the reason a project forecast changed.<\/p>\n<p>Let managers inspect the underlying records. A project showing a negative cost variance should lead to the orders, issues, returns or approved variations that explain it. A figure without a drilldown encourages an accountant to export data and reconstruct the report manually. If the system produces a useful summary but cannot explain a surprising line, the business remains dependent on a separate spreadsheet for decisions that matter most.<\/p>\n<h2 id=\"s6\"><span class=\"ez-toc-section\" id=\"Model_a_transfer_between_two_active_projects\"><\/span>Model a transfer between two active projects<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Project A has four spare fittings. Project B needs them urgently. A physical transfer and a commercial reassignment may both be necessary. Ask who can release the materials from A, who confirms receipt at B and how finance values the transfer under the business&#8217;s chosen policy. A phone call between foremen can solve the immediate shortage, but it will leave both project reports wrong unless the transfer becomes a traceable record.<\/p>\n<p>Define what happens while the fittings are on the vehicle. Project A has released them and Project B has not yet accepted them. If the ERP immediately places them in available stock at B, another supervisor may promise materials that have not arrived. If the system leaves them fully available at A, it may allow a duplicate issue. A transfer in transit is a distinct state with a person responsible for resolving it.<\/p>\n<p>Introduce a discrepancy at receipt. Project B receives three good fittings and one damaged fitting. The receiving supervisor needs to acknowledge the physical facts without silently accepting four usable items. Decide who investigates the damage and which project or central account carries the unresolved cost pending review. The ERP should expose the difference while allowing legitimate work on the three good fittings to proceed.<\/p>\n<p>Agree how completed transfers affect project comparisons. A saved purchase on B is not automatically a saving for the whole business if A must later replace the fittings. Look at demand, project commitments and substitute availability before celebrating a transfer as a benefit. A well designed system supplies the evidence needed to judge the tradeoff. It cannot turn every movement toward an urgent project into a net saving.<\/p>\n<h2 id=\"s7\"><span class=\"ez-toc-section\" id=\"Keep_subcontractor_work_distinct_from_material_issues\"><\/span>Keep subcontractor work distinct from material issues<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A subcontractor agrees to install a defined portion of the lighting. The contractor may supply fittings while the subcontractor supplies labour and tools. A purchase order for the subcontract and an issue of materials to the site represent different obligations. Decide what evidence confirms progress and who certifies that a payment instruction can proceed. A stock issue alone does not prove that the installation was completed.<\/p>\n<p>Record the agreed scope and its revision history. If the customer adds a floor, the subcontractor may need revised instructions. The ERP should show which quantities or milestones were originally agreed and which changes were authorised. A commercial manager reviewing a claim must be able to compare the claim with the applicable scope. Keeping all revisions in an email inbox leaves the application unable to explain what it is reporting.<\/p>\n<p>Ask how progress is measured. One subcontract may be assessed through completed locations, another through inspected milestones. Avoid forcing all work into a percentage someone estimates from memory. Select a measurement the responsible site and commercial staff can defend with evidence. The developer should show how supporting records connect to a claim and how a disputed portion can be held without blocking the undisputed portion unnecessarily.<\/p>\n<p>Coordinate subcontractor access carefully. A subcontractor may need to see assigned work and note completion, but it may not need access to the contractor&#8217;s full project margin or other vendors&#8217; prices. Define the information required for the task and review access when the subcontract ends. Test the actual role permissions in the pilot. An administrator demonstrating an ideal screen cannot prove that an outside user sees only the agreed material.<\/p>\n<h2 id=\"s8\"><span class=\"ez-toc-section\" id=\"Design_for_site_evidence_arriving_late\"><\/span>Design for site evidence arriving late<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A supervisor records a delivery at a site where connectivity is intermittent. The paperwork arrives at the central office a day later. The ERP should distinguish when the materials were received, when the record was entered and when an authorised user accepted any correction. Those times answer different questions. If the system collapses them into one editable date, managers cannot reliably reconstruct what they knew at the time of an approval.<\/p>\n<p>Decide what a site user can do while disconnected. They may be able to capture a local receipt against an order downloaded in advance. They may need to take a photograph and obtain a signature for later transfer. Show clearly which records are pending upload and which have been accepted. If the office must verify a high value receipt before stock becomes available, define that review separately from the technical act of uploading a file.<\/p>\n<p>Handle a duplicate submission. A supervisor taps submit twice after the connection pauses. The same delivery should not create two stock movements or two approvals. Ask the developer to demonstrate the behaviour with an actual interruption and show the references retained. Where two genuinely separate deliveries have similar quantities and times, the system must still allow staff to distinguish them. A simple rule rejecting all similar entries may hide a legitimate receipt.<\/p>\n<p>Define a daily reconciliation for pending site records. A supervisor needs a list of captures still on the device, and head office needs a way to discover expected receipts that never arrived. A system cannot report a local record it has never received unless another signal or operating process indicates something is missing. Explain that limit clearly and agree a fallback, such as numbered delivery references checked at shift handover.<\/p>\n<h2 id=\"s9\"><span class=\"ez-toc-section\" id=\"Decide_which_rules_belong_in_configuration\"><\/span>Decide which rules belong in configuration<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A contractor may need different approval limits by role or project. Frequent changes to limits should not necessarily require code changes. Ask whether authorised administrators can maintain the rule, see when it takes effect and test an example before applying it widely. Define what happens to a pending request when a limit changes. The correct answer depends on the business, but a decision must exist.<\/p>\n<p>Separate stable process rules from project specific values. A return must identify its source and destination. That is likely a durable rule. The nominated approver for Project A may change as staff move between sites. That is a maintained value. If both are hardcoded, ordinary staffing changes become expensive. If everything is freely configurable, an administrator may accidentally weaken an essential control. Distinguish those categories during design.<\/p>\n<p>Give important configuration changes a review process. A user adjusting an approval limit or a cost code mapping can affect many projects. Ask who may propose the change, who approves it and how the business can see the earlier value. A useful configuration history makes it possible to explain why a transaction followed one route last week and a different route today.<\/p>\n<p>Look for an honest answer about the limits of the proposed system. Some contractors will fit an existing ERP with configuration and a small extension. Others need project specific movements or valuations that a general package cannot support cleanly. Ask the supplier to demonstrate the difficult cases in the proposed product and identify where custom code will live. Future maintenance is easier when the buyer knows what the vendor configured and what it built.<\/p>\n<h2 id=\"s10\"><span class=\"ez-toc-section\" id=\"Commission_a_pilot_around_a_real_project_close\"><\/span>Commission a pilot around a real project close<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Select a live but manageable project approaching a meaningful milestone. Bring the estimator, site supervisor, buyer, storekeeper and finance reviewer into the pilot. Ask them to agree on one purchase, one issue, one return and one interproject transfer that exercise the design. Use deidentified duplicates in a safe environment before asking staff to rely on the new workflow for a live decision.<\/p>\n<p>Reconcile opening balances. Count central stock and sample site stock against the proposed opening records. Identify reserved items, materials in transit and active supplier commitments. A mismatch at the start will make later testing ambiguous. Decide which differences must be resolved before the pilot and which can be carried with a named owner and an explanation. Do not allow a balancing entry to stand in for an investigation.<\/p>\n<p>At pilot close, ask each role a practical question. Can the buyer identify deliverable stock before placing an order? Can the site supervisor explain the six fittings returned? Can finance trace the change in project cost? Can the commercial manager distinguish an approved variation from an unapproved forecast? Use actual records to answer. A successful demonstration by the supplier is less persuasive than a normal employee finding the answer independently.<\/p>\n<p>Retain a record of exceptions and lessons. If site staff use a manual note during an outage, include it in the acceptance evidence and check how it reaches the ERP. If finance cannot reconcile a transfer without a private spreadsheet, investigate the missing rule before expansion. A pilot has value when it exposes these gaps early enough to fix them. It need not look effortless to justify the next stage.<\/p>\n<h2 id=\"s11\"><span class=\"ez-toc-section\" id=\"Plan_for_handover_while_the_design_is_fresh\"><\/span>Plan for handover while the design is fresh<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ask the vendor for records that another competent team could use. These should explain the project cost structure, the integration boundaries, the configuration maintained by your administrators and the tests for key movements. The buyer also needs a usable export of project records and attachments. A report printed to paper may satisfy one manager today while leaving the business unable to migrate or investigate data later.<\/p>\n<p>Test handover with a small exercise. Ask a trained internal employee to open a new project, assign a site store, nominate an approver and run a trial issue and return. Ask a second employee to find the supporting records without help from the developer. The exercise will reveal whether permissions, instructions and labels support routine administration. Record any supplier assistance needed so it can be documented or included in support.<\/p>\n<p>Agree on support priorities using operational impact. A problem preventing every site from recording deliveries differs from a delayed attachment on one closed job. Identify who can declare an urgent incident, how staff continue work temporarily and what evidence must be checked after recovery. The contractor needs a consistent answer even when the original project manager is away or a site closes outside ordinary office hours.<\/p>\n<p>Choose the next release from the pilot findings. If materials can now be traced but unapproved variations still distort forecasts, the next investment may belong in the commercial workflow. If reports are accurate but supervisors struggle to record returns at temporary sites, improve the site experience first. A custom ERP earns its upkeep when changes follow demonstrated business needs and the contractor can maintain its own rules with confidence.<\/p>\n<h2 id=\"s12\"><span class=\"ez-toc-section\" id=\"Reconstruct_the_project_position_on_a_Friday_afternoon\"><\/span>Reconstruct the project position on a Friday afternoon<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Set up a workshop with the estimator, central storekeeper and two foremen. Give the first project an approved estimate for eighty fittings and a customer approved addition of ten. The project requests eighty five, receives them and installs seventy nine. Six fittings remain. Ask each participant to explain the project position without changing any earlier record. The estimator sees ninety approved, the site sees seventy nine installed and six in its possession, and purchasing can investigate whether the remaining planned work still requires additional supply.<\/p>\n<p>Now send four of the six fittings to the second project. Keep two at the first site pending final installation. The first foreman releases four, the van carries them and the second foreman receives three usable fittings plus one damaged fitting. At no point should the original estimate change merely because materials moved. Ask the commercial manager how the transfer affects each project&#8217;s cost under the company&#8217;s policy and which decision remains pending about the damaged unit.<\/p>\n<p>Give the exercise a deadline. The second project needs all four fittings by Monday. The buyer can consider central stock, a replacement purchase or a transfer from another site. The system should reveal known usable quantities and open supplier commitments before a new order is approved. It cannot establish whether the damaged fitting is safe to use without a competent assessment. The right design preserves that uncertainty and assigns it to the person qualified to resolve it.<\/p>\n<p>Take a snapshot before the decision and another after it. The Friday report should retain the evidence available on Friday. On Monday a reviewer authorises replacement of the damaged fitting and the buyer places an order. The current forecast changes. A manager comparing the two reports should be able to identify the specific changed assumption and the person who approved it. That is more useful than a report that silently recalculates history using the latest forecast.<\/p>\n<h2 id=\"s13\"><span class=\"ez-toc-section\" id=\"Give_a_site_supervisor_a_credible_fallback\"><\/span>Give a site supervisor a credible fallback<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A late delivery arrives after the site office loses its connection. The supervisor records the supplier note, purchase reference, observed quantity, condition and receiving person using the agreed temporary method. The next morning the buyer sees an apparent open order and considers buying more. Ask how the supervisor makes the late receipt known in time to prevent a duplicate purchase while preserving evidence for later entry.<\/p>\n<p>Once the connection returns, reconcile the temporary reference with the ERP receipt and ensure that only one stock movement is created. The supplier may send a second copy of the same delivery note. A reviewer should be able to recognise a possible duplicate without rejecting a legitimate second lorry carrying a similar quantity. Include the supplier reference, order line and actual receipt evidence in the comparison. A date and amount alone may be insufficient to distinguish the events.<\/p>\n<p>Give the subsequent invoice to a finance reviewer who did not witness the delivery. They should be able to follow the purchase order, temporary receipt, confirmed ERP record and approval for any discrepancy. If the reviewer can understand the sequence without relying on the foreman&#8217;s recollection, the fallback has preserved the same quality of evidence as the ordinary workflow. If the trail stops at a handwritten number with no matching ERP reference, improve the reconciliation before rolling the process out to more sites.<\/p>\n<p>Repeat the exercise after a project closes. A supplier sends a late invoice referring to the temporary receipt. Finance should still be able to find the project, its purchase authority and the accepted quantity without reopening the site for ordinary stock movements. Decide who can authorise a late correction and how it appears in the final project review. Retaining closed records for legitimate review is a separate permission from allowing anyone to post new work to the closed site. Test the distinction using a closed project, a valid invoice and a person who normally controls only the site store.<\/p>\n<h2 id=\"s14\"><span class=\"ez-toc-section\" id=\"Put_the_fitting_back_on_the_right_project\"><\/span>Put the fitting back on the right project<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To evaluate a custom ERP system in Kenya, bring the vendor a fitting that moved from estimate to site and back into stores. Ask it to explain each quantity, each approval and each change in project cost. Then introduce a transfer, an incomplete delivery and a proposed variation that the customer has not approved. The proposal should make those cases easier to understand than the records you use today.<\/p>\n<p>Start the internal discussion with a recently closed project and invite the buyer and site supervisor to tell its material story independently. Where the stories disagree, you have a useful question for discovery. Use the <a href=\"https:\/\/zamacore.com\/blog\/\">ZamaCore blog<\/a> for further guides on planning business software around the decisions that staff must make at work.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Design a custom ERP for a Kenyan project contractor. Test how project commitments, changes and costs remain identifiable throughout delivery.<\/p>\n","protected":false},"author":1,"featured_media":1096,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1095","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/posts\/1095","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=1095"}],"version-history":[{"count":1,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/posts\/1095\/revisions"}],"predecessor-version":[{"id":1097,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/posts\/1095\/revisions\/1097"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/media\/1096"}],"wp:attachment":[{"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/media?parent=1095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/categories?post=1095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zamacore.com\/blog\/wp-json\/wp\/v2\/tags?post=1095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}