← All sheets
GL-S-012Sheet 012RECORDS · SECURITY

commission_rate: the field the vendor could edit.

FIELD CHANGE · COMMISSION RATE · MULTIVENDOR MARKETPLACE · PAYOUTS

Drawing sheet 012: commission_rate: the field the vendor could edit.

General notes

  1. 01The platform's cut lived on a field the vendor's own settings screen could write to. Nothing needed hacking.
  2. 02Vendors optimise their cut, not yours. The field was an invitation, and I had written it.
  3. 03Economic policy is not user data. Rev B: an admin-owned table with caps. The vendor screen lost the write path.

I wrote that field.

Schedule of permissionsOne field, two revisions

RevFieldOwnerWritable by
Acommission_ratePlatform policyVendor settings screen
Bcommission_rateAdmin table, cappedAdmin only

As posted

The field was called commission_rate. Sensible name. One problem: the vendor's own settings screen could write to it.

Nothing needed hacking. Anyone who opened their store settings could see the number that decided how much of each sale they kept, sitting in an editable field. I had written that field.

The lesson does not need a villain. Vendors optimise their cut, not yours, and a writable field is an invitation whether or not anyone accepts it. We found it in a pre-launch audit, before it cost anyone anything.

The fix was barely technical. Economic policy is not user data. The rate moved to a table only admins own, with caps, and the vendor screen lost the write path. Rev A had the number where the vendor could reach it. Rev B has it where only the platform can.

It is the same finding as the delivery distance on sheet 003, through a different door. There, the party who benefited from a number supplied it. Here, the party who benefited from a number could edit it. Whoever benefits from a number must never be the one who sets it.

Sheet 012. Field change, recorded.

Read with

  • Sheet 003 · The rider billed 50 km. The trip was 2 km. Nothing crashed.
  • Sheet 019 · Five bugs. Months apart. One bug.