Solutions

  • Problem (1): Users must upload twice — once for Direct Supply and once for Indirect Supply. UX friction increases proportionally with the number of FFB Dealer rows, as each adds an additional upload step.

Solved by re-designing to a single Transactions table that maps directly to the Upload schema: - mpob_id - entity_type - entity_name - quantity

  • Problem (2): Indirect supply is duplicated across mills — the same FFB Dealer may appear multiple times, with each mill uploading different Smallholder lists.

Solved by designing an invitations table that allows mills to send their FFB Dealers an invite link to login to the platform and upload their data to traceability.transactions.

The earlier relationships / tier systems with pending entities was completely dropped in favor of a simple transactions table, where a JOIN exposes which entities are not present in traceability.entities, and the invitations table, which facilitates the single hop design (each entity in the supply chain logs in to the platform and uploads their direct suppliers only - no more indirect suppliers).

  • Problem (3): User data and MSPO data differs - the supplier code in the user's system is not the same code used in the MSPO database

Standardize by using mpob_id