A Labor record must reference a Person record but we will see later that you can create a Person record from the Labor application. But why do we have both in Maximo?

A Labor record is used with work order assignments, a labor may be assigned to a crew position, so a Labor record performs work. A Person record is used with tickets and work orders to indicate ownership or responsibility. The work a person performs in Maximo is administrative rather than tasks performed in maintenance, it may be an administrative or supervisory function of a maintenance department. When a maintenance supervisor is assigning responsibility for work it is the Person records that are being used. When a maintenance supervisor is making work assignments to his/her team including any work they may undertake themselves then it is the Labor records that are used.

Only a Labor record can book time to a ticket or work order, a person who has no Labor record cannot book time. It is Labor records that get involved in the costs within a Maximo system, and not a person. As costing occurs at the Organization level in Maximo, a Labor record is also defined at the Organization level. A Person record is defined at the System level, consequently when a person works across multiple organizations, they need multiple Labor records, linked to the same Person record.

Modified availability is handled on a Person record, this is when the person is sick or on vacation, in a meeting or on training. Obviously if a person has modified availability then that will be reflected in the availability of all their associated Labor records.

The Maximo Scheduler graphical applications are based on Labor or Crews and not Persons. A person without a Labor record will not appear in the Maximo Scheduler applications. A Labor record has one or more Crafts that the Maximo Scheduler applications use. A Person record does not have any Craft references.

Both ownership and work assignments can be considered as assigning but in Maximo try to use the two terms “ownership” and “work assignment” rather than just the word “assignment”, as it could easily be misunderstood.

New Labor records

In the Labor application when you insert a new record and type a labor code in the Labor field, for example LJO, a second or so later you might get the message “A person record does not exist for LJO. Would you like to create one? (BMXAA3075)” with the ability to answer Yes or No.

Answering Yes will create a Person record with the same identifier, LJO in this case. Answering No does allow you to have a different identifier for the Person record from the Labor record – but it would be very unusual to do so.

In case you were wondering you cannot have the same Person record referencing two or more Labor records in the same organization as on attempting to save the Labor record you will receive the error message “BMXAA2548E – AJE is already assigned on a labor in this organization.”

As a Person record is required to create a Maximo user record then often the Person record will already exist, set up by the Maximo Administrator. In which case, when creating a new Labor record if you use the same identifier as the Person record (PERSONID) then Maximo will find this record and you will see fields populate in the Labor application, these are fields which had already been entered on the Person record, they are visible in the Labor application and can be updated from here as well, they have not been copied to the Labor record.

My recommendation is to create the Person record first, then come to the Labor application and create the Labor record with the same identifier as used on the Person record. It will make it more obvious that there are two records which are being used, and not just the Labor record.

Labor record – Labor attributes

Here is my Labor record, AJE – Andrew Jeffery, linked to the Person record with identifier AJE. All of the fields in the top section are attributes on the Labor record with the exception of Supervisor which comes from the Person record.

The next four fields are used with Maximo Scheduler.

When GPS or Location Services is switched on on a mobile device the GPS tracking co-ordinates are saved to the LBSLOCATION table at the frequency specified or when the start/stop button is used on a work order. This is supported by the Maximo Anywhere and Maximo Everyplace Technician applications.

Labor record – Person attributes

In the Personal section all of these attributes are either in the PERSON table or derived from it, as is the case for Calendar and Shift. The values seen come from my person record, AJE – Andrew Jeffery.

The four Procurement Card fields are used where the person has a corporate procurement card, they are held on the Person record and used through the lines on the procurement applications, Desktop Requisitions, Purchase Requisitions and Purchase Orders:

Labor – Crafts

You can see from the previous screenshot that for Labor AJE – Andrew Jeffery, his default craft was FC – Functional Consultant with a Skill Level of FIRSTCLASS. These are read-only fields and are derived from the records entered on the Crafts tab or in the Crafts application and Labor tab. In the screenshot above you can see that the second record for craft FC – FIRSTCLASS that it has the Default checkbox marked. Only one record can be marked as the default.

A Labor record can have multiple craft records, for the other craft records which are not marked as the default these are referred to as the secondary craft.

The Crafts table window is based on the LABORCRAFTRATE table. The hourly rates that are used are normally inherited from the Craft record or the Labor Rate Contract record, but they can be made specific to the Labor. A Labor record could have the same craft referenced multiple times, for example:

There are four levels Craft, Skill Level and for outside Labor, Vendor and Labor Rate Contract. You need to work out how you will use these through your Maximo system, for example if a requirement is for an ELECT craft with FIRSTCLASS skill level, then that is not matched by a labor that only has the ELECT craft and no skill level. You can find examples on this in the Crafts article

Skill Levels are also explained in the Crafts article. A skill level has a rank where 1 is the highest. A labor with a high skill level rank can be assigned to work requiring the same skill level rank or lower but cannot be assigned to a higher skill level rank requirement. Many Maximo clients do not use Skill Levels.

The Premium Pay Codes and Rates are applicable to the Craft and are not at the Skill Level. Different Premium Pay Codes/Rates can apply to different Crafts. The Rate Type determines how to calculate the cost for hours entered as Premium Pay Hours; they have no effect on the rate used for Regular Hours. This is also explained in more detail in the Crafts article.

Labor – Qualifications

A Labor can have one or more Qualifications, some of which may have associated certifications. In this example, I acquired the Maximo 7.6.1 Functional Analyst certification on 01st July 2020, its usefulness as a certification would only be valid for about 5 years, by which time there will be another Maximo certification to sit. The same certification can be renewed and extended. This is explained with examples in the article

Qualifications can be used to explain the specific skill sets of one Labor. For example, I am skilled in Maximo Scheduler, the Health Safety and Environment (HSE) add-on, and I co-wrote some of the earlier versions of Maximo for Service Providers, so count myself as skilled in that Maximo product as well. There are no certifications for these, however, associating a qualification with a Labor record can help a supervisor to determine who to place on a job, even if multiple others who are also available have identical craft and skill level.

Qualifications are used with Crew Types and Crews and you can see whether the qualifications of a crew have been met by the labor that you have assigned to the crew. There is, however, no checking of qualifications against the qualifications required by a work order in core Maximo, some industry solutions perform this sort of check, Transportation for example.

Some clients use Qualifications for keeping track of training records. Maximo Health, Safety and Environment Manager 7.6.2 which was announced on 17th November 2020 has new Training Courses and Training Modules applications.

Labor – Status

The Labor Status defaults to ACTIVE and can be set to INACTIVE through the Change Status action which is found in many other Maximo applications. There is a memo field in the Change Status dialog.

The View History action shows the status change history. This one is for JWA – John Watson, I created this record as part of the Crews articles.

Making the Person Inactive will make the associated Labor records Inactive. If you made the Person record Active again you would receive the Information message “BMXAA3112I – Labor and/or user records associated with this person exist. Any changes to their status must be performed separately.”

The Change Status action is available from the List tab of the Labor application, and so you would be able to make the Labor active for all organizations that they belong to, in one action. If a Labor will no longer be assigned to a particular organization then this would be a good reason for making them Inactive on the Labor record while keeping them Active on their Person record.

You cannot make the Labor record Active if their Person record is Inactive you will receive the error message “BMXAA2526E – A labor may not be changed to Inactive unless the associated person is in the Inactive status.”

The status can be changed for multiple Labor records by making a selected set and using the Change Status action on the List tab of the Labor application.

Add Crew Work Group

There is another List tab action called Add Crew Work Group. This does nothing more that add the Crew Work Group field to the selected set of Labor records. It doesn’t add the people into the Person Group that represents the Crew Work Group. The action can be used for changing the existing crew work group on those Labor records.

View Crew Assignments – View Assigned Work

There are two other view actions.

The View Crew Assignments action allows you to see the Crew – Labor Assignments for the Labor record. In this case JWA – John Watson has been assigned to the “BOSOHLW – Overhead Line Crew – West” crew. In the first instance his DRIVER craft and FIRSTCLASS skill level was assigned, although the crew position only needed a DRIVER craft, with no skill level. This Labor Assignment to the Crew has come to an end, and now what is effective is a Johns’ craft rate that has a craft of DRIVER with no skill level. This is an example of what I was referring to earlier, it would be better to either use the DRIVER craft with no skill levels or always use the DRIVER craft with skill levels, in that way you wouldn’t end up with JWA – John Watson having two craft records: Craft DRIVER and a Craft DRIVER with skill level FIRSTCLASS.

When the dialog opens the Start Date and End Date are empty, so you need to pick a date range and then use the Refresh button to see whether there are any records.

The View Assigned Work action and dialog works in a slightly different way as you do not need to use the Start Date and End Date except to narrow down the focus. This is looking at the “work assignment” records found in the ASSIGNMENT table visible on the Assignments tab of the Work Order Tracking application or in Assignment Manager or some of the Maximo Scheduler applications, Graphical Assignment or Graphical Work Week. It will not find the tickets and work orders where John has been referenced as the owner.

Labor – Zero Year to Date Hours

Each Labor record has three year to date (YTD) duration fields, they are for Regular Hours, Premium Pay Hours and Overtime Refused Hours. The YTD Regular Hours and YTD Premium Hours are accumulated as Actual Labor records are recorded on work orders, tickets or in the Labor Reporting application. The Overtime Refused hours are entered manually in the Labor application in the section YTD Hours that is found at the bottom of the main tab of the Labor application. The other two Year To Date (YTD) fields for Regular Hours and Premium Hours are read-only in this section.

The action Zero Year to Date Hours is used to set one or more of these fields to zero. This would normally be performed at the start of the calendar year or financial year. Unfortunately, there is no action that allows this to be performed for a selected set of Labor records.

In the Labor Reporting application you can record time records with a time type of OT-REF, Overtime Refused, these hours are not accumulated into the corresponding YTD field on the Labor record.

Incidentally, the reported hours are not accumulated into the YTD values until the actual hours have been approved. By default, internal labor are approved automatically, but not for outside labor who have a vendor reference on their Labor Craft Rate (LABORCRAFTRATE) record. Those records need to be approved in the Labor Reporting application.

Create Labor Inventory Location

The Create Labor Inventory Location action opens a dialog and by default will create a location with the same identifier as the Labor record – JWA in this case. I entered a description for the Inventory Location – JWA Truck Inventory and a GL Account of 6200-300-200. The dialog also allows you to enter a Control Account and a Shrinkage Account, these might be the same for many storerooms of this type.

When you exit the dialog with the OK button Maximo creates the Labor Location – a Location of type LABOR. The details entered in the dialog are copied onto the Location record. A Labor Location, and also a location of type COURIER are inventory based locations, they used to be called transit locations, meaning that they are carrying the stock from one storeroom to another, but you can issue from a Labor location to a work order. You do not use the Item Master for adding the item to these types of storerooms and you will not find a reference for them in the Storerooms application, however, you can transfer items to them from another storeroom and then use the normal inventory processes from the Inventory application.

Back on the Labor record for JWA – John Watson you can see that this record now references the Labor Inventory Site of BEDFORD and the Labor Inventory Location of JWA – JWA Truck Inventory.

I’ve transferred a quantity of 2 of item 386-12, a Pipe Gasket from the CENTRAL storeroom to the new JWA Labor Location.

The item 396-12 can now be seen in the Inventory application under the Storeroom JWA with a current balance of 2.

Deleting Labor Records

You cannot delete a Labor record once it is referenced on a work order assignment as you will receive the error message “BMXAA2557E – Cannot delete labor because it is referenced by an assignment.” When the work order has reached closed status, you will be able to delete the labor record.


There are two standard Labor reports.

The Labor Qualification report has one parameter which is the Labor status. Its shows the qualifications and certificate expiry dates of all labor.

The Labor Utilization report has three parameters, a Start Date, End Date and Labor Code. This is looking at the actual labor records with start date and time between the dates specified.

Organizations – Labor Options

The Organization application and action Labor Options is where you set whether to automatically approve inside and outside labor transactions – the top two options.

The “Allow Mismatched Craft and Labor When Reporting Actual Labor” is normally set unchecked meaning that the Labor that can be entered on an actual labor record must have the Craft and Skill Level combination that matches the Craft and Skill level already entered on the actual labor transaction. For example, if the actual labor transactions was for an ELECT-FIRSTCLASS then you could not pick a Labor that only had MECH as a craft. In effect the validation is checking the LABORCRAFTRATE table when it is left unchecked. When this field is checked it will allow mismatches, basically any labor to be reported against any craft and skill level. In this case, the hourly rate is derived from the CRAFTRATE table.

In Work Order Tracking application and Actuals – Labor tab, the craft entered is MECH and the skill level is FIRSTCLASS. I didn’t choose to use the Select Value which would have filtered by MECH-FIRSTCLASS but entered in the Labor field HSN – Helen Snape who is an electrician, ELECT-FIRSTCLASS. On leaving the field the validation controlled by the “Allow Mismatched Craft and Labor When Reporting Actual Labor” setting fires and I receive the error message “Mismatches between labor, craft, skill level, vendor and contract are not allowed. Use the Select Value to see a list of valid choices. (BMXAA2634).”

With the “Allow Mismatched Craft and Labor When Reporting Actual Labor” now checked, returning to the same work order I can enter a craft of MECH-FIRSTCLASS and labor HSN – Helen Snape without the mismatch validation. The rate used of $25.00 is for the craft MECH-FIRSTCLASS derived from the CRAFTRATE table.

The next checkbox in the Labor Options dialog is “Automatically Approve Invoices Created from Labor Transactions”. When using outside labor, labor that has a labor rate that references a Vendor and/or Labor Rate Contract, then after approval of the actual labor transactions you can convert these transactions into an invoice to pay the vendor. This is performed in the Labor Reporting application and action Create Invoice. When checked these invoices will be at “APPR” state. When unchecked, as in this example the status of the invoice will be at WAPPR – Waiting Approval and the invoice will need to be approved manually. Notice the Invoice type is LABOR.

The setting for “Automatically Approve Invoices Created from Labor Transactions” should, in my opinion, be unchecked. This is because you need to match it to the vendor’s invoice and invoice date when this is received.

The advantage of using the Labor Reporting action to generate the invoices is that it tells the vendor what work has been approved and how much to invoice, smoothing the processing of what could be several invoices with many lines which can take a long time to process to ensure that you have not been charged twice for the same time. Maximo stops you if you attempt to invoice the same labor transaction a second time.

The final setting in the Labor Options dialog “Future Labor Transaction Tolerance in Hours” defaults to 0:00 and determines how far ahead of time now an actual labor transaction can be created.

Time now is 10:21 and the End Time is 11:00 and so we receive the error “BMXAA2641E – You cannot enter actual labor with future dates and times.”

This setting is dependent on the Time Zone on the logged in user – WILSON in this case. I had set the time zone to be my time zone in the UK – Europe/London, which is one hour behind the system time of the ZNAPZ server in The Netherlands.

To illustrate this, I have changed my time zone to Europe/Amsterdam, logged out and logged back in as WILSON. Now I can save the same actual labor transaction for HSN – Helen Snape. Time now is 10:35 in the UK. You can see it is saved because the record is Approved, HSN – Helen Snape is internal labor.

The future tolerance of 0:00 means that actual labor transactions cannot finish in the future of time now in the time zone of the logged in user. A future tolerance of 4:00 would mean that I could have reported actual labor with a finish time four hours ahead of time now in my time zone. Note. It is not the time zone of the Person record associated with the Labor record, Helen Snape in this case, but the time zone of the logged in user that is used.

And finally, if you were wondering about the Work Zones and Map tabs, these will be found in other articles covering both Labor and Crews.

Leave a Reply

%d bloggers like this: