Skip to main content


What is a Procedure?

A procedure is an operation that can be done on a regular basis - typically nightly, and it usually involves modifying or updating your data so that you get a better quality analysis on the COUNTERPOINT Cloud Platform.

These procedures are run on "workers", which wake up and process data when there is a procedure waiting to be run. This allows for multiple procedures to run at the same time if necessary, and reduces the impact that running a procedure during store hours can have for other users.

Procedure Statuses

There are 4 statuses that a procedure can be in at any given time:

Successful: The procedure ran and finished as expected, encountering no errors.

Failed: The procedure did not finish as expected, and encountered an error during processing.

Queued: The procedure has not yet run, but is scheduled to as soon as resources are available.

Processing: The procedure is currently running.

Running a Procedure

Note: There are two different types of procedures: legacy procedures, and modern procedures. Only modern procedures can be run manually by an admin. If you need assistance with legacy procedures, please contact AMS.

An admin user has the ability to see the current status of all procedures, as well as manually trigger a process to run. This should be done carefully, as it may have side-effects that change the data other users of yours see.

Most procedures are scheduled to automatically run - if you think one or more procedures need to be run at a different time or frequency, contact AMS for assistance in changing their schedule.

The ability to manually run a procedure is mostly used as a recovery option in case something goes wrong with the overnight data upload. Alternatively, some procedures are used to clean up or remove old data and are not run regularly. Consult the table below for an explanation of what each procedure does. If you are still not sure whether running a procedure is a good idea, contact AMS for assistance.

Procedure List

Procedure Name
Procedure Description
Default Frequency
Maps products to their ACA data classes and subclasses. If this is not done regularly new products will not be mapped and will show up under the "Null" ACA class.
Daily (If Enabled)
Calculates the number of annual sales for the previous 12 months, as well as the 13-24 month range. This is used to generate old stock reports.
CPMailerReports - Daily
Sends out all of the CPMailer daily reports.
CPMailerReports - Monthly
Sends out all of the CPMailer monthly reports.
CPMailerReports - Weekly
Sends out all of the CPMailer weekly reports.
Builds a table of all possible discount code values. Required for any analysis that offers a breakdown by discount code.
Fills in the customer name on any ship to values that do not have an assigned name with that of the root customer.
Fills in the industry type on any ship tos that do not have an assigned value with that of the root customer. This is typically caused by a ship to being deleted.
Builds a table of all possible industry codes. Required for any analysis that offers a breakdown by industry type.
Calculates the inventory position based on last night's upload and saves it as the historical value for the month that "yesterday" fell in.
You probably do not want to run this manually.
Monthly (1st)
Adds non-stocking products from your sales history into the products database. This is required for any analysis that groups sales by product to function correctly.
Builds a table of all possible territory codes. Required for any analysis that offers a breakdown by territory type.
Updates goal calculations for all goals that have been added.