Craft records are used to define disciplines that one or more employees or contractors possess, and which are used in the planning of work. Some traditional examples of crafts are Mechanic, Electrician, Plumber, Carpenter, but crafts are used in every industry, for example in IT, Deskside Support, Service Desk Tier 1, Service Desk Tier 2, Network Engineer, etc.

Crafts are used in long term capacity planning of resources, for example there may be 3000 manhours of electrician work in a future month, but there is only a capacity for 2500 manhours. It is this capacity planning aspect for crafts that you should consider when defining your set of craft records.

In Maximo crafts can exist with or without skill levels. The skill level will allow multiple cost rates to be used for the same craft. Capacity planning is still performed at the craft level, the skill level starts to be considered when making assignments. 

A person who performs work on work orders has a Labor record in Maximo, each labor has a default craft and/or skill level, but they may have multiple craft and skill levels. For example, after nearly 25 years of Maximo experience I would be considered a Functional Consultant, at skill level 1, the top level, and a Technical Consultant, at skill level 2. My default craft will be a Functional Consultant, it is the requirements and design activities of Maximo that I am most likely to be assigned to, but I can turn my hand also to some of the activities that would normally require the Technical Consultant craft.

A Labor record can also have Qualifications, think of these as competencies or formal job-based certificates, rather than qualifications that you acquire at education establishments. For example, I would be considered competent in other Maximo products, HSE, Scheduler and Service Provider and I have some Maximo certifications. Qualifications are what you should record in Maximo to verify that you would be competent to undertake a specific job role, differentiating between multiple labor with the same craft/skill level in determining who would be most suitable to be assigned work, given that availability provides you a choice. 

This article will review the Crafts application, a part of the Administration – Resources module. It will be followed by articles for Labor and Qualifications.

Craft and Skill Levels   

Crafts have a code and a description and are defined at the Organization level, the level at which financial records are created. The default size of the Craft field is upper case with a width of 8 characters. The unique index is CRAFT, ORGID.

In the craft record there are three other fields:

  • Standard Rate – The hourly cost rate for the craft
  • Work Zone Type – The type of work zone that the labor that belongs to a craft would be associated with. It would normally not be used.
  • Crew – A check box which indicates that the craft can be used in a crew type or crew.

The standard rates that appear throughout the Crafts application, do not need to be exact, an approximation will generally be OK. Far better to have an approximation rather than have no standard rate at all. You may not be able to derive an accurate actual rate from a finance system; it may not be at the right level. You can always refine the standard rates for the next financial year. For standard rates used with subcontractors, the rate should be accurate as the rate may be used through the purchasing applications. 

Each craft may have one or more skill levels. If you are going to use skill levels then there is no point if you just have one skill level, you really need two or more. The skill level defines the level of competence within the discipline (craft). Maximo works fine without skill levels.

In our example for the craft ELECT – Electrician, we have three skill levels FIRSTCLASS, SECONDCLASS, and APPRENTICE. There is a rank field for the skill level, 1 is the highest, used by the FIRSTCLASS skill level. SECONDCLASS is given a rank of 3 and APPRENTICE a rank of 5. A labor can be assigned to work that matches their skill level or is lower by rank, for example you would not be able to assign an electrician second class to a work order that requires a craft of ELECT and a skill level of FIRSTCLASS. A gap in the rank at each level will make it easier to add another skill level in between. It is not necessary.

The Skill Level has to be defined first in the ALN Domain SKILLLEVEL, it is defined as upper case, with a width of 15 characters. I would try to reuse skill levels between different craft if that makes sense. The craft and skill level also have a standard hourly cost rate.

Skill Levels can be entered later, you do not need to implement skill levels initially in your Maximo project. Craft – Skill Levels are defined in the object CRAFTSKILL with a unique index of CRAFT, SKILLLEVEL, ORGID.

Craft Rates

There is a CRAFTRATE table that stores the standard hourly rates for crafts and skill levels whether they are internal rates or rates provided by outside contractors. You see this table in the Outside Rates table window, but only for subcontractors. For internal craft rates the standard rate is shown in the Skill Levels table window, but this is a non-persistent field. When a new skill level is added to a craft, then a CRAFTRATE record is also created. Unfortunately, in my tests on Maximo 7.6.1.2 this fails to store the standard rate for the second and additional skill levels, the CRAFTRATE record is not being created as it did in Maximo 7.6.1.1, the issue has been reported to IBM.

When you use the New Row button on the Outside Rates table window the Vendor field will be mandatory, the Skill Level field is not mandatory. This allows you to enter standard hourly rates for your subcontractors whether or not you are using skill levels. You also do not need to have defined a Labor Rate Contract first to enter subcontractor rates. While the Outside Rates table window will allow you to enter subcontractor contract rates, I would leave this for the Labor Rate Contracts application, it enters records into the same table. 

The advantages of using the Labor Rate Contracts application is that it allows you to set different rates for different periods of time, there is a Start Date and End Date that creates an effective period. There is an action to adjust the rates by a percentage. A Labor Rate Contract also enables you to have multiple rates for the same vendor, craft and skill level which can be used at the same time. This would allow you to have different rates for projects.

CRAFTRATE records are also defined at the Organization level, with a long unique key CRAFT, SKILLLEVEL, ORGID, VENDOR, CONTRACTNUM, REVISIONNUM.

Manage Premium Pay Codes

Craft rates can also vary depending on the time they are performed, overtime, the terminology used in Maximo is Premium Pay Codes.

The action Manage Premium Pay Codes is used to set-up PP codes. This is again defined at the Organization level; I have filtered to just show those for organization EAGLENA. The four records which are marked as Apply to New Crafts are copied to the bottom table window – Premium Pay, on the main Crafts tab when a new craft is created. The records in the Premium Pay table window are those that can be selected when entering actual time on a work order.

The Premium Pay Codes have a code, which by default is upper case with an 8 character width, a description and a default rate. The Default Rate Type determines how the default rate is applied: 

  • MULTIPLIER – will multiply the hourly rate by a factor that you specify as the Default Rate.
  • INCREMENT – will add the Default Rate to the hourly rate in order to derive an effective rate.
  • HOURLY – will provide a special set hourly rate when used, the rate added as the Default Rate.

Examples:

  • For the MULTIPLIER default rate type a standard rate of $30.00 and a PP Code of OT1, with default rate of 1.50 will then create an effective rate of $45.00 for any actual hours booked against the OT1 premium pay code. 
  • For the INCREMENT default rate type, a standard rate of $30.00 and a PP Code of PP12, with default rate of 7.50 will then create an effective rate of $37.50 for any actual hours booked against the PP12 premium pay code.
  • For the HOURLY default rate type, a PP Code of SP30, with default rate of 30.00 will provide an hourly rate of $30.00 for any actual hours booked against the SP30 premium pay code.

The Premium Pay Codes are defined in an object called PREMIUMPAY with unique index PREMIUMPAYCODE, ORGID.

Craft Premium Pay

At the bottom of the Crafts tab you will see the premium pay codes inherited from those defined for the organization. The Inherit field is checked for the records that have been copied. This means that if you update the rates in the Manage Premium Pay Codes dialog the new rate will be applied to all the crafts that have this premium pay code referenced and with the inherit attribute checked.

If you uncheck the Inherit attribute it allows you to set the Rate independently, it also allows you to change the Rate Type. You can delete a premium pay code from a craft if it no longer applies.

There is a New Row button allowing you to create additional premium pay codes specific to the craft. However, the Premium Pay Code must have been defined first using the Manage Premium Pay Codes action.

The Premium Pay Codes when added to a craft define those codes which can be selected for the craft when actual hours are entered. They are defined in an object called PPCRAFTRATE with unique index CRAFT, PREMIUMPAYCODE, ORGID.

Associated Labor

Labor are associated with Craft records. The Rate for the Labor is defaulted depending on what fields you enter:

  • Craft
  • Craft – Skill Level
  • Craft – Vendor
  • Craft – Vendor – Skill Level
  • Craft – Vendor – Contract Number
  • Craft – Vendor – Skill Level – Contract Number

I would advise using the lookups for Skill Level, Vendor and Contract as this will filter to the records previously entered for the craft. 

You can override the Rate which is defaulted. If you will not set a rate specific to the Labor then you should select the Inherit Rate from Craft checkbox. If the standard rate is changed on the Craft tab, then all Labor will inherit this new rate where the Inherit Rate from Craft is checked.

The Default Craft for Labor is set from the Labor application. The Active Contract is set if the contract is approved, it can be outside of its validity period. Normally there would be a Cron Task set to expire a contract once its validity period has been exceeded.

When labor is associated with a craft record, the record is entered into the LABORCRAFTRATE table. This table is also defined at the Organization level, with a long unique key ORGID, LABORCODE, CRAFT, SKILLLEVEL, VENDOR, CONTRACTNUM.

Crafts and Crews

A Crew has one or more positions which are fulfilled according to the craft and/or skill level required by that crew position, the required crafts. The crafts that can be selected on either a crew type or crew are those where the Crew attribute is checked. This can either be set manually or using the List tab action Make Available to Crews. There is no dialog box associated with this action, but you do get a warning indicating the number of records to be affected if you have not selected any Craft records.

There is an action View Crew Requirements which shows where the Craft has been referenced on a Crew Type or Crew. We’ll explore that more in an article on Crews.

Craft and Labor – Entity Diagram

Various fields have been added to core Maximo tables to support Maximo Scheduler functions, or there were existing fields which have been used. I will refer to this entity diagram in a few articles.

I am not going to reference what each of these fields do in this article, but the important points in relation to Crafts are as follows:

  • Crafts may or may not have Skill Levels, you choose whether to use the skill levels
  • Labor can belong to multiple Crafts or Craft/Skill Levels, but only one is marked as their default craft (LABORCRAFTRATE.DEFAULTCRAFT)
  • When planning work, it is the standard rate for the Craft or Craft/Skill Level which is generally used (CRAFTRATE.STANDARDRATE). I say generally, because it is possible to reference a LABORCODE without a CRAFT on the work order planned labor, in which case the rate is derived from LABORCRAFTRATE.RATE for the record designated as the default craft.
  • When entering actual labor the rate is derived from the LABORCRAFTRATE.RATE for the associated Craft or Craft/Skill Level of the Labor against whom time is being recorded.
  • For outside labor the same two tables are used to derive the rate to apply, CRAFTRATE for planned work hours, LABORCRAFTRATE for actual work hours, but only when a Labor (LABORCODE) has been entered, otherwise it is still derived from the CRAFTRATE table. As the Labor field is mandatory, the rate will inevitably be derived from the LABORCRAFTRATE table eventually.
  • A Person record must be created before a Labor record can be saved; they can be created at the same time through the Labor application. 
  • It makes a lot of sense to align the PERSONID and LABORCODE and nowadays to make it a numeric value for privacy reasons.
  • The person’s calendar and shift are defined against the Person record and not the Labor record. Modified Person Availability is also recorded against the Person record.

Deriving the Labor Rate on a Work Order

This final section will review how the standard rates are applied to a work order.

In Work Order Tracking application and the Plans tab I have selected the ELECT craft, with no skill level or vendor and it has derived the hourly rate using the standard rate from the Craft record – $17.00.

By adding the FIRSTCLASS skill level the rate changes to $22.00. This is being derived from the CRAFTRATE table.

By adding the Vendor CMC it has derived a different hourly rate of $33.00. This is also being derived from the CRAFTRATE table. Note, the Outside attribute has been checked when using a subcontractor (Vendor).

Notice now what happens when we remove the Skill Level of FIRSTCLASS, the rate has turned to $0.00. When the Outside Rates were entered for CMC, they were only entered with Skill Levels, there is no rate for a craft without skill levels for vendor CMC. I would recommend always entering a default rate for the craft when entering outside rates, even if you intend to use skill levels.

You can enter a Labor without a craft on the labor work plan, it is quite rare, but possible as you can see. The rate of $40.00 comes from the LABORCRAFTRATE table for AJE.

Navigating to AJE in the Labor application and on the Crafts tab, we can see that the default craft is FC (Functional Consultant) and it is this rate of $40.00 which is being used.

I’ve now saved the work order with this last record and changed the status to In-Progress (INPRG) so that I can enter some actual labor.

With no Labor referenced, and just the Craft ELECT we can see that the same rate of $17.00 is used.

Adding one hour of Regular Hours will create a line cost of $17.00. Adding an additional one hour in the Premium Pay Hours with a Premium Pay Code of OT1 with a MULTIPLIER effect of 1.50 (Premium Pay Rate). The overtime hours will have a line cost of $25.50 and when added to the normal hours of $17.00 gives a total line cost of $42.50.

Now changing to a Craft of ELECT with a Skill Level of FIRSTCLASS the rate changes to $22.00 to give a line cost of $55.00. The one hour of overtime is worth $22.00 * 1.5 = $33.00.

Changing the Premium Pay Code to PP1 which has an INCREMENT Premium Rate Type with a Premium Pay Rate of 2.75 has changed the Line Cost to $46.75. This is one hour of normal time at $22.00 and one hour of overtime at $22.00 + $2.75 = $24.75.

Changing to Vendor CMC derives the hourly rate of $33.00 which we saw earlier. The Line Cost of $68.75 is one hour at $33.00 and one overtime hour of $35.75.

I’ve now changed the Premium Pay Code to SP30 which has a Premium Rate Type of HOURLY, an hourly rate of $30.00, the Premium Pay Rate. One hour at $33.00 plus one overtime hour at $30.00 gives our Line Cost of $63.00.

Tom Revis works for CMC, he is normally a MECH-FIRSTCLASS, but I have added him also with a craft of ELECT and a skill level of FIRSTCLASS and overridden the hourly rate to $47.00. When REVIS is selected as the Labor, the Rate is set as $47.00, it comes from the LABORCRAFTRATE table, rather than the CRAFTRATE table. $47.00 + $30.00 gives the Line Cost of $77.00.

When selecting REVIS, if he does not have the same Craft, Skill Level, Vendor and Contract you will get the error “BMXAA2634 – Mismatches between labor, craft, skill level, vendor and contract are not allowed. Use the Select Value lookup to see a list of valid choices.”

The final test is to show that when using the button Select Planned Labor it copies across the rate that was entered on the Plans tab. The hourly rate previously entered for Labor AJE was 40.00.

I’ve navigated from the Labor field to the Labor application. As you can see I had updated the hourly rate for AJE and his craft FC (Functional Consultant) from $40.00 to $42.00.

If you had used the New Row button and Selected Labor AJE – Andrew Jeffery, his default craft of FC (Functional Consultant) and skill level FIRSTCLASS would have been automatically derived with the current hourly rate of $42.00 taken from the LABORCRAFTRATE table.

As you generally increase craft rates at the start of each year, to cover inflation, this is a good reason to not create work orders and approve them too far in advance of when they are likely to be executed. The rate on the work plan labor is a display rate, it will use the current rate, up until the point the work order is set to approved (APPR) or a later state. Once approved the rate is locked-in.