# Field (/solutions/field)



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](/product/modules/employees), work performance, work orders and training, over the core platform's [identity](/product/modules/identity), [organizations](/product/modules/organizations), [surveys](/product/modules/surveys), [incidents](/product/modules/incidents) and [audit](/product/modules/audit). The only field-specific pieces are the geofenced check-in, a property of the store, and the mobile app.

## The structure

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.

## What a field agent gets

* **Today**, in one screen: target, actual, variance, commission earned and at risk, today's work orders, today's shift, and the as-at of the numbers behind it.
* **Check-in** against the store's geofence. The device sends its position; the server measures the distance and records the claim beside its verdict. A check-in that does not match the roster raises a deviation for a manager rather than blocking.
* **Work orders** issued down the tree, each closed by a submission: a photo, a signature, a survey, a tick, with time and position recorded server-side.
* **Training**: courses with a quiz, a pass mark, an attempt cap, and a certification that can expire.
* **Incentives**: time-boxed bonus offers pushed to the device within seconds, and a claim that a feed run reconciles.
* **Leave**: a request with half-day portions, decided by a manager against a balance that accrues nightly.

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.

## What a manager gets

* **Roster**: shift templates per store or store group, a draft roster published within their territory, and attendance against it.
* **Targets and KPIs**: a goal over any range, distributed per day, and a measure each organization level is assessed on at month-end, with scorecards and reviews.
* **Commission**: plans with rules, tiers and gates, assigned to a person, a node or a role; statements per person and period moving through calculated, approved and locked, with an audited reason on unlock; a payroll export in the tenant's own column layout.
* **Incidents**: one queue for everything a human must look at, moving open, assigned, resolved, verified, where the resolver cannot verify.
* **Surveys**: a builder for surveys, quizzes and checklists, with per-question aggregates and a try-mode preview.

## The feed

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.

## Compliance

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.

## Status

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.
