Method and apparatus for timekeeping

For reporting, recording, and/or employee timekeeping, an exemplary time manager interface on a display of a communications device allows an employee to track his or her work time and activities. The time manager interface connects the employee to a central time manager system that tracks and records employee check-in and check-out times. The time manager interface may also permit employees to view their and other schedules. The time manager interface is able to compensate for the time spent initially connecting to the network and launching the interface by recording the network logon time as the check-in time when the difference between the network logon time and the actual reported time is below a predetermined threshold.

BACKGROUND

Business establishments often use identification badges and time cards to track and manage employee time. Common timekeeping methods use personal computer (PC) terminals and time clocks that are interconnected via wired connections to track employee time. In order to track their time, employees usually gain access to the PC terminal by entering an identification code (and possibly a password) or scanning their identification badge. The PC terminal communicates with the time clocks to obtain timing information and record the employee check in/out time. However, these clock-based systems may be difficult to install, are not always cost-effective, and are often non-portable.

DETAILED DESCRIPTION

Computer implemented methods, and corresponding systems discussed by way of examples below utilize existing information technology resources of communications devices to monitor, manage, record, and schedule employee work time (e.g., in minutes, hours, etc.). Some examples described herein relate to methods, computer implemented methods, and corresponding systems that, at a terminal positioned at a work site, monitor the time of an employee of the work site with an interface that receives employee check-in and check-out times from an employee. A time difference between a time at which the communications device first gained network connectivity to a communications network and a time at which the employee initiated using the interface for recording employee check-in time is determined, and in the event the determined time difference is below a predetermined threshold, the network connectivity time is recorded as employee check-in time.

Some examples described herein relate to methods, computer implemented methods, and corresponding systems that, at a mobile communications device positioned at a work site, provide an employee of the work site with an interface for use in recording employee check-in and check-out times. The interface includes a field for activation by the employee. The identification information of the communications device is verified and in the event the identification information of the communications device is included in a list that contains identification information of authorized communications devices associated with the work site, the employee check-in and check-out times are recorded in response to activation of the field by the employee.

In one example, in the event the determined time difference is above the predetermined threshold, the time at which the employee initiated using the interface for recording employee check-in time may be recorded as employee check-in time.

In one example, the employee is provided with a field, positioned within the interface, and the employee check-in and check-out times is recorded in response to activation of the field by the employee.

In one example, the geographical location of the communications device is determined, and in the event the geographical location of the communications device is within geographical boundaries of the work site, the employee is authorized to use the interface for recording check-in and check-out times. The GPS location of the communications device may be stored in a database for future audit.

In one example, the identification information of the communications device is determined, and in the event the identification information of the communications device is included in a list that contains identification information of authorized communications devices associated with the work site, the employee is authorized to use the interface for recording check-in and check-out times. In some examples, the list containing the identification information of authorized communications devices associated with the work site is maintained at a database remote from the communications device. The identification information may include at least one of an Internet Protocol (IP) address associated with the communications device, a Mobile Device Number (MDN) associated with the communications device, login ID+password, or Global Positioning (GPS) information of the communications device. In some examples, the communications device is individually assigned to the employee. In such examples, the employee is identified as a function of the identification information of the communications device.

As noted, in some examples, the employee is provided with a field, positioned within the interface. The employee check-in and check-out times may be recorded in response to receiving identification information from the employee. The identification information may include at least one of a typable identification code assigned to the employee, biometric information of the employee, or a printed code assigned to the employee.

FIG. 1is an illustration of a high level block diagraph of a system for employee time tracking. As shown, an employee105may utilize a communications device115to track and record his/her time into a time manager interface150. Application software (not shown) enables the communications device115to provide a time manager interface150via the input/output elements of the particular type of communications device115. The drawing illustrates an example of a graphical user interface (GUI) implementation of the time manager interface150, as may be shown to the user/employee105via the display of the communications device115. The time manager application software need not to be hosted or executed on the communications device115and may be hosted remotely from the communications device115. For example, the time manager application software may cause the device115to communicate through a wired or wireless communications link111with a central time manager system140. The central time manager system140is responsible for monitoring, tracking, managing, and recording employee work-related activities and the times associated with these activities.

Although not shown, in some examples, the central time manager140may serve multiple work sites101of a work establishment (e.g., various storefronts of a company) that may be located in various geographical locations (e.g., a company having storefronts across a city, state, country or even the world). For example, the central time manager140may serve work sites101of multiple work establishments (e.g., storefronts of multiple companies). Although shown as a single instance, the central time manager140may be implemented on multiple networked computer platforms in a distributed manner, e.g. to provide redundant capacity in the event of network or platform failure and/or to provide sufficient capacity for the central time manager functionality for a large workforce of a large enterprise type employer.

Although each establishment being monitored by the central time manager140may have employees that are paid based on reported and/or recorded work hours (hereinafter referenced as non-exempt employees) and those who are salaried and are paid a predetermined salary regardless of the hours worked (hereinafter referenced as exempt employees), the term employee105, as used herein, refers to those employees that are paid based on their reported and/or recorded work hours (non-exempt employees).

As stated above, the employee105may use the communications device115to track and record his/her time into the time manager interface150and indicate that he/she intends to begin (i.e., check-in) or end (i.e., check-out) a work session at the work site101of the work establishment (not shown). The term work session, as used herein, refers to a period of time that the employee105is working at the work site101and should be reimbursed for the work performed.

The communications device115may be a mobile (e.g., wireless) or non-mobile (e.g., desktop) communications device115. Examples of the communications devices that may be used with the systems and methods disclosed herein include, but are not limited to, personal computers, desktop computers, mobile phones, Personal Digital Assistants, tablet computers, laptop computers, etc.

The communications device115may include a display102for displaying screen content (e.g., images). The display102may be a built-in integral display that is coupled wirelessly or through a physical connection (e.g., network connection) with the data processing components of the communications device115. For example, the display102may be a touch screen display that detects the presence of pressure and location of a touch within the display area. The touch screen may respond to being touched with various objects, such as fingers, hands, or a stylus.

In one example, the communications device115is coupled with one or more peripheral devices (not shown) that facilitate employee interaction with the computing device. The peripheral devices may be built-in units or be coupled with the data processing components of the communications device115wirelessly or through a physical connection (e.g., a network connection). Examples of the peripheral devices include, a mouse, keypad, and/or printer.

In one example, the communications device115may include one or more audio I/O devices (e.g., microphone, speaker, etc.). In one example, at least one of the audio I/O devices may be a built-in I/O device. In one example, at least one audio I/O device is a separate unit that is coupled wirelessly or through a physical connection (e.g., a network connection) with the data processing components of the communications device115. In one example, the communications device115may include video capabilities. The video capabilities of communications device115may be provided by a built-in video module or be provided by an independent video module that is coupled with the communications device115wirelessly or using a physical connection (e.g., network connection).

In one example, the communications device115is permanently mounted at a location in the work site101such that it is accessible by the employees. In one example, the communications device115is positioned in the work site101such that it is intended not to be removed from its designated location. In one example, the communications device115is installed at the work site101upon establishment of the work site101in order to prevent installation of other time management devices at the work site101.

In one example, the communications device115is mobile. For example, the communications device115is a mobile communications device that can maintain connectivity and management functions while being moved within the physical boundaries of the work site101and its authorized surroundings (e.g., outside the worksite by personnel that serve as technicians that may travel from job site to job site). The mobile communications device115may have limited connectivity ability (e.g., WiFi only) or may be able to connect via different networks (e.g., WiFi and cellular). In one example, global positioning (GPS) information is used to restrict the usage of the mobile communications device115to the physical boundaries of the work site101and its immediate surroundings. Alternately, use of the software enabling the employee to check-in and check-out may be geographically restricted even though other functionality of the mobile communications device may not be restricted. For example, GPS locations of the physical boundaries of the work site101is determined by the communications device115(or by an external device and then sent to the communications device115) and the communications device115is programmed such that it is used for tracking and recording employee time while within the boundaries indicated by the GPS information of the work site101. The communications device115, in one example, may be a device that is dedicated to time entry or to entry of work-related activities for all employees and thus be enabled to run limited software (such as that for time entry, Office suite products, etc. . . . ).

As previously stated, the employee105may use the time manager interface150appearing on the display102of the communications device115to indicate that he/she intends to begin or end a work session. In response, the time manager interface150and the underlying time manager application software (not shown) may communicate with the central time manager140. As noted previously, the central time manager140is responsible for monitoring, tracking, managing, and recording employee work-related activities and the times associated with these activities. The central time manager140may be remote from the communications device115, for example at a server, and be connected to the communications device115via a communications network. Although not shown, in one example, the central time manager140, or parts thereof (e.g., physical or implemented in software), may be within the communications device115.

Regardless of where the central time manager140is positioned, the employee105may be uniquely recognized by the central time manager140using employee identification information (e.g., login ID+password or employee ID106) entered into the time manager interface150. For example, the employee ID106is a numerical, alphanumerical, or an alphabetical employee ID106. The employee ID106may be assigned by the establishment that operates the work site101(e.g., an employee number assigned to the employee105) or be a function of the previously known information about the employee105(e.g., based on the employee initials or a function of his/her name, date of birth, or social security number). Regardless of its format, the employee ID106is a unique identifier that is used to uniquely identify the employee105across all work sites101and establishments monitored by the central time manager140.

In one example, each employee105is assigned an employee ID106that is unique across all work sites101and establishments managed by the central time manager140. For example, each employee105may be uniquely identified using his/her social security number. Alternatively, the employee ID106assigned to an employee105may only be unique within the employee's work site101. In another example, the employee ID106may only be unique within predetermined work sites, e.g., all work sites within a predetermined geographical range of the employee's105usual work site (e.g., same town or city) or all work sites at which the employee is authorized to work by a superior. For example, the central time manager140may uniquely identify each employee105as a function of the work site101and/or the establishment at which he/she works. For example, the central time manager140may assign a unique identifier (not shown) to each work site101and utilize a combination of the work site identifier and the employee ID106to uniquely identify the employee105. An employee105may be assigned an employee ID106of SAB and working at a work site101to which identifier number 12 has been assigned, may be uniquely identified by the central time manager140as 12SAB. Each establishment operated by the central time manager140may also be assigned an identifier.

In one example, the central time manager140may identify a work site101as a function of the Internet Protocol (IP) addresses assigned to the communications devices115utilized at that work site101. Further, in one example, when utilizing a mobile communications device115, the mobile device number (MDN) of the communications device115may serve as a communications device identifier. For example, the central time manager140may maintain a list of the IP addresses or mobile device numbers used by the communications devices115located at each work site101. This list of the utilized IP addresses may be maintained in a database165included in the central time manager140. When the employee105utilizes the communications device115to indicate to the central time manager140that he/she intends to begin or end a work session, the central time manager140detects the IP address of the communications device115utilized by the employee105. The detected IP address is verified against the list of utilized IP addresses at each work site101and if a match is obtained, the work site101is identified and authenticated. Once the work site101is identified and authenticated, the employee105may be uniquely identified as a function of his/her employee ID106and the identified work site101.

In one example, the employee105may record his/her work start and stop times (e.g., check-in and check-out times) using an individually assigned communications device115. In this regard, no further information may be required from the employee105and he/she may be uniquely identified, upon identification of his/her individually assigned communications device115. It will be understood that some businesses track work from arrival at the start of the day (e.g., punching-in) to departure at the end of the day (e.g., punching-out) while other businesses track time in a more granular way, based on time spent during the day on various tasks, projects or assignments. The personal communications device115may be used to capture the time in the more granular way as well. For example, the different projects can be entered in the communications device115.

In one example, the employee ID information (e.g., number) is captured from a unique barcode or a quick response (QR) code that has been assigned to the employee105. The barcode and/or the QR code may be printed on an employee badge or stored digitally in a device (e.g., the employee's mobile phone) that may be able to display the code or barcode.

In other examples, biometric information associated with the employee105, rather than an ID code, is used. For example, information such as employee voice, facial features, facial photo, fingerprint, handprint, or iris characteristics may be used to uniquely identify the employee105.

As explained above, the employee ID106, regardless of the its format, is entered into the time manager interface150and used to uniquely identify the employee105and track the date and/or time at which he/she starts or ends a work session.

The time manager interface150provides the employee105with a medium for entering his/her employee ID106. As noted, in one example, the time manager interface150may be the user interface of an underlying time manager application software (commonly referred to as an app, not shown) that is responsible for receiving the employee ID106from the employee106.

As shown inFIG. 1, the time manager interface150may include an employee ID field107for receiving the employee ID106from the employee105. Depending on the employee ID106format used, the employee ID field107may be configured to receive various forms of input. In examples which limit the employee ID106to having a predetermined limited number of alphanumerical characters, to avoid incorrect entries, the employee ID field107may be limited such that it may only receive the limited number of alphanumerical characters. For example, the employee ID field107is an activation button that is activated in response to receiving an input (e.g., mouse click or touch) from the employee105.

The time manager interface150may use various mediums for receiving the employee ID106from the employee105. For example, when operating with an employee ID106that is entered using a keypad, the time manager interface150may receive the employee ID106information through a peripheral device, such as a separate physical keypad (not shown), coupled with the communications device115. In one example, the employee ID106need not be entered; instead, the ID106is derived from prior login information (e.g. login ID and password, where the login ID may be different from the employee ID106).

In one example, the time manager interface150may display a keypad142for use in entering the employee ID106. In one example, the keypad142may appear on the display102in response to activation of the employee ID field107by the employee105. In one example, the employee ID field107is activated in response to a mouse click on the employee ID field107or in response to touching of the employee ID field107when using a touch activated implementation of the display102. In one example, the keypad142may appear on the display102upon launching the time manager interface150. As noted previously, in one example, the time manager interface150does not require a keypad and is arranged to only include an activation button. Although activation buttons may be used, the employee ID field107itself may be used by the employee105to initiate his/her check-in or check-out procedures by clicking in the field (and/or pressing in that field via touch-screen).

The keypad142may be presented to the employee105in any manner known in the art. In one example, the keypad142may display limited characters. When the employee ID106includes numerical characters, to reduce possible errors in entering the employee ID106(e.g., inadvertent entry of alphabetical characters or symbols), the keypad142may be limited to including only numerical characters.

In examples that use employee IDs106that include barcodes, QR codes, or biometric information, the employee ID field107is arranged to receive such information. For example, the employee ID field107may appear on the display102of the communications device115as an interactive field and the user is asked to align his/her barcode, QR code, or biometric information source (employee's iris or finger) such that it is completely contained within the employee ID field107. Once completely aligned, the employee ID106is read by the time manager interface150by the appropriate input mechanism on the device115(such as a camera, fingerprint scanner, near field communication or NFC device, etc.).

In one example, the keypad142is a touch sensitive keypad142that responds to touch and pressure (e.g., by fingers, hands, or a stylus). Additionally or alternatively, the keypad142may be used in combination with peripheral devices, such as a keypad or a mouse, which are coupled with the communications device115.

As noted, the time manager interface150may use various mediums for receiving the employee ID106from the employee105. For example, when using a tablet as a communications device115, a keypad may be used. For a mobile phone communications device115a login ID, password, and employee ID106may be used before further functionality is made available. For a personal computer (PC) communications device115, an clickable icon may be used to communicate the employee ID106to the central time manager140over the communications network110. For example, when operating with employee IDs106that include QR codes, barcodes, or biometric information, in addition or in place of the employee ID field107, the time manager interface150may be coupled with a microphone (not shown), camera (not shown), scanner (not shown), or a barcode reader (not shown) that reads the barcode, QR code, or the biometric information.

In one example, if a communications device115is designated for use by some employee105, the time manager interface150is arranged such that the employee105no longer needs to enter his/her employee ID106into the time manager. For example, the employee105is able to record his/her time by simply activating the employee ID field107(e.g., provided as an activation button) and without having to enter his/her employee ID106.

The employee ID106or related information, once obtained by the time manager interface150, is forwarded, via one or more communications links and through a communications network, to the central time manager140for monitoring and recordation. In one example, information other than the employee ID106may also be forwarded to the central time manager140. For example, information regarding the date and/or time at which the employee105has entered his/her employee ID106into the time manager interface150is forwarded to the central time manager140. Other instances of date and/or time may be reported. For example, the time at which the employee105initiates the usage of the communications device115is recorded (e.g., by sending the time information to manager140for recording). For example, if it is detected that the communications device115was not turned on prior to being accessed by the employee105and/or had to be booted up by the employee105(e.g., if the employee105is the first person to enter his/her time that day or if the system was turned off or had to be rebooted), the time that the communications device115was turned on or booted by the employee105is forwarded to the central time manager140. Additionally, in one example, the time at which the communications device115first gained network connectivity is be reported. This time may be used instead of, or in conjunction with, the time indicated by the employee ID106entered into the time manager interface150to obtain a more proper estimate of the time the employee105arrived/left the enterprise.

In one example, some thresholds are applied in time recordation. For example, a time difference of up to thirty minutes may be allowed between the boot time or network access time and the actual time entry by the employee105. For example, when the user clicks on the employee ID field107, the network login time is determined from the PC. The login ID and the network login time are sent to the central time manager140over communications network110. If the current time (e.g., time of the punch in) is within a predetermined time (e.g., 30 min) of the network login time and if the punch in is the first punch in of the day, the current time is recorded as the network login time. Otherwise, the actual time of the punch in is recorded.

In one example, a time difference between the time that the computer first gained network connectivity or was first booted and the time at which the employee105initiated recording his/her time may be determined. This calculation of the time difference may be done in a processor (shown later in connection withFIG. 2) of the communications device115and in response to instructions included in the time manager application software. Once the time difference is determined, it may be compared against a threshold (e.g., thirty minutes). If below the threshold, network or boot time may be recorded as the time the employee105began a work session. If above the threshold, actual employee check-in time may be recorded as the time the employee105began a work session. It will be understood that a subsequent user of the computer will not receive the benefit of the boot time (unless the computer is indeed booted up again). The threshold may be set by an authority operating or overseeing the operation (i.e., a person) of the work site101or a parameter set at a national level. In one example, employee time is rounded up or down to the nearest minute.

In one example, the date and/or time information are determined based on the local time indicated by an internal clock of the communications device115. In one example, a network time protocol is used by the communications devices115connected to the communications network110to synchronize all connected communications devices. The date and time information, as indicated by the synchronized computers of the network, may be utilized for timekeeping purposes. In one example, the date and time indicated by the base stations of a mobile network are utilized to track employee activities.

The communications device115and the central time manager140may communicate directly or through intermediary communications devices. For example, as shown inFIG. 1, the central time manager140is implement as programming on a network connected computer configured as server122in communication with the communications device115via a communications network110. A network or host computer platform typically may be used to implement a server, with respect to client programming on user terminal devices, although a server for one service may be client for another service. A computer or the like with user interface elements, such as a personal computer or other type of work station or terminal device, often is programmed with appropriate client software, although for at least some purposes, such a computer or the like also may act as a server. In the example, the computer configured as the server122is programmed to implement the central time manager140; and the computer or the like serving as the device115is programmed to act as a client with respect to the server122and its central time manager140. The relevant client software may be part of or interact with the time manager application software by which the device115provides the time manager interface150. In one example, the communications device115and the central time manager140may communicates through secure and/or encrypted communications links. However, in some instances, the server and associated manager functions may be implemented on the same platform or device115that implements the time manager interface150.

The communications network110may be a high-bandwidth and/or band-limited communications network. In one example, the communications network110may be a wireless communications network. In one example, the communications network110is a local area network (LAN), metropolitan area network (MAN), or a wide-area network (WAN), such as the Internet. In one example, the network110may include one or more segments of one or more general purpose network (e.g., Internet, LAN, etc.) and/or other networks (e.g., Internet protocol (IP) network). Depending on the type of communications device115used (e.g., mobile or a network device), the communications device115and the central time manager140may communicate through appropriate communications links111(e.g., wireless and/or wired communications links) and appropriate communication networks110.

As explained previously, the time manager interface150may be an interface of the time manager application software (not shown). In one example, the time manager application software may implement the appropriate procedures for obtaining the employee ID106and other information (e.g., date and time) and forwarding the obtained information to the central time manager140on the server122via the network110.

In one example, a security platform125may host and/or validate the time manager application software140. In one example, the security platform125is an enterprise mobility platform that is responsible for building, deploying, managing, and/or updating the time manager application software simultaneously across various communications devices. In one example, the enterprise mobility platform does not have any logic for time management. Instead, it authenticates the employee logging into the system and forwards the check-in request to the central time manager140.

In one example, the security platform125maintains some information regarding the work sites101that are being managed by the central time manager140. Further, in one example, some information regarding the communications devices115deployed at each of the managed work sites101is maintained. As explained previously, in one example, the security platform125maintains a list of authorized IP addresses that include the IP addresses and/or the GPS information associated with all deployed communications devices115.

In one example, the information maintained by the security platform125, relating to the work sites101and their associated communications devices115, is used by the security platform125to identify the work site101and/or validate the communications device115. For example, the security platform125may validate the communications device115by checking its IP address against the list of authorized IP addresses to determine if the communications device115is authorized to communicate with the central time manager140.

In one example, the security platform125may determine the geographical location of the communications device115and validate the communications device115by verifying that the communications device115is positioned within its intended physical boundaries. For example, assuming that a mobile communications device115is being used, the security platform125may determine the geographical location of the communications device115. The security platform125may utilize various mobile tracking schemes. For example, the cell phone network may determine location information through multilateration of radio signals between radio towers of the network110and the communications device115to provide the geographical location of the communications device115. In another example, the communications device115has a GPS receiver and the platform125receives the latitude/longitude coordinates determined by the GPS receiver or receives GPS signal measurements that the server122uses to calculate the latitude/longitude for the communications device115. Once the geographical position of the communications device115is obtained, the security platform125may determine whether the obtained geographical position of the communications device115is included in the physical boundaries of the work site101. Thus, the platform125is identifying the worksite from this location. If within the physical boundaries, the communications device115is validated and may be used for tracking and timekeeping of employee activities. In one example, if the security platform125determines that the communications device115is outside of its intended boundaries, an error message indicating the failure to validate the communications device115is relayed to the employee105through the time manager interface150. The error message may also be stored and/or transmitted to other personnel of the employer such as a supervisor of the employee105, for further review or action.

Further, in one example, the security platform125may utilize its knowledge of the IP addresses of authorized computers at each work site101to impose some restrictions on the communications device115. For example, when an employee105tries to launch the time manager application software, a request to launch the time manager application software including the IP address of the communications device115is forwarded to the security platform125. The security platform125, in response, verifies the IP address of the communications device115to determine if it is an authorized IP address. If so, the security platform125sends a response to the communications device115indicating that access is granted and, upon receiving the response, the time manager interface150is launched by the communications device115. If not, the security platform125sends a response to the communications device115indicating that access is not granted and, upon receiving the response, the time manager interface150is unable to be launched. In one example, notification is shown on the display102as to the reason why the time manager interface150is unable to be launched.

In one example, in addition to verification of the communications device115, the employee ID106is also be verified. The verification of the employee ID106is done at the communications device115and/or using a module positioned within the communications network110(not shown) or in the server122. Regardless of the location where the employee verification is performed, verification may be done by accessing a database that contains employee information and verifying the employee ID106against the information in the database. The database may include employee ID106and schedule, for each employee who is authorized to work at a work site101. In one example, the database further includes information identifying the work sites101at which each employee105is authorized to report for work. In order to verify the employee ID106, the employee ID106received from the employee105may be checked against the database to determine if a match to the database exists. If a match exists, the employee ID106is verified as a valid employee ID106. Otherwise, if a match does not exist, the employee ID106is determined to be invalid. In such a case, an error message may be relayed to the employee105, via the communications device115and/or the time manager interface105, indicating that the employee ID106has been deemed invalid. In one example, in addition to verifying the employee ID106to ensure that it is included in the list of authorized employees105, the employee schedule (not shown) may also be evaluated to determine if the employee105is authorized to begin and/or end a work session at that time. Furthermore, in one example, the database of authorized work sites101may be accessed to determine whether the employee105is authorized to work at the work site101where time recordation is being requested.

In one example, the database including the information used for employee verification is maintained within the communications device115. In one example, this database is maintained within a component connected to the communications network110. In one example, the database is maintained by the central time manager140(i.e., database165in server122).

In one example, the procedures for verifying the employee ID106, the employee schedule, and/or the appropriate work site101to which the employee105is assigned for work are implemented and carried out in the communications device115. In one example, the module that implements and carries out the required procedures is a component connected to the communications network110(i.e., security platform125). Alternatively or additionally, in one example, the central time manager140includes an access manager (not shown) that implements and/or carries out the required procedures for verifying the employee ID106, employee schedule, and/or employee work site101.

In one example, the central time manager140includes a service engine145that interacts with the security platform125to receive the information (e.g., employee ID106, date and time information, etc.) forwarded by the communications device115to the central time manager140after successful completion of the applicable security procedure(s). The service engine145is a web service layer interacting with the central time manager140for all the time entry information. Further, in one example, the service engine145may utilize the database165to uniquely associate the employee105and the received information.

In one example, the information received by the service engine145is interpreted prior to being associated with the employee105. In examples that utilize employee IDs that include a QR code or a barcode, the service engine145may include or be coupled with a module on the communications device115that provides the appropriate functions for interpreting the barcode or the QR code. Similarly, in examples that utilize biometric information, a module (not shown) that provides the required functions for interpreting the biometric information and using the interpretations to uniquely identify the employee105is utilized.

In one example, the service engine145may utilize the database165to maintain previously obtained information for each employee105and each work site101. In examples that use biometric information to identify the employees, the database165may include biometric information (e.g., fingerprint or voice sample) that has been previously obtained from the employee105. Upon receiving the information forwarded by the communications device115(e.g., upon receiving a recently obtained fingerprint or employee ID106), the service engine145accesses the database165to determine whether a corresponding previously stored value of the received information (e.g., previously obtained fingerprint or employee ID106that have been saved in the database165) matches the received information. If a match is obtained, the employee105is uniquely identified. If a match is not obtained, an error message indicating the failure to uniquely associate the employee105with the information in the database is relayed as above to the employee105through the time manager interface150.

In the event a match to the database165is obtained, the service engine145records the date and/or time information at which the employee105is attempting to start or end a work session. In one example, the data and/or time information are stored in an area of the database165designated for timekeeping. For example, the particular worksite and/or location is recorded (e.g., when employees work at different employer/customer sites). The worksite ID and/or location information gets through to the central time manager140through the communications network110and recorded.

In one example, the service engine145may utilize the information received from the communications device115to determine whether the employee105is eligible for starting and/or ending a work session. For example, in one example, the service engine145may access a list of employees that are authorized to work at each work site101. Additionally or alternatively, the service engine145may maintain work session schedules assigned to each employee105at the work site101. The list of authorized employees and/or their assigned schedules are maintained in the database165of the central time manager140.

In one example, upon receiving the employee ID106and other relevant information (e.g., employee ID and/or login ID), the service engine145may verify the received information against a list of authorized employees and their assigned schedules to determine if the employee105is authorized to start and/or end a work session at the requested work site101. The list of authorized employees and their assigned schedules may be maintained in the database165. If authorized, the central time manager140signals the time manager interface150that the employee105has been verified and authorized. The time manager interface150, in response, may issue an announcement to the employee105, confirming that he/she has been verified and may start or end a work session. Alternatively or in addition, a different device may be used for this notification, i.e., the employee ID106may be entered on a dedicated communications device115at the work site101and the notification provided on the communications device115, the employee's communication device (e.g., mobile phone), and/or the communication device (e.g., mobile phone) of the employee supervisor. Notification may also be provided via email, text message, voicemail message or any other predetermined manner. Where a notification is provided to another device, the information (e.g., in the database165) about or associated with the employee that has just checked in or out via the interface150on the device115would identify and/or include an address for each additional or alternative device that should receive notifications about the employee's activities and time records.

As noted above, some establishments may classify or categorize the employees into categories including exempt employees (i.e., salaried employees) and non-exempt employees (e.g., hourly paid employees). In such examples, the central time manager140may maintain a listing of the classes or categories to which each employee105belongs. The listing of the classes or categories may be maintained in the database165. For example, in the event the service engine145determines that an exempt employee105is trying to use the communications device115to record the start and/or end of a work session, an error message is issued to inform the employee105that he/she is not authorized to use the central time manager140for time and/or date recordation. In one example, the time manager interface150, in response to an appropriate message or command from the central time manager140, issues the error message to the employee using an audio message and/or by displaying an error message on the display102of the communications device115. As in several of the other notification examples, the central time manager may send a message or command to provide the notification, to another communication device of the employee different from communications device115.

In one example, a confirmation is issued to the employee105once the employee ID106, and other information such as the employee schedule, are authenticated. The confirmation may be in form of a message that is relayed to the employee105on the display102of the communications device115and/or via a communication device of the employee (if different from communications device115). An audio announcement, text message or video message, providing the confirmation notification, may be used to confirm that the employee105has successfully recorded his/her start or end of the work session. In one example, the time manager interface150may be responsible for relaying the confirmation message to the employee105. For example, the time manager interface150may play an audio announcement (e.g., including the employee name or employee ID106) or visually display an announcement (e.g., including the employee name or employee ID106) on the display102of the communications device115to confirm that employee105time has been successfully recorded.

In one example, other employee identifiers such as employee name are included in the notification announcement or display. Further, the recorded date and/or time and/or location may also be included in the confirmation presentation to the employee.

As stated previously, in one example, in the event the authentication of employee ID106is not successfully completed, the time manager interface150indicates the failure to authenticate to the employee105through an error message (e.g., timeout entry completion, network connection issues, etc.). In one example, the error message is included in an audio message. In one example, the error message is included in a visual message that is displayed on the display102of the communications device115.

In one example, the central time manager140includes an application interface engine155that is responsible for customizing the application software that is used with the examples described herein. The customization of the application software is done to increase the performance of the central time manager140. For example, the customization is performed at the application programming interface (API).

In one example, the employee105uses the time manager interface150for reasons other than tracking the beginning and end of a work session. For example, the employee105may utilize the time manager interface150for viewing his/her work schedule. Thus, the time manager interface150may provide the employee105with a field, menu or icon (not shown) for selecting an option for viewing work schedules. Once in the work schedule screen (not shown), in one example, the employee105may be allowed to select among various schedule viewing options. For example, the employee105is able to select between viewing his/her schedule and/or schedules of other employees105if the employee105has access to the other schedules as well as from various formats for viewing of the requested schedule(s). Additionally or alternatively, the time manager interface150may provide the employee105with a list of employees and request that the employee105selects the employee105whose schedule he/she wishes to view. The list may contain information indicating whether the employee105is permitted to view the schedule of another employee (such as allowing the other employee's schedule to be selectable or providing a separate tag next to each employee's name indicating whether they are able to be viewed) or merely not providing the identities of employees that the employee105is not permitted to view. The time manager interface150and the time manager application software may obtain the required information for displaying the employee schedule from the central time manager140. For example, the time manager application software may submit a request for the employee schedule to the service engine145. In response to the request, the service engine145may access the database165, obtain the requested employee schedule, and forward the obtained schedule, via the communications network, to the time manager interface150. The time manager interface150may subsequently display the schedule forwarded by the service engine145.

Further, the employee105may use the time manager interface150to view the number of hours he/she has worked, has been away within a given time frame (e.g., over a day, week, or month), or the date and time that he/she has started or ended a work session. For example, the time manager interface150may provide the employee105with a field, menu or icon (not shown) that upon selection causes the interface150to display the requested employee hours, including if appropriate input of a desired time frame. The requested employee hours may be obtained by submitting a request for the hours to the service engine145. The service engine145, in response, accesses the database165to obtain the time recorded for the employee105within the requested time frame. This information is relayed back to the time manager application software and displayed by the time manager interface150on the display102of the communications device115.

Furthermore, in one example, the time manager interface150is used to create employee schedules. For example, the time manager interface150may display an image of available time slots that employees are scheduled to work. The available time slots may be displayed over various time frames. For example, the available time slots for a day, week, and/or a month are displayed. For example, employees may insert their employee ID106into time slots (indicating that they are available for work during those time slots). This information is stored in the database165. In one example, the service engine145creates schedules according to known load-leveling methods based on these populated time-slots. Thus, employees may be selected for scheduling from a list of employees available to work at predetermined time-slots. Regardless of the scheduling features provided, the information required for scheduling the employees may be requested from the service engine145. The service engine145, in response to receiving a request, accesses the database165to obtain the requested information. For example, information regarding employee availability (e.g., whether an employee works day or night or whether he/she is on vacation) may be obtained from the database. In one example, once scheduling of an employee105is completed, his/her newly created schedule is forwarded to the service engine145. The service engine145, in response, stores the newly created schedule in the database165.

In one example, the central time manager140may utilize the recorded time and/or date information to track employ performance. For example, the central time manager140may utilize the recorded to time to determine employee arrival time patterns, etc. Such information may be sent to the employee managers at predetermined intervals or when one or more predetermined thresholds are met.

FIG. 2is a block diagram of an exemplary communications device115. The communication device115may include a processor230(e.g., Central Processing Unit) that is coupled to a memory220and arranged to carry out the operations of the device, execute various instructions, and manipulate data structures from the memory220. The memory220may be any appropriate type of computer-readable memory and may include combinations of volatile and non-volatile memory devices. For example, the memory220is configured to hold software265and firmware in the form of computer-executable instructions as well as data structures. For example, the memory220stores computer-executable instructions and data structures that implement aspects of the timekeeping and related management techniques described herein. For example, in some examples, the software265includes the time manager application software and implements the required procedures for displaying the time manager interface150, receiving employee inputs (e.g., of or relating to employee ID106) through the time manager interface150, and providing a user (e.g., employee105shown inFIG. 1) with information (e.g., summary of hours worked) and indications (e.g., validation messages or error messages).

In one example, the memory220includes an operating system270that implements various conventional operating system functions including memory management and controlled access to various devices, such as a database storage260, and task and process scheduling. The data storage260may include content, such as images, text, video, audio, and computer applications.

In one example the processor230is coupled to various interfaces via an input/output (I/O) device interface240. The I/O device interface240may include logic to interface various input and/or output devices, such as a keypad or mouse with the processor230, and allow signals and/or data to be transferred between the processor230and the external input or output devices coupled to the respective interfaces240. Further, interface devices such as speaker210, microphone207, peripheral devices203, and display102may be used to transfer signals and/or data to/from the processor230and memory220. In one example, the I/O interface240includes a USB port (not shown).

For example, the communications device115includes a network device interface250that provides the communications device115with access to a communications network110. The network interface250may be used to transmit and receive the messages and related data used for monitoring, managing, timekeeping, and scheduling of employee work time. For example, the network interface250is used to transmit information regarding the employee ID, date, and time an employee105(FIG. 1) begins a work session and receive a confirmation message including the date and time recorded for the employee105.

FIG. 3is a high-level flow diagram of an exemplary procedure for an employee timekeeping function that may be used with the system ofFIG. 1. An employee105(FIG. 1) may initiate recording of his/her time by launching the time manager interface150and entering his/her employee ID106(FIG. 1) or selecting a time recording button (as shown). The employee ID106is verified, as provided in the context of the discussion ofFIG. 1, to determine if the employee105is eligible to punch in (i.e., use the central time manger140record his/her time)315. Punch in and punch out times, as used herein, are the same as check-in and check-out times. As explained previously, the central time manager140may access a database of exempt and/or non-exempt employees to determine punch in eligibility. If the employee105is determined to be ineligible to punch in320, an error message is displayed informing the employee105of his/her ineligibility.

As explained above, if the employee105is determined to be eligible to punch in (e.g., non-exempt employee105), network logon time and server time are compared325. For example, the time the communications device115first logged on to the communications network110and the time the employee105initiated the punch in procedure are compared to obtain a time difference. The obtained time difference is compared against a predetermined threshold330. If the time difference is below the threshold335, the network logon time335is used to record employee time. If the time difference does not fall below the threshold, the time as indicated by the communications device115is used340.

The central time manager140is then consulted to determine if the employee105has already punched in his/her time. This may be done by determining if a punch in for the employee105has been recently recorded. Some thresholds may be applied in determining what constitutes a recent punch in. For example, if a multiple punch ins are detected in less than a minute, it may be determined that a recent punch in exists. If it is determined that a recent punch in exists, an error message is issued355to notify the employee105that the most recent punch in time has not been recorded since there are other existing punch in times recorded by the central time manager140.

If a duplicate time is not detected, employee time is recorded in the database165of the central time manager140. In one example, a notification is issued360to the employee105to confirm that the employee punch in time has been recorded. In one example, the date and time recorded for the punch in is also displayed in the confirmation message.

In one example, the central time manager140determines if the employee105has a missing reported time. For example, the central time manager140informs the employee that he/she has failed to report the beginning or the end of a work period and request that the employee contact a supervisor to manually record the missing time.

In the event network logon time is used in place of actual punch in time (i.e., device time at the time of punch in), the employee105may be notified365that network logon time has been used in place of actual punch in time.

As noted previously, in examples in which an employee105utilizes a communications device115specifically designated for use by that employee105to punch in his/her time, the employee105may no longer need to enter his/her employee ID106. In such examples, the employee105is able to track his/her time by simply activating the employee ID field107. The central time manager140recognizes the device (e.g., based on its windows login ID that the employee105used to login to the network) as belonging to the employee105and correctly identifies and records employee time.

FIG. 4is a flow diagram that illustrates exemplary timekeeping procedures applicable when working with individually assigned communications devices.

As shown, at check-in time410, an employee105(FIG. 1) reports for work411. The employee105turns on the communications device115before he/she can check-in. Upon turning on the communications device115, the communications device115logs onto the communications network and the logon time are recorded412(e.g., 9:00 AM logon time). After a not-insubstantial amount of time (e.g., say about 5 minutes), the desktop of the communications device115completes its boot up process413. The desktop with all icons may, therefore, be ready for use at 9:05 AM414. The employee105subsequently launches the time manager interface415, resulting in the manager interface415appearing on the display screen102of the communications device115(416). Once the interface is launched416, the employee105activates an icon (e.g., the employee ID field106) (417) to be clicked for the punch-in time. The process of launching and entering data into the time manager interface415may take a minute or two. Since the employee105is using an individually assigned communications device115, he/she no longer needs to enter his/her employee ID106(FIG. 1). Next, the network login time (9:00) is compared to the actual punch in time (9:07)418a. If smaller than the preset threshold (e.g., 30 minutes), the network login time (9:00) is used as the punch in time418b. The employee105, after punching his/her time, commences work and the application auto exits after a preset period of time (e.g., 5 seconds)419.

After some time, for example at meal time420, the employee105punches out4120to leave for a period of time designated as lunch time. Again, the employee105launches the time manager interface422, the punch time icon to be clicked (e.g., employee ID field107(FIG. 1)) appears423and is activated by the employee105(block424). In one example, the employee ID field107may appear as a shortcut button signaling the employee105to record his/her time. For example, the employee ID field107may appear as a button having the text “record your time,” included thereon. The check-out time (12:14 PM) is recorded424. The employee105, after punching his/her time, leaves for lunch and the application auto exits after a predetermined amount of time (e.g., 5 seconds)426. In one example, the employee105locks the communications device115after punching out (e.g., such that it cannot be used by others429).

At the end of lunch time430, the employee105returns to work431, unlocks the communications device115(block432), launches the time manager interface434and the employee ID field106appears435, and is activated by the employee105(block436). The check-in time (12:45 PM) is recorded437in the database of the central manager. The employee105, after punching his/her time, resumes work, and the application auto exits after some time (e.g., 5 seconds)438.

After another period of time, at the end of the work day440, the employee105punches out441to leave for the day. Again, the employee105launches the time manager interface442, the employee filed106appears (block443), and is activated by the clicked punch time icon (e.g., employee ID106) (block444). The check-out time (6:03 PM) is recorded444and stored in the database of the central manager. The application auto exits after some time (e.g., 5 seconds)446. The employee105before leaving for the day logs off the communications device115447.

FIG. 5is a high-level flow diagram of procedures that may be used with some examples disclosed herein when working with individually assigned communications devices.

As stated previously, an employee105initiates a time punch by launching the time manager interface510. For example, the time manager interface is launched in response to the user selecting (e.g., clicking or touching) an icon for the time manager application software. In one example, the icon is included on a desktop of the communications device115(shown inFIG. 1). The communications device115is then locally authenticated520to ensure that it is authorized to launch the time manager interface. In one example, the procedures determine whether the communications device115includes the appropriate license for running the time manager interface. For example, a reference table that includes IP addresses of machines for an area is stored in a memory of the communications device. The IP address of the communications device is compared to the one stored in the memory of the communications device to identify the specific location of the communications device.

If the device is validated, the punch time icon (which may be the employee ID field107) is presented to the employee105(block530). The employee105may proceed to check-in by activating the punch time icon (e.g., employee ID field107) (block540). As noted before, this may be done by activating (e.g., by a mouse click or touching) a shortcut button that signals the employee105to record his/her time by selecting the shortcut button. Once the punch time icon (e.g., employee ID field107) is activated, network logon time is recorded550. In one example, all logon time received from the communications devices of an establishment is recorded in one common time zone. The common time zone may be selected based on the location where the central time manager140(FIG. 1) is located or based on the location where a central office of an establishment is located. In one example, the logon time is reported in the native time zone, where the communications device115is located.

The communications device115may further be authenticated555by the central time manager140. As noted previously, the communications device115may be authenticated in various manners, for example by verifying its IP address (or its GPS location). If the communications device115is not validated, the employee105is not allowed to check-in using the device563.

If the device is authenticated, the device information (e.g., IP address or GPS location) is used, by the central time manager140, to obtain the employee ID106. For example, the central time manager determines if the network IP address of the communication device115is authorized to provide punch time information. In one example, the employee ID106is obtained from a list including the employee IDs106that each correspond to the communications device115. In one example, this list of corresponding employee IDs106and communications devices115is maintained in the database165(FIG. 1) of the central time manager140. If a corresponding employee ID106for the communications device115does not exist, the procedures are terminated563. In one example, an error message appears on the communications device115display102(FIG. 1) indicating to the employee105that an employee ID106corresponding to the communications device115was not found.

If an employee ID106corresponding to the communications device115is found, the procedures determine whether the employee105is an exempt employee105(block565). As noted previously, the central time manager140may maintain a list of exempt, non-exempt, or all employees and their corresponding employment status and compare the employee105against one or more of these lists to determine if a match to a list is obtained. If the employee105is an exempt employee105, as explained previously, he/she is not authorized to record time563. In one example, an error message appears on the communications device display indicating to the employee105that, as an exempt employee105, he/she is not authorized to punch time.

If the employee105is deemed non-exempt, the time indicated by the communications device115, at the time the employee ID field106was activated, is recorded570. The difference between the time indicated by the device (block570) and the time indicated at network logon (block550) is then determined. The time difference is compared to a predetermined threshold580(e.g., 0-30 minutes). The time threshold may be set by the establishment or the specific work site101(FIG. 1) to which the communications device115belongs. If the time difference is within the threshold, the network logon time is recorded as the punch time for the employee105(block582). If the time difference is not within the threshold580(e.g., more than 30 minutes), the device time (recorded at block570) is recorded as the punch time for the employee105(block584).

The procedures then determine if any other recent employee punches (i.e., duplicate punches) have been recorded586. Some time thresholds may be imposed for determining a duplicate punch. For example, in one example, a time punch within the last 60 seconds may be deemed a duplicate punch. If the punch is deemed a duplicate punch, the employee105is notified, for example using an error message appearing on the communications device115display, that he/she is not permitted to punch time.

If the punch is not a duplicate punch, the procedures determine whether network logon time was recorded for the employee punch time590. If network logon time was reported, a message may appear on the screen of the communications device115indicating to the employee105that the network logon time has been used to record his/her punch time594. If the device time has been recorded for the employee punch time, a message may appear on the screen of the communications device115indicating to the employee105the time (i.e., punch time) that has been used to record his/her punch time594.

Although described in terms of visual messages, in one example, one or more of the messages (e.g., error or confirmation messages) announced to the employee105are announced using audio messages.

FIG. 6is a flow diagram of procedures for recording punch time. For example, a tablet may be used as a communications device115(shown inFIG. 1). As explained previously, the central time manager140(shown inFIG. 1) may initiate its time recording procedures in response to activation of an employee ID field107appearing on a display screen of a communications device115located at a work site (block610). The employee ID field107may be always available on a tablet communications device115. In one example, the activation of the employee ID field107is in response to the employee105entering his/her employee ID106or activating an employee ID field107on a personally assigned communications device115.

In response to activation of the employee ID field107, the central time manager140determines whether the work site101(FIG. 1) including the communications device115has been registered with the central time manager140(block620). For example, the security platform125determines whether the work site101allows its employees to record their time using the central time manager140. In one example, the security platform125maintains a list of authorized work sites101and verifies work site registration using the maintained list of work sites101. If the work site101is deemed unregistered, the employee105may be prompted to enter his/her work site ID for use in further verification625.

Once work site registration is verified, the central time manager140may determine whether the communications device115is an authorized device. This may be done by verifying the IP address or other identifying information of the device against a maintained list of authorized devices. If the device is not authorized, access is not granted635.

If the device is authorized, the time manager application software running on the communications device115may be further verified to ensure that it is not in need of software upgrade640. If an upgrade is needed, the user may be prompted to upgrade the time manager application software (block645). If an upgrade is not needed, punch time is recorded650for the person who has activated the employee ID filed107(block650).

In one example, the central time manager140further determines if the time manager application software is an authorized application (block660). For example, the central time manager140determines whether appropriate licenses for owning and/or executing the time manager application software are in place.

If the time manager application software fails to be verified, it is deemed unauthorized665. In one example, an error message is issued to the user announcing the failure to authenticate the time manager application software. If the time manager application software is verified, the central time manager140determines whether the employee105is an exempt employee105(block680). If the employee105is an exempt employee105, he/she does not qualify to record his/her time using the central time manager140(block665). In one example, an error message is issued to the employee105indicating his/her ineligibility for using the central time manager140.

If the employee105is a non-exempt employee105, his/her time is recorded and announced to the employee105in that employee's local time zone690.

FIG. 7is a high-level illustration of an exemplary timing procedure. For example, the procedure begin once the employee105launches the time manager interface410. Once the interface410is launched, a login screen appears720in which the user may be prompted to enter identifying information, such as login ID, password, or a pin. In response, a verification system call730is placed to the service engine145via the security platform125(shown inFIG. 1) to verify the information entered by the employee105. The central time manager140verifies the information, for example using information stored in a central time manager database165(FIG. 1). For example, information such as employee105first name, last name, and employee ID106are obtained from the database165and verified730. Once the employee is verified, a system call is placed to the central time manager140to obtain further information regarding the user, such as internal ID, first name, last name, full name, role, district, and/or work site ID740. A main menu screen750subsequently appears, allowing the user to select from various options, such as recording his/her time, viewing his/her schedule, or performing other managerial functions. The information obtained in the system call740may be used to determine if access to various features of the screen (block750) may be granted to a user.

If the “record your time option” is selected760, the user may record his/her time or view the time recorded for a some time period. If the “view your schedule option” is selected770, the user may be able to view his/her schedule for a selected time period (e.g., today's schedule). In one example, if a schedule for a selected time period is not available, the user is informed that the schedule is not available. If “view other schedules” are selected780, the user may be allowed to view, create, or modify other employee schedules or view, create, or modify a store schedule. The authorizations granted for management functions may be granted based on the information obtained from the system call740. Further, in one example, a person having managerial functions is able to obtain a listing of work sites, employees at each work site101, and/or their schedules.

FIGS. 8 and 9provide functional block diagram illustrations of general purpose computer hardware platforms, as might be used as a server122, communications device115, or other computers discussed in the examples above.FIG. 8illustrates a network or host computer platform, as may typically be used to implement a server.FIG. 9depicts a computer with user interface elements, as may be used to implement a personal computer or other type of work station or terminal device, although the computer ofFIG. 9may also act as a server if appropriately programmed. It is believed that programming and general operation of such computer equipment, and as a result the drawings, should be self-explanatory.

A server, for example, includes a data communication interface for packet data communication. The server also includes a central processing unit (CPU), in the form of one or more processors, for executing program instructions. The server platform typically includes an internal communication bus, program storage and data storage for various data files to be processed and/or communicated by the server, although the server often receives programming and data via network communications. The hardware elements, operating systems and programming languages of such servers are conventional in nature. Of course, the server functions may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.

For example, aspects of the methods of employee timekeeping, as outlined in the examples above, may be embodied in programming for a server and programming for a communications device (e.g., stationary or mobile). Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium.