disclosed embodiments provide computer - implemented methods and systems for managing a workforce . embodiments may be configured to reduce operational costs through managing unplanned and ad hoc jobs generated due to emergency , short service level agreement (“ sla ”) times , missed appointments , and the like . embodiments may implement geographic information system (“ gis ”) based location intelligence and location based services to optimize work force allocation and management . embodiments may also integrate with existing and allied systems , such as trouble ticket systems , field force tracking systems , and the like . fig1 shows a functional block diagram of a workforce management system (“ wfms ”) 101 . wfms 101 may include one or more workforce management computing device ( s ) 102 configured to effectively plan and dispatch field service technicians ( or other field operatives ). in addition to scheduling planned work tickets , workforce management computing device 102 may be configured to dispatch technicians substantially in real - time in response to ad hoc work tickets ( e . g ., in the case of an emergency ). workforce management computing device 102 may be operatively coupled to an integration computing device 105 for integrating with allied and existing systems 118 . integration computing device 105 may be a computing device configured to integrate existing and allied computing systems 118 with workforce management computing device 102 . for example , integration computing device 105 may include one or more data stores configured to convert data from allied and existing systems 118 into a format useful for workforce management computing device 102 . for example , integration computing device 105 may be configured to receive trouble tickets from a ticketing system , for example remedy ™, that may need to be assigned to a technician from an existing system 108 and convert the trouble tickets into a format required by workforce management computing device 102 . integration computing device 105 may , alternatively or in addition , perform services to assist in integration , for example caching services to speed data access for workforce management computing device 102 . integration computing device 105 may be configured to convert data from legacy systems to formats useful for the workforce management system 101 and then replace the functionality of the legacy systems . for example , integration computing device 105 may convert existing trouble tickets to a required format then , going forward , receive all new trouble tickets and , thus , replace the legacy system . while integration computing device 105 is described above as integrating workforce management computing device 102 with a trouble ticket system , integration computing device 105 may integrate with any allied and existing systems , for example inventory systems , human resource systems , reporting systems , scheduling systems , customer relation systems , and the like . alternatively , integration computing device 105 may be omitted , thereby allowing existing and allied systems 118 to be operatively coupled directly to workforce management computing device 102 . further , integration computing device 105 may be configured to provide various systems , such as trouble ticket systems , if no such systems previously existed or to simply replace such existing systems . system 100 also includes a technician interface computing device 103 operatively coupled to workforce management computing device 102 . technician interface computing device 103 may be operatively coupled to one or more technician computing device , for example over a network 119 such as the internet , a local area network (“ lan ”), a wide area network (“ wan ”), mobile service provider network ( e . g ., from verizon ™ wireless ), and the like . technician interface computing device 103 may be coupled to technician computing devices such as a laptop 114 , a tablet 112 ( e . g ., an ipad ™), a smartphone 111 ( e . g ., an iphone ™, a blackberry ™, or an android ™ based phone ). of course , these devices are exemplary only , and technician interface computing device 103 may also be coupled to custom - made computing devices , conventional cell phones ( i . e ., dumbphones ), personal computers , set top boxes , or any other communication device . technician computing devices may be useful for providing an interface for technicians to view and interact with work tickets assigned to the technician , for example accept a work ticket , decline a work ticket , update the status of a work ticket , and the like . exemplary user interfaces are discussed below with reference to fig3 a - b and 4 a - d . technician computing devices may also provide routing instructions relating to a work ticket ( e . g ., by showing directions on a map ), provide a technician with access to allied and existing systems ( e . g ., provide access to a payroll or time entry system ), and the like . in some embodiments , network 119 may be a private network . for example , for a wfms 101 configured to manage a workforce of security personnel it may be desirable to transmit classified data only over a secure , private network . wfms 101 also may include a vehicle tracking computing device 104 configured to track one or more vehicles 116 , such as work trucks driven by technicians . each vehicle 116 may be equipped with one or more sensors configured to determine the vehicle &# 39 ; s location and transmit the location to vehicle tracking computing device 104 . for example , vehicle 116 may be equipped with a global positioning system (“ gps ”) sensor configured to receive signals from plural gps satellites 117 to determine its position . vehicle 116 may be operatively coupled to vehicle tracking computing device 104 , for example over a radio frequency connection , such as over a mobile service provider network or other network connection . vehicle 116 may transmit various data to vehicle tracking computing device 104 , for example the location of the vehicle . of course , the vehicle may transmit any additional information , such as diagnostic information about the vehicle 116 ( e . g ., a check engine indication ), inventory information regarding inventory available in the vehicle 116 ( e . g ., inventory of replacement parts ), and the like . vehicle tracking computing device 104 may store vehicle tracking information for a determined period of time . of course , alternatively wfms 101 may be operatively coupled to an existing or allied vehicle tacking computing device via integration computing device 105 rather than , or in addition to , including vehicle tracking computing device 104 . wfms 101 may also include a mapping integration computing device 106 configured to integrate map information from one or more map services 114 with workforce management computing device 102 . mapping integration computing device 106 may be coupled to one or more map services 114 , such as google ™ maps services , esri ™ arcgis ™ online services , yahoo !™ maps services , microsoft ™ bing ™ maps services , and the like , for example over an application programming interface (“ api ”) via network 115 . mapping integration computing device 106 may include mapping information in a gis , for example using esri ™ arcsde ™. mapping integration computing device 106 may include a feature manipulation engine (“ fme ”), an integrated collection of spatial extract , transform , and load (“ etl ”) tools for spatial data transformation and translation . mapping integration computing device 106 may use an fme to convert spatial data from a spatial database engine (“ sde ”) format to keyhole mark - up language (“ kml ”), an extensible markup language (“ xml ”) schema for expressing geographic annotation and visualization within internet - based , two - dimensional maps and three - dimensional earth browsers , such as the services provided by google ™ maps . kml may be useful for inserting objects , such as overlays , images , icons , and the like , into a map . the objects may correspond to service requests , the current location of technicians , warehouses or other locations for technicians to resupply , and the like . of course , alternative embodiments may utilize alternative engines or systems other than fte . for example , an embodiment may integrate a map into a webpage or application via the mapping services like google ™ maps api , bing ™ maps api , and the like . such embodiments may overlay various data points and objects on the map corresponding to technician locations , truck locations , technician service areas , work locations , warehouses , offices , and the like . the various data points and objects may be selectable so that a user , such as a technician , may determine which should be displayed on a user interface . data points and objects may be displayed depending on a profile of each user . for example , a technician &# 39 ; s profile may provide that only work tickets assigned to that technician should be displayed on the technician &# 39 ; s user interface while a dispatcher &# 39 ; s profile may provide that all technicians &# 39 ; locations should be displayed on the dispatcher &# 39 ; s user interface . of course , while fig1 shows wfms 101 comprising several independent computing devices , alternative embodiments may include one or more computing devices implementing wfms 101 . such embodiments may execute modules corresponding to the various computing device shown in wfms 101 . fig2 shows an exemplary wfms architecture 200 having a wfms subsystem 210 operatively coupled to a maps api 230 . in operation , a user 205 may place a request for customer service with a customer care subsystem 215 . for example , a user 205 having problems with their internet service provider may call a service number to place a service request . a call center operator may then enter the service request into the customer care system 215 . alternatively , a user 205 may enter a service request directly into the customer care subsystem , for example through a web interface . of course , these methods are exemplary only , and customer care subsystem 215 may receive service requests from a user 205 in any fashion . upon receiving a service request , customer care subsystem 215 may classify the service request , convert the service request into a service ticket ( i . e ., a trouble ticket or a work ticket ) in an appropriate format for wfms subsystem 210 , and forward the service ticket to wfms subsystem 210 . once a service ticket is received by wfms subsystem 210 , the service ticket may be reclassified according to the service area , the ticket type , and the priority and then allocated to one or more field operatives . a local wfms database 212 may store all service tickets . the service tickets may , for example , be stored in a job assignment table with a ticket status field initially being updated to “ open ” to indicate that the ticket is awaiting allocation to a technician . a geocoder 213 within wfms subsystem 210 may identify the service area corresponding to the service ticket . geocoder 213 may then send a request to a maps api 230 , for example google ™ maps api or arcgis ™ online services , to request information regarding technicians in or near the service area . a mapping engine 231 may have access to local spatial data ( e . g ., showing service areas , real time technician locations from a technician tracking system , and the like ) from a local spatial database 225 mapped to or overlaid on the mapping service &# 39 ; s spatial data from a spatial data database 232 . mapping engine 231 may return through maps api 230 the identity , location , and additional information regarding technicians in or near the service area . a scheduler 214 within wfms subsystem 210 may receive the information from maps api 230 and filter the information to determine which technicians in the service area have the required skills and / or supplies to handle the ticket . next , with the technicians filtered to identify the technicians in or near the service area and having the skill set and / or supplies to respond to the type of service request , the wfms subsystem 210 may check the priority of the ticket . if a service ticket has the highest priority , then an available technician in the service area having the requisite skill set may be assigned to the service ticket by subsystem 210 . if no available technicians in or near the service area have the requisite qualifications , then the technician in the service area with the requisite qualifications assigned to a job that is most likely to finish first may be assigned to the service ticket by subsystem 210 . further , if no technicians in the service area have the requisite qualifications , the nearest available technician outside the service area having the skill set , or the nearest available technician outside the service area having the skill set and most likely to complete their current task shortly may be assigned to the service ticket by subsystem 210 . through scheduler 214 , lower priority service tickets may be assigned dynamically to technicians in similar fashion to high priority service tickets . however , if higher priority service tickets exist in a service area , lower priority service tickets may be queued behind higher priority service tickets . additionally , if a technician is assigned to a lower priority service ticket and has not yet arrived at the service location to do the work , the technician may be reassigned to the higher priority service ticket . in some instances , a ticket may have such high priority that one or more technicians may be reassigned even while they are working on a service ticket . for example , wfms subsystem 210 may receive an emergency ticket and immediately ( dynamically ) reassign technicians to the emergency ticket . thus , the technician assignment can be in either of two modes . for example , at the start of each work day , scheduler 214 may run to automatically assign tickets that are open ( i . e ., unassigned ). once the tickets start flowing in for the day ( i . e ., being received ), dynamic scheduling may kick in and reassign technicians to tickets different from the ones already assigned . this dynamic scheduling may be based on current location of technicians and distance from the location of higher priority in addition to various parameters considered during the original scheduling . service tickets may have many different priority levels for example priority levels one to ten , with one being the highest priority and ten being the lowest . wfms subsystem 210 may be configured to increase the priority of tickets the longer they remain unassigned . priority level increases may be tied , for example , to sla times or to the estimated time of arrival (“ eta ”) of a technician that was initially given a user 205 when they placed a service request . in other words , priority may be increased after a threshold is met , for example an sla threshold or an eta threshold . as scheduler 214 in wfms subsystem 210 assigns technicians to service tickets and as the technicians service the service tickets , wfms subsystem 210 may update records in the local wfms database 212 to reflect the same . for example , an assignment table with a ticket status field initially may be updated to “ assigned ”, “ in progress ”, “ closed ”, and the like to indicate the status of the ticket . additionally , a service ticket table in wfms database 212 may be updated over time , for example to adjust the priority of a ticket as time passes , to remove , or otherwise flag , completed tickets , and the like . wfms application server 211 may provide a user interface (“ ui ”) to wfms subsystem 211 . for example , wfms application server 211 may provide a ui 300 as shown in fig3 a . ui 300 may include a view details tab 301 displaying an employee table 310 and a ticket table 320 . employee table 310 may show each technician , their location , and their allocation status . employee table 310 may provide ui controls to allow a user to filter the data shown , for example a location filter 311 may be used by a user to display technicians only in or near a certain service area and an allocated filter 312 may be used by a user to display only technicians having certain allocated attributes ( e . g ., “ available ”, “ allocated ”, etc .). ticket table 320 may show each service ticket , the ticket type , the location , and the priority of the ticket . ticket table 320 may also include ui controls to allow a user to filter the data shown , for example a location filter 322 may be used by a user to display tickets only in a certain service area and a priority filter 323 may be used by a user to display tickets having a certain priority . of course , while the ui controls are shown as drop - down menus , any ui controls may be used . also , additional or different ui controls may be implemented to allow a user to filter data in various other ways . ui 300 may also include an assign employee control 324 . ui 300 may be configured to allow a user to select ( e . g ., highlight or click on ) a technician in employee table 310 , select a ticket in ticket table 320 , and select assign employee control 324 to assign the technician to the ticket . alternatively , when a user selects assign employee control 324 , an additional user interface control may allow a user to select a technician to assign to a ticket . ui 300 may also include a map 330 . map 330 may be a map retrieved from maps api 320 showing real time technician and service ticket indicators overlaid on an up - to - date map . additionally , indicators on map 330 ( not shown ) may be displayed or hidden depending on a user &# 39 ; s selection of various ui controls , for example location filter 311 , allocated filter 312 , location filter 322 , and priority filter 323 . map 330 may additionally be overlaid with additional data from local spatial database 225 , for example various service areas , locations of warehouses for supplies , and the like . map 330 may additionally include various user controls 331 to allow a user to navigate ( e . g ., pan in various directions , zoom in or out , toggle on and off information such as traffic , satellite view , and the like , view a google ™ streetview , etc .). fig3 b shows an exemplary add details tab 302 of ui 300 including an add employee area 340 and an add ticket area 350 . add details tab 302 may be useful , for example , for a user , such as a call center employee , to enter new work tickets and new technicians into the wfms subsystem 210 . add employee area 340 may include multiple fields 341 for a user to input data about a technician and a ui control 342 for the user to enter the data about the technician into the wfms subsystem 210 . add ticket area 350 may likewise include multiple fields 351 for use to input data about a work ticket and a ui control 352 for the user to enter the data about the work ticket into the wfms subsystem 210 . once a new technician or work ticket is entered into the wfms subsystem 210 , an object may appear overlaid on map 330 indicating the technician or work ticket . of course , different or additional data may be entered for each technician and / or work ticket . wfms subsystem 210 may additionally provide uis corresponding to other features . for example , fig4 a shows an exemplary vehicle tracking ui 410 . ui 410 may include a track vehicles control area 411 configured to provide a user with controls to indicate one or more vehicles to track , toggle on and off vehicle tracking , clear the map of vehicle tracking , and the like . for example , a user may select to track a vehicle 412 . as vehicle 412 moves , a gps sensor in vehicle 412 may track the location of vehicle 412 and a system within vehicle 412 may be configured to substantially continuously or periodically ( e . g ., every minute ) transmit the vehicle &# 39 ; s location to wfms 200 of fig2 . in this fashion , wfms 200 may update the data to overlay a map provided by a map service provider 230 to display up - to - date location information of vehicle 412 . ui 410 may additionally display a vehicle trail 415 showing turn by turn path vehicle 412 travels . for example , ui 410 shows vehicle trail 415 showing the route vehicle 412 traveled after leaving a work ticket location 413 . ui 410 may be useful for ensuring that a technician travels directly from one work location 413 to another work location 414 , thereby saving both time and gas and optimizing the response of the workforce . vehicle trail 415 in ui 410 shows that vehicle 412 is traveling in the opposite direction of a work location 414 , thus a dispatcher may contact the technician to inform them of the error . fig4 b shows an exemplary wfms statistics ui 420 . wfms statistics ui 420 may include a statistics charts control area 421 configured to provide a user with controls 422 to select one or more areas 423 of the map and statistics 424 related to the areas 423 of the map . for example , a user may select a tool 422 that allows the user to click and drag a cursor to define a rectangular area 423 on the map . statistics 424 , such as a pie chart , may show statistics related to the selected area 432 . the exemplary statistics 424 pie chart shown in fig4 b shows that the vast majority of the work orders in the selected area 432 are low priority , a smaller amount are medium priority , and a small percent are high priority . statistics charts control area 421 may additional display text 425 or other indicators with statistics , such as showing that 2 . 7 % of the work orders are high priority . of course , ui 420 may show real time statistics in alternative formats , such as by displaying other or additional graphs or charts . by enabling a user to quickly see real time statistics , the wfms may be substantially continuously adjusted to maintain a sufficient workforce where demand exists while limiting a workforce when the need for a large workforce does not exist . fig4 c shows an exemplary technician service area ui 430 . technician service area ui 430 may include technician service area control 431 configured to allow a user to select the technician whose service area they would like to see overlaid on the map as well as various other options related to display of the technician &# 39 ; s service area . for example , a user may select a technician 435 and indicate that they would like to see a first service area 432 , a second service area 433 , and a third service area 434 for technician 435 . in the technician service area 431 a user may indicate how they would like the service areas determined , for example the first service area 432 may encompass locations the technician can drive to within 3 minutes , the second service area 433 may encompass locations the technician can drive to within 10 minutes , and the third service area may encompass locations the technician can drive to within 15 minutes . the location of the technician 435 may be retrieved in real time from a vehicle tracking subsystem in or coupled to wfms 200 . a map api 230 may then be queried for locations that the technician 435 would be able to travel to within the time constraints set for the first service area 432 , the second service area 433 , and the third service area 434 . by maps api 230 providing ranges based on driving time rather than merely based on physical distance , wfms 200 may optimize scheduling of technicians . for example , as shown in fig4 c , service areas may follow highways or roads , therefore allowing a technician proximate a major highway reach a work order location faster than another technician who may be physically closer to the work order location . fig4 d shows an exemplary landscape ui 440 showing a google ™ streetview of a location . for example , a user of any of the uis shown in fig4 a , 4 b , and 4 c may select a user control to see landscape ui 440 of a particular location on the map . this may be useful , for example , for a technician traveling to a location to confirm that the location he arrives at corresponds to the work location . this may also be useful for a technician en route to determine if they are on the right path . of course , additional uis may be displayed . for example , a directions ui may be useful for providing directions to a work location to a technician . for example , wfms 200 may request directions from a technician &# 39 ; s real - time location to a work order location by transmitting a request for directions to a maps api 230 . maps api 230 may then return a map including the directions overlaid thereon , thereby providing a technician with turn - by - turn directions to a work order location . independent of the particular method used to transmit directions to a technician , wfms system 200 may be useful for optimizing a technician &# 39 ; s response route , thereby both decreasing the technician &# 39 ; s response time as well as potentially decreasing the technician &# 39 ; s fuel expenses . thus , by providing a map based system a workforce of technicians may be optimized to provide technicians with requisite skill sets in various work areas to respond to user demand . these embodiments may be implemented with software , for example modules executed on computing devices such as computing device 510 of fig5 . embodiments may , for example , execute modules to implement the systems and methods disclosed herein . of course , a single step may be performed by more than one module , a single module may perform more than one step , or any other logical division of various steps disclosed herein may be used to implement the processes as software executed on a computing device . computing device 510 has one or more processing device 511 designed to process instructions , for example computer readable instructions ( i . e ., code ) stored on a storage device 513 . storage device 513 may be any type of storage device ( e . g ., an optical storage device , a magnetic storage device , a solid state storage device , etc . ), for example a non - transitory storage device . alternatively , instructions may be stored in remote storage devices , for example storage devices accessed over a network or the internet . computing device 510 additionally has memory 512 , an input controller 516 , and an output controller 515 . a bus 514 operatively couples components of computing device 510 , including processor 511 , memory 512 , storage device 513 , input controller 516 , output controller 515 , and any other devices ( e . g ., network controllers , sound controllers , etc .). output controller 515 may be operatively coupled ( e . g ., via a wired or wireless connection ) to a display device 520 ( e . g ., a monitor , television , mobile device screen , touch - display , etc .) in such a fashion that output controller 515 can transform the display on display device 520 ( e . g ., in response to modules executed ). input controller 516 may be operatively coupled ( e . g ., via a wired or wireless connection ) to input device 530 ( e . g ., mouse , keyboard , touch - pad , scroll - ball , touch - display , etc .) in such a fashion that input can be received from a user . of course , fig5 illustrates computing device 510 , display device 520 , and input device 530 as separate devices for ease of identification only . computing device 510 , display device 520 , and input device 530 may be separate devices ( e . g ., a personal computer connected by wires to a monitor and mouse ), may be integrated in a single device ( e . g ., a mobile device with a touch - display , such as a smartphone or a tablet ), or any combination of devices ( e . g ., a computing device operatively coupled to a touch - screen display device , a plurality of computing devices attached to a single display device and input device , etc .). computing device 510 may be one or more servers , for example a farm of networked servers , a clustered server environment , or a cloud network of computing devices . thus , embodiments disclosed herein may be useful for dynamically dispatching a workforce to provide optimal services while minimizing cost . by integrating real - time workforce location information with consistently up - to - date maps , workforce management systems disclosed herein may fluidly and substantially continuously reroute members of the workforce as needs change . by integrating with existing services , such as google ™ maps or one or more other mapping services , cost in creating and maintaining such a workforce management system may be substantially reduced while reliability of such a system ( e . g ., vintage of map information ) improved . workforce management systems disclosed herein may additionally be scalable . for example , a central workforce management system may manage separate work forces ( e . g ., workforces for non - related companies and / or relating to non - related services ). for example , both work tickets and technicians may be identified as corresponding to a certain business to ensure the correct technicians are assigned to the correct work tickets . further , such combined systems may be optimized for various business rules . for example , such services may include referral services or substitute services so that if the company that received a work ticket does not have the bandwidth or expertise to respond to the work ticket , they may refer the work ticket to a company who can . workforce management systems disclosed herein may be hosted by an entity in similar fashion to conventional workforce management systems , for example by having one or more computing device hosting the workforce management system located at an entity &# 39 ; s office . alternatively , workforce management systems disclosed herein may be implemented according to a hosted services model . for example , a workforce management system may be offered as a service ( i . e ., as software as a service (“ saas ”)). this may allow a company to simply provide its technician , vehicle tracking , and similar data to the workforce management system over an internet connection and the workforce management system can be completely hosted and provided by a third party entity . in this fashion , even companies with meager means may be able to afford sophist acted workforce management systems . embodiments have been disclosed herein . however , various modifications can be made without departing from the scope of the embodiments as defined by the appended claims and legal equivalents .