ID768 - Worst Performing Contracts/Customers Overview & Sample:

Provides list of worst/best performing contracts and/or customers based on gross margin.

Jump to Overview | Samples | Variables | Alert Functionality | Best Practices & Tips |  Related Alerts  | Webinar

Click to Subscribe


Provides list of the worst/best offending contracts or customers based on period margin. We suggest this alert come from your CEO to the VP of Service. We allow you to store a documented action plan to fix the contract and decide on a date to review and until that date the contract will be Snoozed. Tackle just 1 or 2 per week until the list is complete. Contracts that are still a problem after the review date will show back up with details on what your plan was.

We suggest you follow the below steps: click this link for detailed info on the below
1. Look at period profit versus contract life profit, is there a trend. Look at profit on all contracts for customer, is it ok if you are making money overall, could all the revenue be on a different contract.
2. Click drill down on right to see detail (error running drill-down click here). Is there bad data entry issues, more here. Advanced analysis is available via ID555 eView or Contract Info tab.
3. Once analysis is complete and there is an action plan, document on contract, details.
4. Set a snooze date to review plan results, details. For situations like “it’s a ShipIn, nothing we can do”, that date may be end of contract.
5. The contract will be removed from this report and a new one added at bottom, when date arrives, if the contract is still an issue it will be back on this report, with your note.

Also consider our ID771 - Power BI Profit Analysis

Run Schedule: Weekly on Fridays

Type of Output: Email

*  *  *


Top text in email indicates the number of contracts or customers reviewed and any plan/snooze dates entered, a zero means no one has reviewed any contracts.

Contract Level:  

(sorts by Contract Period Margin)


Customer Level: 

(sorts by Customer Period Margin)



*  *  *



Variable W: Set how many months Revenue/Cost you want the alert to consider. RM12 = looks back 12-months, RM24 = looks back 24 months. Default is RM12 & maximum is RM24.

Variable X: Set specific Contract Type Codes you wish the alert to report only, leave blank for all. 

Variable Y: Set minimum months for contract to be active before reporting. Default is 6 as it's likely too soon to do anything sooner until click revenue accumulates.

Variable Z: Custom Property set on Contract Record to "snooze" a contract from reporting, using a date.

Variable 2: Note Type the alert will report, this is your detailed action plan set on the contract.

Variable 1: Set number of contracts alert to report on. Alert fires weekly, we suggest leaving this at the default 10 contracts, and setting Action Plans and using Snooze feature for any contracts to review in the future. Each week it will report the Top 10 Worse Performers, excluding the snoozed contracts until there date to review has passed (if still a problem).



Variable 3: Set minimum number of equipment required linked to contract. Default is 0 and we recommend keeping it as such so none are excluded, i.e. in case someone forgot to link equipment or perhaps you have two contract records but only one contains equipment. If you do elect to indicate something other than 0, please list number as negative (i.e. -1 will require at least one active equipment record linked to contract record). **FYI this is a count of contracted equipment PLUS contracted serviceable items.

Variable 4: Minimum Revenue PER MONTHLY PERIOD for contract to be considered

Variable 5: Max GM % for contract to be considered (don't tell me about contracts over 50% GM, for instance, whether they otherwise qualify as my 'Top X worst' or not)

Variable 6: Branch Numbers to report on individually (separated by comma), or enter 'ALL' for separate email for each Active Branch, or 'Consolidated' for one email covering all Branches. If you list branches in this variable, you will receive separate email for each branch. Defaults to Consolidated if left blank.

Variable 7: Show worst or best, per the other parameters, enter either 1, 2, 3, or 4 (defaults to 1 if left blank)

1) Worst by GM Dollars

2) Worst by GM %

3) Best by GM Dollars

4) Best by GM %

Variable 8: Enter Contract or Customer to set report (defaults to Contract if left blank). 

Contract = Reports on Contracts per Variable7

Customer = Reports on Customers per Variable7



*  *  *

Alert Functionality

1. This alert DOES NOT report on Deposit Based Contracts 

2. If you are using Branch Roles, please read below:



When your subscription is sending to specified Branch Roles AND Variable6 is set to Consolidated, then those branch recipients will see rankings out of order as they only receiving those contracts for their branch:

**Anyone listed in To/CC/BCC will be included in email sent to the Branch Role recipient.**


If you set Variable6 with specific branches or to ALL, then the Branch Role(s) will receive a full list per quantity listed in Variable1. 


Column Header Explanation:

Column Headers Explanation:


  1. Ranked - Worst performing contract/customer at top
  2. Period Margin % =  Period Margin / Period Revenue for Contract# listed in table
  3. Period Margin = Period Margin - Period Revenue (this is what we sort by) for Contract# listed in table
  4. Period Revenue: Accrued Revenue for the period covered per your VariableW setting and also noted in email text (i.e. RM01 back to RM12). RM01 = last completed month and RM12 = 12 months back from current month for Contract# listed in table. See here for info on details of these labels. If this number does look right, check your accrual(s) for this contract first.
  5. Contract Lifetime Margin: This shows the life of the contract and not just the period selected.
  6. All Contracts Lifetime Margin: This shows all contracts for the customer, your losing contract may be offset by a profitable one.
  7. NPS: This shows Net Promoter Score information from our surveys. Knowing how happy a customer is can be an important metric when determining an action plan. Read more here. N/A will show for customers with no responses to the NPS question.
  8. Report: Link to ID150 Contract Profitability Report, details revenue and costs. Read more here. The link will run the report for a period to match the end periods (RM01-RM12 as this alert fired) per VariableW on your subscription. **ECi Hosted Clients:  clicking on link will not work, you will need to access ID150 from the Remote Applications screen within your ECI hosted environment as shown here. **not ECI Hosted Clients: If you see "No Server" or "No Report", then your company does not have SSRS Reports (No Server) or does not have this report (No Report). See here for more troubleshooting, email us at with questions.



This alert can be cloned which means creating multiple subscriptions of the same ID# (ID768). This function will ONLY work if at least ONE of the variables on each subscription is different.

See this link for an overview of cloning features.





To "snooze" a contract so it disappears off our ID768 report until snooze date reached. Go to the Custom properties tab:

1. Enter date to snooze (Contract will not report on ID768 until that date is reached) on Contract Record Custom Properties ZCJProfitAlertSnooze:



2. Enter Note on Contract Record indicating research results and action(s) to be taken:


Be sure to use Note Type of Review Action to explain why snoozed and what to do once ready to review again:



*  *  *

Best Practices & Tips

1. CLICK HERE for tips on how to validate the data.

You can ask the CEO Juice team to tackle a couple from the list and report what we found and how we found it. We won't be as familiar with the nuances of the contract but it's a start. This is included in your monthly fee.

2. CLICK HERE on how to set up Branch Roles

Custom Property Set Up

Custom Property Set Up

To create Custom Property for snoozing contracts:

Step 1: Create Custom Property Attribute name via Tools / Lists & Codes / Attributes

Attribute name: ZCJProfitAlertSnooze

Description: Snooze contract from showing on reports until date

Data type: Date


Step 2: Add this Attribute to Contract Custom Properties Configuration via Tools / Lists & Codes / Configurations (custom properties, select Contract Properties Group


Use available attribute(s) drop down to quick add ZCJProfitAlertSnooze (no default value), select OK:


Step 3: Create Note Type Review Action via Tools / Lists & Codes / Note Types:

Be sure to check off "Allow changes. edits, and deletions of notes of this type"


*  *  *

Related Alerts

ID133 - Contracts that have reached their Snooze Date for Review of the Action Plan

ID150 -  Contract Profitability On Demand SSRS Report

ID555 - eView CEOJuice Contract and Transactional Analysis

ID771 - Power BI Profit Analysis

*  *  * 



Was this article helpful?
1 out of 1 found this helpful
Have more questions? Submit a request


Please sign in to leave a comment.
Powered by Zendesk