A workforce performance platform for distributed retail teams.
A field agent opens the mobile app and immediately knows their target, how they are tracking, what it is worth, what they must do today and where they are rostered. A manager rosters, tasks, trains, incentivises and pays them from the web admin. Head-office data lands through a scheduled feed and drives all of it.
Field is a solution, not a module. It bundles generic modules, none of which know they are being used in the field: employees, work performance, work orders and training, over the core platform's identity, organizations, surveys, incidents and audit. The only field-specific pieces are the geofenced check-in, a property of the store, and the mobile app.
Your organization is a tree: national, region, area, store, with each depth named by you. A store is a leaf with coordinates and a geofence radius. A person is placed on a node and covers that node and everything beneath it; that placement, not a role, is their territory. A national and an area manager share one role and differ only in where they are placed. Visibility is strictly downward.
Three roles ship: the admin, who alone can provision users; the manager, who holds every solution permission except provisioning and period approval; and the field agent, who holds only what reaches beyond their own rows, because every policy already admits a person's own.
The app works offline. Reads are a persisted cache; writes are a durable outbox replayed on reconnect, except the operations that pay money, judge attendance or score a person, which are always server-side.
A feed declares its transport, its schedule, its expected arrival and its column mapping. Every arrival is a run: rows are keyed so a re-run cannot double-count, a correction replaces prior facts within unlocked periods only, rejected rows are kept with their reasons and raise one incident, and recalculation is triggered by the run, never by the clock. A feed that misses its expected arrival raises an incident and notifies the nominated administrators. Every number on every surface shows its as-at.
Every string is translated, web and mobile alike. Tenant isolation is a separate database per tenant, so cross-tenant access is impossible by construction, and the database region satisfies data residency. Retention, purge, legal matters that hold records from purge, and a log of who read sensitive records carry the statutory obligations.
The foundation, territory, levels, geofences and roles, and the employees module are built and verified on a standing development tenant. Surveys are built at the schema level. Oversight, work performance, work orders, training, channels, reporting and the mobile app follow in that order.