The KPI Gamification Module is supported by live business data so we've compiled the requirements and guidance on this below. This is classified into:
Business data requirements
Data-file transport
Data-file format
Data-file requirements
Data-file schema
Having reviewed the article, if you are unsure if your existing systems can incorporate the details outlined below, please send an example file to support@yapster.info where the team will be happy to review and verify this for you.
Customer Business Data Requirements
The customer MUST provide us with data-files from which we can extract the following values for each participant, for each day:
participant-id
if you are running site/store-level competition then this should be site/location-id (which matches those already in Yapster via your HR feed), if you are running inter-area competition then area-id etc. There is no harm in having store-id, area-id, region-id, all in the file as this will give you the flexibility to run games at the various levels.
timestamp (ideally ISO8601)
we can work with: daily rollups, finer-grained rollups, or even unaggregated data.
KPI measure
this is what participants will compete on, so should be some number or numbers you want to drive. There is no harm in having multiple competitive measures in a feed, indeed this will make it easier to run new games on different measures since we won't then have to set up another data feed.
scaling-factor measure
this allows larger locations to compete fairly against smaller locations and should be something that can be used to scale the competitive measure. In a restaurant setting, it could be total sales, number of orders, or something similar.
Data-file Transport
There are several options to get data to us, listed below in a rough order of preference:
CSV files put to our SFTP
Get CSV files from your SFTP
CSV files stored on one of our S3 buckets shared with you
CSV files stored on one of your S3 buckets shared with us
Data-file Format
We can accept data-files formatted as:
CSV
TSV
excel
Data-file Requirements
The customer can provide data in a variety of files, schema, and aggregations (or not), but there are some general requirements:
There MUST be data for every participant for every day in a season. missing data will cause a game to be paused until it is provided (this can be overridden with configuration, with the obvious caveats about possible incorrect or unfair outcomes)
Measures in data-files MUST aggregate sensibly - i.e. it MUST be possible to get to a 7-days figure for a measure by a simple sum of 7 daily values for the measure. this means that e.g. a % ratio of
100 * desserts/covers
is not a suitable measure. instead, we need thedesserts
andcovers
measures separatelyThere MUST NOT be any duplicate data, either within a single file or across all files
Temporal aggregations MUST NOT be coarser than 1 day. Ideally, temporal aggregations should fit cleanly within day buckets, but if not each aggregation period will be assigned to one particular day.
Data files SHOULD be named so that they will not overwrite any already provided files (if this canât be done then we will have some remedial work to do to avoid data gaps after service issues)
All data files relating to the previous-dayâs trading SHOULD be delivered to us well before the daily-update messaging time (which is configurable). If this is not possible then we can still run a game, but we will have to inject âwaiting for dataâ messages on some days, and data updates will refer to two days previously, so the game experience is impaired.
Data-file Schema
We are flexible about the schema of the data in the files we accept from the customers.
There are 2 predefined types of schema we can process with minimal configuration:
pre-aggregated
data with columns (no specific column names need to be used, as long as they are consistent - see data-mapping below) for (participant-id, timestamp, kpi-measure, and scaling-factor-measure). If the customer wants to provide a range of KPI and scaling factor measures in each record they can add as many columns as they wish, which will offer more flexibility with future games.itemised
data, which may be raw transactions or may be aggregated. Itemised data will generally include columns (again, we donât require specific column names, as long as they are consistent) for (participant-id, timestamp, line-item-code, value)
If needed, we can also accept customer-data in any arbitrary schema (over any number of separate files) which can be processed with a SQL query to extract the values we require, although the additional work associated with the data-mapping, if significant, may incur an additional cost.
For any further questions, please contact our Support Team at support@yapster.info!