Patent Publication Number: US-8533125-B2

Title: System and method for analyzing transportation data

Description:
This application is a United States National Phase application of PCT Application No. PCT/US2008/055268 filed Feb. 28, 2008. 
     BACKGROUND OF THE INVENTION 
     This invention relates to systems and methods for analyzing data, and more particularly to a system and method for analyzing transportation data. 
     Many businesses ship goods from an initial location, such as a supplier, to a secondary location, such as a retail location, or to an intermediate location, such as a distribution center. Goods may also arrive and depart from multiple retail locations before reaching a destination retail location. The term “supply chain” usually refers to this transportation of goods from supplier to customer. Transportation data may be recorded at each location. Transportation data may include a time and date of arrival and departure of a particular set of goods. In some cases, radio frequency identification (“RFID”) tags may be placed on a group of goods to assist in recording transportation data. 
     In addition to tracking a time of arrival and departure of goods, additional transportation data may be recorded, such as environment data. In the example of perishable food items, a temperature of the goods may be recorded to ensure that perishable goods remain within a required temperature range. The term “cold chain” is used to refer to a temperature-controlled supply chain. 
     Analyzing a supply chain can be complex and computationally demanding. In particular, when a company uses multiple couriers to transport a high volume of goods having different shipping requirements to multiple secondary locations and multiple intermediate locations, the complexity of analyzing supply chain data can increase significantly. 
     SUMMARY OF THE INVENTION 
     A method of analyzing transportation data includes receiving a transportation data set including transportation data corresponding to at least one item. A portion of the transportation data is converted into an event string, which includes a plurality of event symbols corresponding to a plurality of transportation events. The event string is selectively filtered according to a query to produce a filtered event string, and transportation data associated with the filtered event string may be reported. 
     A system for analyzing transportation data includes a transportation data set and a computer including a microprocessor operable to convert a portion of transportation data set corresponding to the at least one transportation item into an event string including a plurality of event symbols, to selectively filter the event string in response to a query to produce a filtered event string, and to report transportation data corresponding to the filtered event string. 
     These and other features of the present invention can be best understood from the following specification and drawings, the following of which is a brief description. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  schematically illustrates an example transportation item. 
         FIG. 2  schematically illustrates an example supply chain. 
         FIG. 3  schematically illustrates a subset of the supply chain of  FIG. 2 . 
         FIG. 4  schematically illustrates a method of analyzing transportation data. 
         FIG. 5  illustrates example transportation data. 
         FIG. 6  schematically illustrates a method of converting transportation data into an event string. 
         FIG. 7  illustrates a plurality of example locations. 
         FIG. 8  illustrates a plurality of example events and event symbols. 
         FIG. 9   a  illustrates an example event string. 
         FIG. 9   b  illustrates the event string of  FIG. 9   a  after application of route handling. 
         FIG. 10   a  illustrates an example event string. 
         FIG. 10   b  illustrates the event string of  FIG. 10   a  after application of route handling. 
         FIG. 11  illustrates a plurality of example segment patterns. 
         FIG. 12  illustrates a first example report. 
         FIG. 13  illustrates a second example report. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       FIG. 1  schematically illustrates an example transportation item  20 . A data recordation unit  22  is coupled to the transportation item  20 . The data recordation unit  22  includes a unique identifier  22   a , and may optionally include a monitor  22   b  to record environment data, such as temperature data, at a predefined set of intervals. In one example, the unique identifier  22   a  corresponds to an RFID tag having a global location number. It is understood that the data recordation unit  22  may be associated with, but not coupled to, the transportation item  20 , and that the data recordation unit  22  does not necessarily need its own unique identifier. For example, the transportation item  20  can include a unique identifier. 
       FIG. 2  schematically illustrates an example supply chain  30  for goods, such as the transportation item  20 . The supply chain  30  includes a supplier  32 , a distribution center  34 , and a plurality of retail locations  36   a - f . Multiple shippers  38   a - e  may be used to transport goods to the various locations  32 ,  34 ,  36  in the supply chain  30 . 
       FIG. 3  schematically illustrates a supply chain  30   a  which is a subset of the supply chain  30  of  FIG. 2 . As shown in  FIG. 3 , shipper  38   b  transports goods from supplier  32  to distribution center  34 , and shipper  38   c  transports the goods from distribution center  34  to retail locations  36   a - b . For goods delivered to retail location  36   b , retail location  36   a  may be considered an intermediate location. 
       FIG. 4  schematically illustrates a non-limiting embodiment of a method  100  of analyzing transportation data associated with a supply chain, such as the supply chain  30   a . However, it is understood that the method  100  is not limited to supply chain analysis, and could be applied to other areas. Transportation data  40  (see  FIG. 5 ) associated with the supply chain  30   a  is received (step  102 ). It is understood that transportation data  40  associated with many items, not just a single item, may be received in step  102 . The transportation data  40  includes a date  42  and a time  44  for each of a plurality of transportation events  46 . However, it is understood that the transportation data  40  may include additional information, such as a temperature associated with a transportation event  46 . 
     The transportation data  40  is then converted into an event string (step  104 ; see  FIG. 6 ). A list of locations  48  (see  FIG. 7 ) is obtained (step  120 ), and a location type  51  is assigned to each location (step  122 ). 
     An event symbol  50  is assigned to a plurality of possible events  52  (step  124 ; see  FIG. 8 ), which includes assigning an event symbol  50  to transportation events  52   a - 52   f  occurring at each location type  51  (step  124 ), and may also include assigning an event symbol  50  to events such as a monitor start  52   g , monitor stop  52   h , condition start  52   i , or condition stop  52   j . The monitor start  52   g  and monitor stop  52   h  correspond to a start and stop of the monitor  22   b . The condition start  52   i  and condition stop  52   j  may be inserted into received transportation data  40  to indicate a beginning and end of valid data. Because a monitor  22   b  may be started before being attached to the transportation item  20  and may be stopped after being removed from the transportation item  20 , there may be recorded environment data that is erroneous. The condition start  52   i  and condition stop  52   j  may be used to prevent erroneous data from affecting analysis of transportation data  40  and environment data. 
     An event symbol  50  is assigned to each event  46  in the transportation data  40  (step  126 ). As shown in  FIG. 8 , each event symbol  50  may be a single unique alphanumeric character. The event symbols  50  are placed in order of occurrence to form an event string  56  (step  128 ; see  FIG. 9   a  or  9   b ). In one example, each event symbol  50  in the event string  56  is a data structure having a plurality of attributes to store transportation data associated with the event symbol, such as date  42 , time  44 , location  48 , and temperature. 
     Returning to  FIG. 4 , route handling (step  106 ) may be applied to the event string  56  to distinguish intermediate locations from final locations. This may include assigning a default type setting, such as upper-case, to transportation events  46  corresponding to an arrival or departure, and assigning a second type setting, such as lower-case, to intermediate arrivals and departures within a location type. Instead of using differing case settings, other steps may be taken to distinguish intermediate locations, such as assigning alternate event symbols to intermediate locations. 
     For example, the transportation data  40  indicates an “Arrive Store #1” event (“E”), a “Depart Store #1” event (“F”), and an “Arrive Store #2” event (“E”), indicating that retail location  36   a  was an intermediate location on the way to retail location  36   b . Therefore, the “Arrive Store #1” and “Depart Store #1” events may be assigned a lower-case type setting in a route-handled event string  56   a  (see  FIGS. 9   b ,  10   b ), or may be assigned alternate event symbols as described above. 
     Because transportation data may be compiled in an automated fashion, such as using RFID, it is possible for errors, such as duplication of real events, to arise in transportation data collection. For example, a single transportation event may be recorded multiple times to form a duplicative portion  58  of an event string  56   c  (see  FIG. 10   a ). Route handling (step  106 ) may be performed to clearly identify the duplicative portion  58 . 
     A segment pattern  62  corresponding to a query  60  may then be applied (step  110 ) to obtain filtered data  64 .  FIG. 11  illustrates six example queries  60  and accompanying segment patterns  62 . In the example of  FIG. 11 , the segment patterns  62  correspond to the regular expression language format. However, it is understood that regular expression language format would not have to be used, and that one skilled in the art who practices this invention would have the ability to use another format, or to develop their own format for defining a segment pattern  62 . 
     Query  60   a  (wildcard search) looks for an entire transportation trip by searching for a longest substring within the event string  56   d  that begins with a monitor start  52   g  (“0”) and ends with a monitor stop  52   h  (“1”). 
     Query  60   b  (wildcard search) looks for a conditioned trip by searching the longest substring within the event string  56   d  that begins with a condition start  52   i  (“X”) and ends with a condition stop  52   j  (“Y”). 
     Query  60   c  (greedy search) looks for transportation events corresponding to a distribution center  34  by searching for the longest substring starting with a distribution center arrival  52   c  (“C”) and ending with a distribution center departure  52   d  (“D”) and including zero or more distribution center arrivals  52   c  and distribution center departures  52   d  in between. 
     Query  60   d  (look ahead search) searches for the longest substring starting with a retail arrival  52   e  (“E”) and ending with a condition stop  52   j  (“Y”), with a retail departure  52   f  (“F”) in the event string some time after the condition stop  52   j , but not included in the filtered data  64 . 
     Query  60   e  (conditional search) searches for a retail segment by searching for a longest substring starting with a retail arrival  52   e  (“E”) and ending with a retail departure  52   f  (“F”). 
     Query  60   f  (conditional search) searches for a first part  66  or a second part  68 . The “|” character represents a logic OR operator. The first part  66  is identical to the query  60   d . The second part  68  searches for a retail arrival  52   e  (“E”) ending with a retail departure  52   f  (“F”) with any character except for a condition stop  52   j  (“Y”) between the retail arrival  52   e  and the retail departure  52   f , and with the retail arrival  52   e  (“E”) not being preceded by a condition stop  52   j  (“Y”). 
     As described above, it is possible for events to be recorded multiple times when using RFID technology, which could cause the formation of the duplicative portion  58  of an event string  56   c  (see  FIGS. 10   a ,  10   b ). An appropriate segment pattern  62  may be applied to an event string  56   c  to accommodate the formation of the duplicative portion  58  as part of “error handling.” For example, query  60   c  could be considered an error handling query because it looks for the longest substring starting with a distribution center arrival  52   c  (“C”) and ending with a distribution center departure  52   d  (“D”), thus providing the ability to accommodate a duplicative portion in between those two events. Queries  60   e  and  60   f  could also be considered error handling queries. 
     One way of performing the queries  60   a - 60   f  is to generate an object list and a corresponding event string (step  104 ) for every shipment of transportation items  20 . If the queries  60   a - 60   f  are in regular expression format as described above, a regular expression engine may be used to match each pattern against each shipment event string  56 . Each event string  56  has a start index (zero for the first character of the event string, one for a second character of the event string, etc.) and an end index. For example, for the event string  56   d , which includes thirty event symbols, the start index would be zero and the end index would be twenty-nine. Thus, if an event symbol  50  is the Nth character in an event string  56 , the index of the event symbol would be N−1. Using the example of the query  60   f , the filtered event string is “EFEY”, which comes from the event string  56   d , has a start index of twenty-two, and has an end index of twenty-five. Event times, as well as other event attributes, could therefore be retrieved from the twenty-second and twenty-fifth event objects. 
     It may be desirable to calculate a segment duration. Using Query  60   f  as an example, if “Event[ ]” is the name of the event object list described above, then to calculate the duration of the “EFEY” result (query  60   f ), this calculation for query would be “Event[25].time-Event[22].time”. A more complex measure could be used to filter a temperature log to perform calculations such as mean temperature, minimum temperature, maximum temperature, etc. If further information is known, such as temperature specifications for shipped products, then additional product specific segment calculations could be performed, such as time above product maximum, time out of product range, etc. 
     The transportation data  40  is filtered (step  112 ) according to a segment pattern  62  to produce a filtered transportation data  64 . The filtered transportation data  64  may be reported (step  114 ), and environment data corresponding to filtered data  64  may also be reported (step  116 ).  FIG. 12  illustrates a first example report  70  illustrating temperature  72  as a function of date/time  74  as compared to an upper acceptable temperature limit  80  and a lower acceptable temperature limit  82  for a transportation item.  FIG. 13  illustrates a second example report  78  illustrating how temperature  72  varies by segment pattern  62 . 
     Although a preferred embodiment of this invention has been disclosed, a worker of ordinary skill in this art would recognize that certain modifications would come within the scope of this invention. For that reason, the following claims should be studied to determine the true scope and content of this invention.