System and method for evaluating whether one or more actions were carried out during an event
Patent Information
- Application Number
- PCT/EP2024/079974
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-23
- Filing Date
- 2024-10-23
- Publication Date
- 2025-06-12
AI Technical Summary
There is a challenge in evaluating the impact of individuals' actions on fuel usage during events like aircraft flights or vessel sea days, due to the lack of integrated data collection and processing systems that can correlate actions with fuel consumption.
A computer-implemented method that processes disparate event-related data by receiving a first file prior to an event and a second file after the event, extracting and updating data to generate a complete pre-processed file, and determining whether specific actions, such as reducing fuel usage, were carried out during the event.
This method allows for efficient evaluation of whether actions reducing fuel usage were taken during events, reducing storage requirements and enabling timely feedback to individuals, which can encourage further fuel-saving actions.
Smart Images

Figure EP2024079974_12062025_PF_FP_ABST
Abstract
Description
[0001] TITLE: SYSTEM AND METHOD FOR EVALUATING WHETHER ONE OR MORE ACTIONS WERE CARRIED OUT DURING AN EVENT
[0002] Description
[0003] Field of the invention
[0004] The present disclosure relates to a system and computer-implemented method for evaluating whether one or more actions were carried out during an event. In particular, the present disclosure relates to the evaluation of whether individuals have carried out one or more actions that reduce fuel usage during an event such as an aircraft flight or vessel sea day.
[0005] Background of the invention
[0006] Within many industries, the actions of individuals can have significant effects on expenditure. For example, within the airline industry, the actions of a pilot of an aircraft during a flight have a direct impact on that aircraft’s fuel usage on that flight, and consequently on the cost of fuel usage for that flight. In this context, the cost of fuel usage includes the monetary cost of the fuel used on the flight, but also the environmental cost of the fuel used on the flight.
[0007] There are, however, significant challenges to evaluating the impact of individuals’ actions on expenditure. In particular, industries do not implement the data collection and processing required to evaluate the actions of individuals within those industries. Continuing the above example of a pilot of an aircraft, there are challenges in evaluating the available data in order to establish the impact of a pilot’s actions on fuel used on a particular flight. This is because no single data source exists to correlate the pilot’s actions with fuel usage. Instead, the available data sources typically operate in silos and are not linked to other data sources relating to the flight. For example, a flight schedule, which indicates an origin, destination, time and airline for a particular flight, has no link to flight data recorded by a flight data recorder during that flight. In addition, the data is available from the data sources at different times. For example, a flight plan and flight schedule may both be available before a flight. However, in order to evaluate whether a pilot has carried out one or more actions in order to reduce fuel usage, it is necessary to analyse the flight data recorded by the flight data recorder. This data is typically only available after the flight has finished. Therefore, there are challenges involved in processing data relating to an event in order to establish whether an individual carried out one or more actions during that event.
[0008] Accordingly, there exists a need for a system and method capable of processing disparate event-related data in order to evaluate whether an individual carried out one or more actions during that event.
[0009] Summary of the invention
[0010] The present invention provides, according to a first aspect, a computer-implemented method, comprising: receiving a first file of a first file type, wherein the first file includes an identifier of an event and wherein the first file is available prior to the event; storing data extracted from the first file as a pre-processed file in a first data store; receiving a second file of a second file type, wherein the second file includes data collected during the event and wherein the second file is not available until after the event; updating the pre-processed file in the first data store using data extracted from the second file to generate a complete pre-processed file; and determining, from the complete pre-processed file, whether one or more actions were carried out during the event.
[0011] The method of the first aspect allows a determination of whether one or more actions were carried out during the event to be made. This determination is possible because the disparate event-related data (i.e. the data from the first file available prior to the event, and the data from the second file not available until after the event) is extracted to the complete pre-processed file. Processing the disparate event data by storing data extracted from the first file as a pre-processed file is more efficient than waiting for the first and second files to be available, because excess data from the first file does not need to be stored while waiting for the second file to become available (which may not be until one or more days after the first file is received), thereby reducing storage requirements while waiting for the second file to become available.
[0012] Each of the one or more actions may be associated with reducing fuel usage during the event. Accordingly, the method allows for a determination of whether fuel saving actions were carried out during the event.
[0013] The first file may be available from a first data source. The second file may be available from a second data source different to the first data source. The event may be a flight. The first file may be a flight plan file or a flight schedule file. The second file may be a flight data file storing data collected during a flight by a flight data recorder on board an aircraft.
[0014] The method may further comprise discarding data not extracted from the first file. This reduces storage requirements while waiting for the second file to become available.
[0015] The method may further comprise storing the complete pre-processed file in a second data store. Storage of the complete pre-processed file in the second data store allows the pre-processed file in the first data store and the second file to be discarded, reducing storage requirements. Determining, from the complete pre-processed file, whether the one or more actions were carried out during the event may comprise querying the complete pre-processed file in the second data store.
[0016] The data extracted from the first file may comprise data identifying an individual associated with the event. Where the event is a flight, the individual associated with the event may be a pilot.
[0017] The second file may comprise flight data collected by a flight data recorder on board an aircraft. The one or more actions may comprise one or more of: continuous descent of the aircraft; reduced engine usage during outbound taxiing; reduced engine usage during inbound taxiing; optimal discretionary fuel loading; idle thrust state of engines during landing; usage of a projected amount of fuel or less during a flight identified by the flight data; delaying deployment of a specific flaps setting until after a threshold distance from a runway; continuous climb of the aircraft; and switching from an auxiliary power unit of the aircraft to ground power at an airport. Continuous descent may be determined as being carried out if the time spent in level flight during descent is less than 30%. Reduced engine taxi in may be determined as being carried out if one engine burns less than 80% of the fuel burned by the other engine during taxi in. Reduced engine taxi out may be determined as being carried out if one engine burns less than 80% of the fuel burned by the other engine during taxi out. Optimal discretionary fuel load may be determined as being carried out if only the fuel required to account for changes in zero fuel weight (within a predetermined buffer) is loaded. Idle reverse thrust may be determined as being carried out if engines are left in an idle (low) thrust state during landing. Efficient flight may be determined as being carried out if the projected amount of fuel or less is used for a particular flight. Low drag landing may be determined as being carried out if deployment of a specific flaps setting is delayed until after a threshold distance from the runway. Continuous climb may be determined as being carried out if the aircraft continuously climbs to the optimal altitude. Reduced auxiliary power usage may be determined if the pilot switches from the aircraft’s Auxiliary Power Unit to ground power at the airport.
[0018] Alternatively, the second file may comprise data collected by sensors on board a vessel. The data collected by the sensors may comprise data identifying power generated by one or more generators on board the vessel and data identifying a power demand of one or more electrical systems on board the vessel. The one or more actions may comprise an amount of time taken to reduce an imbalance between the power generated by the one or more generators and the power demand of the one or more electrical systems. The reduction in imbalance may be determined as being carried out if the amount of time taken to reduce the imbalance is less than a threshold time period. The event may be a sea day. Where the event is a sea day, the individual associated with the event may be an engineer.
[0019] Storing data extracted from the first file as the pre-processed file in the first data store may comprise: determining, from data stored in the first file, a first unique identifier associated with the first file; querying the first data store using the first unique identifier to determine whether the first data store includes a pre-processed file identified using the first unique identifier; and responsive to determining that the first data store includes the pre-processed file, creating an updated pre- processed file by updating the pre-processed file in the first data store using data from the first file, wherein the pre-processed file includes data extracted from a third file of a third file type; wherein updating the pre-processed file in the first data store using data extracted from the second file to generate the complete pre-processed file comprises updating the updated pre- processed file in the first data store. Using the first unique identifier allows data from the first file (e.g. flight plan or flight schedule file) to be joined with data from the third file (e.g. flight schedule or flight plan file). Updating the pre-processed file in this way avoids the need for storage of excess data from the first and third files while waiting for the second file to become available.
[0020] The third file may be available from a third data source different to the first data source. Where the first file is a flight plan file, the third file may be a flight schedule file. Where the first file is a flight schedule file, the third file may be a flight plan file.
[0021] Updating the pre-processed file in the first data store using data extracted from the second file to generate the complete pre-processed file may comprise: determining, from data stored in the second file, a second unique identifier associated with the second file; querying the first data store using the second unique identifier to determine whether the first data store includes the updated pre-processed file; and responsive to determining that the first data store includes the updated pre-processed file: updating the updated pre-processed file using data from the second file to generate the complete pre-processed file. Using the second unique identifier allows data from the second file (e.g. flight data file) to be joined with data from the first and third files (e.g. flight schedule and flight plan files).
[0022] Determining the second unique identifier associated with the second file may comprise: determining that there is no exact match between the second unique identifier and a pre-processed file stored in the first data store; and modifying the second unique identifier by replacing a component value of the second unique identifier with a range of component values. Modifying the second unique identifier allows for 'fuzzy matching’ of the second file to the data from the first and third files, thereby allowing the data to be joined despite discrepancies in the fields used for joining the data (e.g. departure time).
[0023] The method may further comprise determining, from data collected during multiple events, whether a target associated with the one or more actions is met. The method may further comprise outputting, to a computing device associated with the individual, an indication of whether the target was met. This provides the individual with feedback on attainment of the target, which may encourage the individual to continue achieving the target (if the target was met), or to achieve the target in future (if the target was not met). The method may further comprise: in response to determining that the target was met, increasing the target. The target may be increased in response to determining that the target has been met during each of a predetermined number of consecutive time periods. Setting an increased target may encourage individuals to carry out the one or more actions (e.g. to further reduce fuel usage during events such as flights and sea days).
[0024] The present invention also provides, according to a second aspect, a computer-implemented method, comprising: determining, from data stored in a file, a unique identifier associated with the file; determining that there is no exact match between the unique identifier and a pre-processed file in a first data store; modifying the unique identifier by replacing a component value of the unique identifier with a range of component values; querying the first data store using the unique identifier; determining that the first data store includes the pre-processed file; and updating the pre-processed file using data from the file to generate a complete pre-processed file.
[0025] The method of the second aspect allows for 'fuzzy matching’ of the file to the data in the pre-processed file, thereby allowing the data to be joined despite discrepancies in the fields used for joining the data (e.g. departure time).
[0026] The file may be a second file, and the pre-processed file may store data extracted from a first file. The first file may include an identifier of an event. The first file may be available prior to the event. The second file may include data collected during the event. The second file may not be available until after the event.
[0027] The method may further comprise determining, from the complete pre-processed file, whether one or more actions were carried out during the event. Each of the one or more actions may be associated with reducing fuel usage during the event. Accordingly, the method allows for a determination of whether fuel saving actions were carried out during the event.
[0028] The first file may be available from a first data source. The second file may be available from a second data source different to the first data source. The event may be a flight. The first file may be a flight plan file or a flight schedule file. The second file may be a flight data file storing data collected during a flight by a flight data recorder on board an aircraft. The method may further comprise storing the complete pre-processed file in a second data store. Storage of the complete pre-processed file in the second data store allows the pre-processed file in the first data store and the file to be discarded, reducing storage requirements. Determining, from the complete pre-processed file, whether one or more actions were carried out during the event may comprise querying the complete pre-processed file in the second data store.
[0029] The data extracted from the first file may comprise data identifying an individual associated with the event. Where the event is a flight, the individual associated with the event may be a pilot.
[0030] The file may comprise flight data collected by a flight data recorder on board an aircraft. The one or more actions may comprise one or more of: continuous descent of the aircraft; reduced engine usage during outbound taxiing; reduced engine usage during inbound taxiing; optimal discretionary fuel loading; idle thrust state of engines during landing; usage of a projected amount of fuel or less during a flight identified by the flight data; delaying deployment of a specific flaps setting until after a threshold distance from a runway; continuous climb of the aircraft; and switching from an auxiliary power unit of the aircraft to ground power at an airport.
[0031] Continuous descent may be determined as being carried out if the time spent in level flight during descent is less than 30%. Reduced engine taxi in may be determined as being carried out if one engine burns less than 80% of the fuel burned by the other engine during taxi in. Reduced engine taxi out may be determined as being carried out if one engine burns less than 80% of the fuel burned by the other engine during taxi out. Optimal discretionary fuel load may be determined as being carried out if only the fuel required to account for changes in zero fuel weight (within a predetermined buffer) is loaded. Idle reverse thrust may be determined as being carried out if engines are left in an idle (low) thrust state during landing. Efficient flight may be determined as being carried out if the projected amount of fuel or less is used for a particular flight. Low drag landing may be determined as being carried out if deployment of a specific flaps setting is delayed until after a threshold distance from the runway. Continuous climb may be determined as being carried out if the aircraft continuously climbs to the optimal altitude. Reduced auxiliary power usage may be determined if the pilot switches from the aircraft’s Auxiliary Power Unit to ground power at the airport.
[0032] Alternatively, the file may comprise data collected by sensors on board a vessel. The data collected by the sensors may comprise data identifying power generated by one or more generators on board the vessel and data identifying a power demand of one or more electrical systems on board the vessel. The one or more actions may comprise an amount of time taken to reduce an imbalance between the power generated by the one or more generators and the power demand of the one or more electrical systems. The reduction in imbalance may be determined as being carried out if the amount of time taken to reduce the imbalance is less than a threshold time period. The event may be a sea day. Where the event is a sea day, the individual associated with the event may be an engineer.
[0033] The method may further comprise storing data extracted from the first file as the pre-processed file in the first data store. The unique identifier may be a second unique identifier, and storing the data extracted from the first file as the pre- processed file may comprise: determining, from data stored in the first file, a first unique identifier associated with the first file; querying the first data store using the first unique identifier to determine whether the first data store includes a pre- processed file identified using the first unique identifier; responsive to determining that the first data store includes the pre- processed file, creating an updated pre-processed file by updating the pre-processed file in the first data store using data from the first file, wherein the pre-processed file includes data extracted from a third file of a third file type; wherein updating the pre-processed file in the first data store using data extracted from the second file to generate the complete pre-processed file comprises updating the updated pre-processed file in the first data store. Using the first unique identifier allows data from the first file (e.g. flight plan or flight schedule file) to be joined with data from the third file (e.g. flight schedule or flight plan file). Updating the pre-processed file in this way avoids the need for storage of excess data from the first and third files while waiting for the second file to become available.
[0034] The third file may be available from a third data source different to the first data source. Where the first file is a flight plan file, the third file may be a flight schedule file. Where the first file is a flight schedule file, the third file may be a flight plan file.
[0035] The method may further comprise determining, from data collected during multiple events, whether a target associated with the one or more actions is met. The method may further comprise outputting, to a computing device associated with the individual, an indication of whether the target was met. This provides the individual with feedback on attainment of the target, which may encourage the individual to continue achieving the target (if the target was met), or to achieve the target in future (if the target was not met). The method may further comprise: in response to determining that the target was met, increasing the target. The target may be increased in response to determining that the target has been met during each of a predetermined number of consecutive time periods. Setting an increased target may encourage individuals to carry out the one or more actions (e.g. to further reduce fuel usage during events such as flights and sea days).
[0036] The present invention also provides, according to a third aspect, a computer-implemented method, comprising: determining, from data collected during a first plurality of events, whether one or more actions were carried out during each of the first plurality of events; determining, from the data collected during the first plurality of events, whether a target associated with the one or more actions is met; responsive to determining that the target is met, increasing the target; and determining, from data collected during a second plurality of events, whether the one or more actions were carried out during each of the second plurality of events; and determining, from the data collected during the second plurality of events, whether the increased target associated with the one or more actions is met.
[0037] The method of the third aspect allows for an evaluation of a target and an increased target associated with the same one or more actions over time. Each of the one or more actions may be associated with reducing fuel usage. Where the one or more actions are associated with reducing fuel usage, the initial target may incentivise individuals associated with the first plurality of events to achieve the target, thereby reducing fuel usage during the first plurality of events. Increasing the target prior to the second plurality of events incentivises individuals to achieve a target that is associated with a further reduction in fuel usage. Where the first and second pluralities of events are aircraft flights or vessel sea days, the method of the third aspect results in fuel usage savings for a fleet of aircraft or vessels. In general terms, therefore, the method of the third aspect allows for more efficient fleet usage. The first plurality of events and the second plurality of events may each comprise a plurality of flights piloted by an individual. Alternatively, the first plurality of events and the second plurality of events may each comprise a plurality of sea days of a vessel. The one or more actions may comprise one or more actions carried out by an individual on board the vessel. Alternatively, the one or more actions may comprise one or more actions carried out on board the vessel (e.g. by a crew of the vessel), thereby allowing for evaluation of vessel-specific targets (rather than individual-specific targets).
[0038] The method may further comprise outputting, to a computing device associated with the individual, an indication that the target was met. This provides the individual with feedback on attainment of the target, which may encourage the individual to continue achieving the (increased) target. The target may be increased in response to determining that the target has been met during each of a predetermined number of consecutive time periods. Setting an increased target may encourage individuals to carry out the one or more actions (e.g. to further reduce fuel usage during events such as flights and sea days).
[0039] Determining whether one or more actions were carried out during each of the first plurality of events may comprise, for each of the first plurality of events: receiving a first file of a first file type, wherein the first file includes an identifier of an event and wherein the first file is available prior to the event; storing data extracted from the first file as a pre-processed file in a first data store; receiving a second file of a second file type, wherein the second file includes data collected during the event and wherein the second file is not available until after the event; updating the pre-processed file in the first data store using data extracted from the second file to generate a complete pre-processed file; and determining, from the complete pre-processed file, whether one or more actions were carried out during the event. Storing the data from the first file in this way reduces storage requirements (compared with storing the complete first file) while waiting for the second file to become available.
[0040] The first file may be available from a first data source. The second file may be available from a second data source different to the first data source. The event may be a flight. The first file may be a flight plan file or a flight schedule file. The second file may be a flight data file storing data collected during a flight by a flight data recorder on board an aircraft.
[0041] The method may further comprise discarding data not extracted from the first file. This reduces storage requirements while waiting for the second file to become available.
[0042] The method may further comprise storing the complete pre-processed file in a second data store. Determining, from the complete pre-processed file, whether the one or more actions were carried out during the event may comprise querying the complete pre-processed file in the second data store.
[0043] The data extracted from the first file may comprise data identifying the individual associated with the event. Where the event is a flight, the individual associated with the event may be a pilot.
[0044] The second file may comprise flight data collected by a flight data recorder on board an aircraft. The one or more actions may comprise one or more of: continuous descent of the aircraft; reduced engine usage during outbound taxiing; reduced engine usage during inbound taxiing; optimal discretionary fuel loading; idle thrust state of engines during landing; usage of a projected amount of fuel or less during a flight identified by the flight data; delaying deployment of a specific flaps setting until after a threshold distance from a runway; continuous climb of the aircraft; and switching from an auxiliary power unit of the aircraft to ground power at an airport.
[0045] Continuous descent may be determined as being carried out if the time spent in level flight during descent is less than 30%. Reduced engine taxi in may be determined as being carried out if one engine burns less than 80% of the fuel burned by the other engine during taxi in. Reduced engine taxi out may be determined as being carried out if one engine burns less than 80% of the fuel burned by the other engine during taxi out. Optimal discretionary fuel load may be determined as being carried out if only the fuel required to account for changes in zero fuel weight (within a predetermined buffer) is loaded. Idle reverse thrust may be determined as being carried out if engines are left in an idle (low) thrust state during landing. Efficient flight may be determined as being carried out if the projected amount of fuel or less is used for a particular flight. Low drag landing may be determined as being carried out if deployment of a specific flaps setting is delayed until after a threshold distance from the runway. Continuous climb may be determined as being carried out if the aircraft continuously climbs to the optimal altitude. Reduced auxiliary power usage may be determined if the pilot switches from the aircraft’s Auxiliary Power Unit to ground power at the airport.
[0046] Alternatively, the second file may comprise data collected by sensors on board a vessel. The data collected by the sensors may comprise data identifying power generated by one or more generators on board the vessel and data identifying a power demand of one or more electrical systems on board the vessel. The one or more actions may comprise an amount of time taken to reduce an imbalance between the power generated by the one or more generators and the power demand of the one or more electrical systems. The reduction in imbalance may be determined as being carried out if the amount of time taken to reduce the imbalance is less than a threshold time period. The event may be a sea day. Where the event is a sea day, the individual associated with the event may be an engineer.
[0047] Storing data extracted from the first file as the pre-processed file in the first data store may comprise: determining, from data stored in the first file, a first unique identifier associated with the first file; querying the first data store using the first unique identifier to determine whether the first data store includes a pre-processed file identified using the first unique identifier; and responsive to determining that the first data store includes the pre-processed file, creating an updated pre- processed file by updating the pre-processed file in the first data store using data from the first file, wherein the pre-processed file includes data extracted from a third file of a third file type; wherein updating the pre-processed file in the first data store using data extracted from the second file to generate the complete pre-processed file comprises updating the updated pre- processed file in the first data store. Using the first unique identifier allows data from the first file (e.g. flight plan or flight schedule file) to be joined with data from the third file (e.g. flight schedule or flight plan file). Updating the pre-processed file in this way avoids the need for storage of excess data from the first and third files while waiting for the second file to become available.
[0048] The third file may be available from a third data source different to the first data source. Where the first file is a flight plan file, the third file may be a flight schedule file. Where the first file is a flight schedule file, the third file may be a flight plan file. Updating the pre-processed file in the first data store using data extracted from the second file to generate the complete pre-processed file may comprise: determining, from data stored in the second file, a second unique identifier associated with the second file; querying the first data store using the second unique identifier to determine whether the first data store includes the updated pre-processed file; and responsive to determining that the first data store includes the updated pre-processed file: updating the updated pre-processed file using data from the second file to generate the complete pre-processed file. Using the second unique identifier allows data from the second file (e.g. flight data file) to be joined with data from the first and third files (e.g. flight schedule and flight plan files).
[0049] Determining the second unique identifier associated with the second file may comprise: determining that there is no exact match between the second unique identifier and a pre-processed file stored in the first data store; and modifying the second unique identifier by replacing a component value of the second unique identifier with a range of component values. Modifying the second unique identifier allows for 'fuzzy matching’ of the second file to the data from the first and third files, thereby allowing the data to be joined despite discrepancies in the fields used for joining the data (e.g. departure time).
[0050] The method may further comprise determining the target associated with the one or more actions. Determining the target may comprise: determining a subset of the first plurality of events for which the one or more actions are not excluded from being carried out; and determining the target by applying a percentage target to the subset of the first plurality of events. This ensures that the target does not apply to events for which the one or more actions cannot be carried out (e.g. because they are prohibited or are not possible under event conditions associated with an event). Determining the subset of the first plurality of events may comprise determining, for each event of the first plurality of events, whether the one or more actions are excluded from being carried out.
[0051] For a first one of the first plurality of events, determining whether the one or more actions are excluded from being carried out may comprise inputting event conditions associated with the first one of the first plurality of events to a trained machine learning model configured to predict, based on the event conditions, whether performance of the one or more actions is excluded. The trained machine learning model may be trained using a training dataset comprising event conditions for a plurality of training events. The training dataset may further comprise an indication, for each of the plurality of training events, of whether the one or more actions were excluded or not.
[0052] The present invention also provides, according to a fourth aspect, a computer-readable medium comprising instructions which, when executed by one or more processors of one or more computing devices, cause the one or more computing devices to carry out the computer-implemented method of the first, second, and / or third aspects.
[0053] Specific embodiments of the invention are set forth in the dependent claims.
[0054] These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter. of the
[0055] Further details, aspects and embodiments of the invention will be described, by way of example only, with reference to the drawings. In the drawings, like reference numbers are used to identify like or functionally similar elements. Elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale.
[0056] FIG. 1 schematically shows a data processing environment according to one or more examples of the present disclosure.
[0057] FIG. 2 schematically shows a data ingestion module and a data processing module of a data processing system being used to process data from first and second files.
[0058] FIG. 3 schematically shows a vessel comprising sensors.
[0059] FIG. 4 schematically shows a flowchart of a method of processing data according to one or more examples of the present disclosure.
[0060] FIG. 5 schematically shows a flowchart of a method of evaluating a target associated with one or more actions.
[0061] FIG. 6 schematically shows a computer apparatus configured to carry out one or more of the methods of the present disclosure.
[0062] Detailed description of the preferred embodiments
[0063] Herein below, details will not be explained in any greater extent than considered necessary for the understanding and appreciation of the underlying concepts of the present invention, in order not to obfuscate or distract from the teachings of the present invention.
[0064] Referring to FIG. 1 , a schematic diagram of a data processing environment 100 according to the present disclosure is shown. In this example, the data processing environment 100 comprises a data processing system 102 that is used for processing flight data. As described further below, the processed flight data can be used to establish whether one or more actions associated with reducing fuel usage were carried out by an individual (e.g. a pilot of an aircraft 134).
[0065] The data processing system 102 includes a data ingestion module 110 configured to receive data from a plurality of data sources 120. The data ingestion module 110 receives the data from the data sources 120 at different points in time, depending on when the data from each data source 120 is available. In the example shown in FIG. 1 , the data sources 120 include: a flight schedule datastore 122, a flight plan datastore 124, and a flight data datastore 126, each of which is described in more detail below. The flight schedule datastore 122 stores data relating to the scheduling of the flight. Specifically, the flight schedule datastore 122 stores a flight schedule file including the following fields for each flight: origin airport, destination airport, departure date, scheduled departure time, flight number, and airline. The flight schedule data is typically available from the flight schedule datastore 122 up to 30 days before the flight. In order to maximise the accuracy of the flight schedule file received by the data ingestion module 110, the data ingestion module 110 requests the flight schedule data from the flight schedule datastore 122 one day prior to the flight.
[0066] The flight plan datastore 124 stores data relating to the flight plan. Specifically, for each flight, the flight plan datastore 124 stores a flight plan file including the following fields: flight number, origin airport, destination airport, departure time, route, and the amount of fuel on board the aircraft 134. The flight plan data is typically available from the flight plan datastore 124 shortly before the flight (e.g. a few hours before the flight).
[0067] The flight data datastore 126 stores data recorded by the aircraft’s flight data recorder 132. Specifically, for each flight, the flight data recorder 132 records data to a flight data file including the following fields: date, time, geographical position of aircraft, flight path parameters (including altitude, airspeed, vertical speed and heading), control inputs relating to the flight controls, and engine performance (including thrust settings and fuel flow). The flight data is available once the aircraft 134 has landed. Some aircraft 134 (e.g. newer aircraft) are capable of connecting to a wireless network at the destination airport in order for the data recorded by the flight data recorder 132 to be downloaded from the aircraft 134. However, for older aircraft 134, flight data is physically retrieved from the flight data recorder 132 using a portable storage device such as a USB stick.
[0068] There are challenges to evaluating whether a pilot has carried out one or more actions associated with reducing fuel usage. Firstly, the flight schedule datastore 122, flight plan datastore 124 and flight data datastore 126 are not typically set up to be part of a data processing environment to capture how a flight is operated. Instead, each data source 120 typically stores data in silos for its intended purpose. The flight schedule data is used to ensure that aircraft 134 are in the correct places. The flight plan data is used to ensure that aircraft 134 follow the correct routes, and that the correct amount of fuel is on board. The flight data recorder 132 is primarily a safety system that monitors operation of the aircraft 134 in terms of actions taken in the cockpit, along with data relating to components of the aircraft 134.
[0069] Secondly, no unique identifier links the flight schedule file, the flight plan file, and the flight data file. For example, although the flight schedule file and the flight plan file each include the flight number, the flight data recorder does not need to know the flight number, and does not record it to the flight data file. Moreover, the flight schedule file may include multiple flights identified using the same flight number.
[0070] Thirdly, as explained above, the data is available from the data sources 120 at different points in time. The flight schedule and flight plan files are available prior to departure of the aircraft 134, but the flight data file is not available until the aircraft 134 has arrived at its destination. All three files are needed in order to evaluate whether the pilot of the aircraft 134 has carried out one or more actions associated with reducing fuel usage. In order to evaluate whether a pilot has carried out one or more actions associated with reducing fuel usage, the data ingestion module 110 firstly needs to generate a complete pre-processed file 240 that includes data from the flight schedule file, the flight plan file and the flight data file. The process of generating the complete pre-processed file 240 will now be described with reference to FIG. 2.
[0071] Firstly, upon receipt of a file, the data ingestion module 110 examines the file to determine whether it is a flight schedule file, a flight plan file, or a flight data file. The data ingestion module 110 assumes that the flight data file for a flight is received after the flight plan and flight schedule files associated with that flight. As described further below, the data ingestion module 110 generates a first unique identifier 222 to link the flight schedule file and the flight plan file, and a second unique identifier to link the flight plan file and the flight data file.
[0072] Upon receipt of a first file 210 of a particular file type (i.e. a flight schedule file or a flight plan file), the data ingestion module 110 creates a first unique identifier 222. The first unique identifier is a combination of specific fields that are common to the flight schedule file and the flight plan file. In this example, the first unique identifier is created based on a combination of the flight number, the date of departure, the origin airport, and the destination airport.
[0073] After creating the first unique identifier 222, the data ingestion module 110 queries a first data warehouse 130 using the first unique identifier 222, in order to determine whether the first data warehouse 130 includes a pre-processed file 220 identified using the first unique identifier 222. If the data ingestion module 110 determines that the first data warehouse 130 stores a pre-processed file 220 identified using the first unique identifier 222, then four scenarios are possible.
[0074] In a first scenario, the first file 210 is a flight schedule file and the pre-processed file 220 stored in the data warehouse 130 contains a subset of data extracted from a previous flight schedule file. In this scenario, the first file 210 is an updated version of the flight schedule file. The data ingestion module 110 extracts a subset of data from the updated version of the flight schedule file, and overwrites the subset of data extracted from the previous flight schedule file in the pre-processed file 220.
[0075] In a second scenario, the first file 210 is a flight plan file and the pre-processed file 220 stored in the data warehouse 130 contains a subset of data extracted from a previous flight plan file. In this scenario, the first file 210 is an updated version of the flight plan file. The data ingestion module 110 extracts a subset of data from the updated version of the flight plan file, and overwrites the subset of data extracted from the previous flight plan file in the pre-processed file 220.
[0076] In a third scenario, the first file 210 is a flight schedule file and the pre-processed file 220 stored in the data warehouse 130 contains a subset of data extracted from a flight plan file. In this scenario, the data ingestion module 110 extracts a subset of data from the flight schedule file and updates the pre-processed file 220 with the extracted data. The updated pre- processed file 220 (which now contains subsets of flight schedule data and flight plan data) is then stored in the data warehouse 130.
[0077] In a fourth scenario, the first file 210 is a flight plan file and the pre-processed file 220 stored in the data warehouse
[0078] 130 contains a subset of data extracted from a flight schedule file. In this scenario, the data ingestion module 110 extracts a subset of data from the flight plan file and updates the pre-processed file 220 with the extracted data. The updated pre- processed file 220 (which now contains subsets of flight schedule data and flight plan data) is then stored in the data warehouse 130.
[0079] In each scenario, therefore, the data ingestion module 110 updates the pre-processed file 220 stored in the data warehouse 130 using a subset of data from the first file 210, and stores the updated pre-processed file 220 in the data warehouse 130.
[0080] If the data ingestion module 110 determines that the first data warehouse 130 does not store a pre-processed file 220 identified using the first unique identifier 222, then the data ingestion module 110 extracts a subset of data from the first file 210, and stores the extracted subset of data from the first file 210 as a new pre-processed file 220 identified using the first unique identifier 222 in the data warehouse 130. The data ingestion module 110 then waits for a further file (i.e. flight schedule file or flight plan file) and updates the pre-processed file 220 using the process described above.
[0081] The above process provides efficiencies over a process in which data from the first file 210 is not transferred to the first data warehouse 130. For example, an alternative process may involve holding complete flight schedule files in a data lake, and querying each complete flight schedule file each time a new file (i.e. either a flight schedule file or a flight plan file) is received. This alternative process involves inefficiencies because the data lake is storing more data than is ultimately needed. When factoring in the need to extract data from the flight data file, those inefficiencies are magnified. This is because all file types would need to be stored until it is determined that three files match one another. Determining whether the three file types are a match would involve storing large amounts of data and executing a large number of queries on the data stored in the data lake. Instead, by building up the pre-processed file in the first data warehouse 130 piece by piece, the amount of data stored is reduced, along with the number of queries requiring execution.
[0082] Upon receipt of a second file 230 of a different file type (i.e. a flight data file), the data ingestion module 110 creates a second unique identifier 224. The second unique identifier is a combination of specific fields that are common to the flight plan file and the flight data file. In this example, the second unique identifier 224 is based on a combination of the date of departure, the origin airport, the destination airport, and the time of departure.
[0083] After creating the second unique identifier 224, the data ingestion module 110 queries the first data warehouse 130 using the second unique identifier 224, in order to determine whether the first data warehouse 130 includes a pre-processed file 220 identified using the second unique identifier 224 (i.e. a pre-processed file 220 that includes data extracted from the flight schedule and flight plan files).
[0084] If the data ingestion module 110 determines that the first data warehouse 130 stores a pre-processed file 220 identified using the second unique identifier 224, then the data ingestion module 110 extracts data from the flight data file and updates the pre-processed file 220 with the extracted data, thereby generating a complete pre-processed file 240. At this point, the pre-processed file 240 includes data extracted from the flight schedule file, the flight plan file and the flight data file, and is said to be “complete”. The complete pre-processed file 240 may, for example, include 250 fields of data taken from the flight schedule, flight plan and flight data files, all relating to a single flight. The data ingestion module 110 stores the complete pre-processed file 240 in a second data warehouse 140.
[0085] In some cases, the second unique identifier 224 may not be an exact match for a file stored in the first data warehouse 130. For example, a flight plan may indicate that a flight from Brussels Airport (BRU) to London Heathrow Airport (LHR) is scheduled to depart at 13:00. However, the flight data recorder 132 may record the departure time at 13:10. Therefore, a second unique identifier 224 that comprises a departure time of 13:10 (as recorded in the flight data file) will not match to the pre-processed file in the first data warehouse 130 associated with a flight having a scheduled departure time of 13:00. The data ingestion module 110 cannot match the flight data file with the pre-processed file based on date, origin and destination alone, because there may be multiple flights from BRU to LHR on a particular date.
[0086] Therefore, if the data ingestion module 110 determines that there is no exact match of the second unique identifier 224 and a pre-processed file 220 stored in the first data warehouse 130, then the data ingestion module 110 modifies the second unique identifier 224 by replacing one of its component values with a range of component values. Specifically, the data ingestion module 110 modifies the time of departure in the second unique identifier 224 to include a time period instead of a specific time. For example, the data ingestion module 110 may replace the specific time of departure (e.g. 13:10) with a 30 minute time window centred at the specific time of departure (e.g. 12:55 to 13:25).
[0087] After modifying the second unique identifier 224, the data ingestion module 110 queries the first data warehouse 130 using the modified second unique identifier 224, in order to determine whether the first data warehouse stores a pre- processed file 220 identified using the modified second unique identifier 224. Continuing the above example, the 13:00 flight from BRU to LHR will be captured by the modified second unique identifier 224, thereby allowing data from the flight data file to be included in the pre-processed file 220 in order to generate the complete pre-processed file 240. Using a time period in the modified unique identifier 224 provides an efficient way of matching the flight data file to the pre-processed file in the first data warehouse 130.
[0088] If the data ingestion module 110 determines that the first data warehouse 130 stores a pre-processed file 220 identified using the modified second unique identifier 224, then the data ingestion module 110 extracts data from the flight data file and updates the pre-processed file 220 with the extracted data. The data ingestion module 110 then stores the complete pre-processed file 240 in the second data warehouse 140. Storage of the complete pre-processed file 240 in the second data warehouse 140 means that any queries of the data in the second data warehouse 140 (e.g. to analyse one or more actions as described further below) are carried out on complete pre-processed files 240. On the other hand, if the data ingestion module 110 determines that the first data warehouse 130 does not store a file identified using the modified second unique identifier, then the data ingestion module determines that it is not possible to generate a complete pre-processed file 240 for that flight.
[0089] The data processing system 102 also includes a data processing module 150. The data processing module 150 determines one or more actions of an individual by processing data from the complete pre-processed file 240 stored in the second data warehouse 140. Continuing the above example, the data processing module 150 determines one or more actions of a pilot for a particular flight. Specifically, the data processing module 150 may determine one or more of the following pilot actions: continuous descent, reduced engine taxi in, reduced engine taxi out, optimal discretionary fuel load, idle reverse thrust, efficient flight, low drag landing, continuous climb, and reduced auxiliary power usage. Each of these actions reduces fuel usage during a flight.
[0090] Continuous descent involves a smooth descent from cruise altitude to the runway, rather than a stepped approach where the aircraft 134 levels off before requesting permission to descend to a lower altitude. This reduces the engine power needed to level off at multiple altitudes prior to landing. Continuous descent may be determined as being carried out if the time spent in level flight during descent is less than 30%.
[0091] Reduced engine taxi involves reducing the number of engines used during taxiing, either on departure or on arrival. Reduced engine taxi in may be determined as being carried out if one engine burns less than 80% of the fuel burned by the other engine during taxi in. Reduced engine taxi out may be determined as being carried out if one engine burns less than 80% of the fuel burned by the other engine during taxi out.
[0092] Optimal discretionary fuel load involves a determination of whether the pilot has added more fuel than necessary, given the flight conditions and the changes to aircraft planned weight. Optimal discretionary fuel load may be determined as being carried out if only the fuel required to account for changes in zero fuel weight (within a predetermined buffer) is loaded.
[0093] Idle reverse thrust involves deterring the amount of fuel used to slow the aircraft 134 using the engines, as opposed to using the wheel brakes. Idle reverse thrust may be determined as being carried out if engines are left in an idle (low) thrust state during landing.
[0094] Efficient flight involves a determination of whether the pilot has made adjustments in flight to facilitate reduced fuel consumption, such as route adjustment or altitude changes. Efficient flight may be determined as being carried out if the projected amount of fuel or less is used for a particular flight.
[0095] Low drag landing involves evaluating a pilot’s use of flaps and landing gear in the approach phase of the flight, recognising that deploying the flaps and landing gear too early can cause additional drag and therefore require additional thrust. Low drag landing may be determined as being carried out if deployment of a specific flaps setting is delayed until after a threshold distance from the runway.
[0096] For each of the above actions, the determination of whether the action was carried out may be a binary determination. For example, the data processing module 150 may determine that an action was either performed, or not performed, depending on whether the criterion associated with the action (i.e. as listed above) was met.
[0097] Additional pilot actions that may be determined include continuous climb (determined if the aircraft 134 continuously climbs to the optimal altitude) and reduced auxiliary power usage (determined if the pilot switches from the Auxiliary Power Unit to ground power at the airport). The pilot actions can be determined by evaluating data originating from the flight data file. The data ingestion process described above is necessary in order to link the data originating from the flight data file with a particular flight (because the flight data file does not include the flight number, for example). The data ingestion process therefore allows the actions taken during a particular flight (derivable from the flight data file) to be linked with a particular individual (derivable from the flight plan and / or flight schedule).
[0098] The data processing module 150 analyses the data in the completed pre-processed file 240 stored in the second data warehouse 140 in order to establish whether the pilot carried out each action. In one example, the data processing module 150 provides a binary output (i.e. yes / no) indicating whether the pilot carried out each action. The data processing module 150 stores the output indicating whether the pilot carried out each action on the flight corresponding to the completed pre-processed file 240 as an individual action record 250 in an individual action datastore 160. The data processing module 150 updates a pilot’s individual action record 250 in the individual action datastore 160 with action data each time a complete pre-processed file 240 corresponding to a flight operated by that pilot is analysed. In this way, the data processing module 150 can determine the number of actions taken by each pilot within a particular time period (e.g. the number of actions taken within a month).
[0099] In some cases, it may not be possible to generate a complete pre-processed file 240. This may occur, for example, if one or more of the files is not received at the data ingestion module 110, or if one or more of the files contains incomplete or corrupted data. As explained above, for older aircraft 134, an engineer is required to transfer data from the flight data recorder 132 to a portable storage device. If the engineer does not obtain the flight data, then no flight data file will be received at the data ingestion module 110. If the engineer is delayed in obtaining the flight data, then data relating to the start of the flight may have been overwritten (as the flight data recorder stores a limited amount of data), in which case the flight data file contains incomplete data. If the flight data file is not received or is incomplete, then the fuel data associated with the flight is missing. In this case, the one or more pilot actions associated with reducing fuel usage cannot be determined.
[0100] If one or more of the files is not received or is unusable, then the data processing module 150 generates, using a machine learning prediction model 170, a prediction of whether the individual (i.e. pilot) carried out one or more actions during the event (i.e. flight). The prediction of whether the individual carried out the one or more actions during the event can then be stored in the individual’s individual action record 250 in the individual action datastore 160. The prediction model 170 is trained on historical flight data that has been processed to determine whether an individual carried out one or more actions, along with ground truth data in the form of the output from the processing of the historical flight data (i.e. the one or more actions). The historical flight data used to train the prediction model 170 may include: aircraft type, flight route, origin airport, destination airport, temperature, flying hours, and an identification of the pilot. The prediction model 170 generates an output indicating whether the pilot carried out each of the one or more actions. Therefore, the one or more actions used as the ground truth data for training the prediction model 170 may be labelled in a binary manner (e.g. for a given set of flight conditions, continuous descent: yes / no; reduced engine taxi in: yes / no; reduced engine taxi out: yes / no).
[0101] Therefore, the prediction model 170 is capable of determining, for a given set of flight conditions and a given individual, the likelihood that the individual carried out one or more actions. The prediction model 170 can also be trained on self-reporting data, where the individual self-reports whether they carried out the one or more actions (if this cannot be determined from the available data files). Self-reporting may comprise confirming the correctness of a prediction that the individual carried out or did not carry out the one or more actions.
[0102] The data processing described above can be used by a target setting module 180 of the data processing system 102 to set targets for individuals relating to performance of the one or more actions. In order to set a target for an individual, a baseline performance is firstly determined for each individual using data relating to a baseline evaluation period (e.g. six months), for example using the data stored in the individual action datastore 160. To determine the baseline performance, the data ingestion module 110 pre-processes data from the data sources 120 to generate completed pre-processed files 240, as described above. The data processing module 150 then analyses the data in the completed pre-processed files 240 in order to establish how often each individual performs the one or more actions, and stores the results of the analysis in the individual action datastore 160. For example, a pilot may carry out reduced engine taxi in on 40% of their flights.
[0103] Once the baseline performance has been determined for an individual, the target setting module 180 sets a target for that individual and stores the target in that individual’s individual action record 250 in the individual action datastore 160. In one example, the target setting module 180 sets a target that is 10% higher than the individual’s baseline. Therefore, if a pilot’s baseline for reduced engine taxi in is 40% of flights, the target setting module 180 sets a target of 50% for the reduced engine taxi in for the next time period (e.g. the next month). The target setting module 180 turns the percentage target into an absolute number by rounding down to the nearest integer. For example, if a pilot’s percentage target for reduced engine taxi in was 60% and they were scheduled to operate seven eligible flights in the subsequent month, then the target setting module 180 would set the pilot’s target as carrying our reduced engine taxi in on four eligible flights (where eligible flights are those for which the action is not excluded, as described in more detail below). In some cases, a pilot’s number of scheduled flights per month may not be known in advance. In this scenario, the target setting module 180 sets an initial target for the pilot and reduces the target downwards if the pilot operates fewer flights in that month than assumed when setting the initial target. In this way, the pilot is set an absolute integer number of flights on which to carry out specific actions, rather than a percentage target. This improves the clarity of the target for the pilots.
[0104] In setting the targets for individuals’ performance of an action, the target setting module 180 also takes into account whether the individual was excluded from carrying out the action during a particular event. Continuing the aviation example described above, the target setting module 180 takes into account whether a pilot was excluded from carrying out continuous descent, reduced engine taxi in, reduced engine taxi out, optimal discretionary fuel load, idle reverse thrust, efficient flight phase, or low drag landing.
[0105] Three types of exclusions are considered by the target setting module 180: explicit exclusions, implicit exclusions, and feedback exclusions. Explicit exclusions are those that are explicitly prohibited (for example by an aircraft manufacturer or an airport) or are not technically possible. For example, for some aircraft 134, reduced engine taxi out may not be possible in view of engine warm-up times (i.e. there may be insufficient time for warm-up of the non-utilised engine). In addition, some aircraft manufacturers may prohibit the use of reduced engine taxi. Some airports may also prohibit the performance of certain inbound and / or outbound actions such as continuous descent and / or reduced engine taxi. Implicit exclusions are exclusions that are not explicit, but that are implied from analysis of the one or more actions. In particular, if no individuals ever carry out a particular action under certain flight conditions (e.g. at a particular airport), then the target setting module 180 implies that particular action is not possible. The target setting module 180 then categorises that action as implicitly excluded for its event conditions. For example, there may be no explicit exclusion that an aircraft cannot carry out reduced engine taxi in at a certain gate of an airport. However, as that gate is part of a set of gates that is uphill from the runway, reduced engine taxi is never carried out by pilots. In other words, if the data suggests that given a set of pilot-independent conditions, the probability of pilots carrying out an action is zero, then the action is implicitly excluded for those conditions.
[0106] Feedback exclusions are exclusions that are based on pilot feedback. For example, if a pilot feeds back that air traffic control did not allow the pilot to carry out one or more actions, then those actions are excluded by the target setting module 180 based on the pilot’s feedback.
[0107] The target setting module 180 accounts for exclusions when setting individuals’ targets for performance of the one or more actions. More specifically, the target setting module 180 excludes events for which the performance of an action is excluded. For example, if a pilot’s target for continuous descent is 50% but continuous descent is prohibited on two of their six scheduled flights for the following month, then only four flights are eligible flights for continuous descent, and the pilot’s target is set at two flights.
[0108] In some examples, a machine learning model may be trained to identify implicit exclusions. The machine learning model may be trained using a set of flight conditions and ground truth data comprising an indication of whether an action has been carried out by one or more individuals or not. The machine learning model may be configured to output, based on a set of flight conditions, whether the performance of each action is possible (i.e. the action is not excluded) or not (i.e. the action is excluded).
[0109] A target evaluation module 190 of the data processing system 102 may then evaluate the one or more actions determined by the data processing module 150 against the targets set by the target setting module 180 and stored in the individual action datastore 160. In particular, the target evaluation module 190 determines, for an individual, whether an action has been carried out by that individual within a particular time period (e.g. a month) enough times to meet the target for that action. Accordingly, the target evaluation module 190 may wait until expiry of the time period before determining whether the target for that time period has been met. Waiting until expiry of the time period also allows for any necessary adjustments to be made to the target by the target setting module 180, for example, to account for exclusions or for the individual carrying out a different number of events within the time period than originally expected.
[0110] The target evaluation module 190 provides an output to a computing device 192 of the individual (e.g. by email, SMS, notification from a software application running on the computing device 192, etc.). The output informs the individual whether they met the target for that time period. The output may include a display indicating the target value and the number of times the individual carried out an action. Attainment of the target may be accompanied by a congratulatory message. If the target evaluation module 190 determines that an individual consistently meets or exceeds a target (for example, a period of three consecutive months of meeting or exceeding a monthly target), then that individual is a candidate for having their target increased. For example, targets may be increased by a percentage value such as 5% or 10%, up to a maximum of 90% of non-excluded events. The individual’s performance against the higher target may then be evaluated for a minimum period (e.g. three months) before the target is increased further.
[0111] It will be appreciated that the target setting module 180 may set targets for different time periods (i.e. besides monthly targets), and the target evaluation module 190 may evaluate performance over those different time periods. For example, fortnightly or quarterly targets may be set and evaluated. Again, performance against targets may be evaluated for a minimum period of three consecutive time periods prior to adjustment of the targets.
[0112] The target evaluation module 190 may also evaluate performance across a fleet over time. For example, the target evaluation module 190 may aggregate the targets set by the targets setting module 170 across the fleet, evaluate the targets across a predefined number of time periods, increase one or more of the targets in response to determining that one or more of the targets is met for the predefined number of time periods, and re-evaluate the targets including the one or more increased targets across the predefined number of time periods. Where the targets relate to actions that reduce fuel usage, attainment of increased targets reduces the amount of fuel used across the fleet.
[0113] Although the above example is described with reference to determining whether a pilot carried out one or more actions during a flight, the data processing system 102 of FIG. 1 is also applicable to other scenarios in which it is to be established whether an individual carried out one or more actions. As a first alternative example, shown in FIG. 3, the data processing system 102 allows for a determination of whether an engineer carried out one or more actions on a vessel 300 (e.g. a container ship, tanker, or cruise ship). In this alternative example, the individual is an engineer rather than a pilot, and the event is a sea day rather than a flight. Data can either be provided in the form of a “noon report” snapshot of daily average sensor readings, or as a set of continuous sensor readings from the system sensors on the ship 300 (e.g. power demand).
[0114] An example of a measurable action that may be carried out by an engineer during a sea day is a measurement of the time taken to reduce the power output of a generator 302 on board a vessel 300 based on the power demand - specifically, how long it takes for the imbalance between the power demand and power output from the generators 302 to be corrected by turning off one or more generators 302. Generators 302 (e.g. diesel generators) are typically used on board vessels 300 in order to provide the electricity required by electrical systems 304, 306 on board the vessel (such as lighting systems 304 and ballast pumps 306). However, there is typically an imbalance between the power demand of the electrical systems 304, 306 on board the vessel 300 and the power output by the generators. In this example, sensors 308 on board the vessel 300 measure the power demand on board the vessel 300 and the power output by the generators 302.
[0115] An example of a good action taken by the engineer is running the bare minimum number of generators 302 needed to supply the amount of electrical power needed on board the vessel 300 (for example, if the ballast pumps 306 are not being used to pump water out of the hold, then one or more generators 302 may not be needed). An example of a bad action taken by the engineer is turning on one or more generators 302 for a particular reason and forgetting to turn them off. Once the vessel 300 has completed its voyage, data from the sensors 308 can be downloaded from the vessel 300 in order to determine how quickly oversupplies in power from the generators 302 have been corrected by the engineer. The output may be expressed in terms of the product of the surplus power generation and the amount of time taken to correct the power oversupply, or simply the amount of time taken to correct the power oversupply. It will be appreciated that minimising this output improves the efficiency of the vessel 300 by reducing the fuel used on board the vessel 300 to provide electrical power. This output can be binarized based on a threshold of the time period of oversupply. For example, under one hour of oversupply may be determined as a successful oversupply correction, while over one hour of oversupply may be determined as an unsuccessful oversupply correction.
[0116] The data ingestion module 110 can therefore generate a complete pre-processed file by combining data from the sensors 308 on board the vessel 300 (acquired after the vessel has docked) with data pre-processed by the data ingestion module 110 prior to departure of the vessel 300 (e.g. the vessel manifest identifying the engineer(s) responsible for operation of the generators). The data processing module 150 can then determine one or more actions taken by the engineer(s) (e.g. the product of surplus power generation and the amount of time taken to correct the power oversupply, or the amount of time taken to correct the power oversupply). The actions taken by the engineers(s) can be evaluated against targets for those actions by the target evaluation module 190.
[0117] As an alternative to determining whether one or more actions were carried out by an individual, the data processing system 102 may be used to determine whether one or more actions were carried out for a particular vessel 300, thereby providing a vessel- or crew-based evaluation against the targets, rather than an individual-based evaluation.
[0118] Other scenarios are also possible. For example, the data processing system 102 of FIG. 1 may be used for determining any measurable action taken by one or more individuals to reduce fuel usage during an event. Examples include: measuring actions taken to reduce unnecessary engine usage on oil rigs; measuring actions taken to reduce unnecessary electricity generation on a building site; and measuring actions taken to reduce the amount of time that construction vehicles are left idle.
[0119] The data processing system 102 of FIG. 1 is not limited to evaluating actions taken to reduce fuel usage, however. Other use cases include call centres, where a measurable action taken by a call centre employee during an event in the form of a call may be whether a sale is made to a customer, or whether a customer pays a bill. In such other use cases, the target setting module 180 may set targets for the call centre employees and the target evaluation module 190 may evaluate employees’ performance against those targets. As with the other examples described above, evaluation against the targets requires the data ingestion module 110 to pre-process data collected after the event (i.e. the call) has taken place and the data processing module 150 to process the pre-processed data to determine whether one or more actions (e.g. a sale) were carried out by an individual (i.e. the call centre employee).
[0120] FIG. 4 is a flowchart of a first method 400 that may be carried out by the data processing system 102. The method 400 may, for example, be implemented at one or more processors of the data processing system 102 shown in FIG. 1 (e.g. at the processor 604 of the device 600 shown in FIG. 6). In particular, the method 400 may be implemented in the form of an application comprising instructions stored on a transitory or non-transitory computer-readable medium (as described further below), wherein the instructions are executable by the one or more processors of the data processing system 102 to cause the data processing system 102 to implement the method 400.
[0121] At 402, a first file 210 of a first file type is received at the data processing system 102. The first file 210 includes an identifier of an event (e.g. a flight or a sea day), and is available from a first data source prior to the event. At 404, the data processing system 102 extracts data from the first file 210. In one example, the data extracted from the firstfile 210 includes data identifying an individual associated with the event (e.g. a pilot for a particular flight, or an engineer on board a vessel 300). At 406, the data processing system 102 discards data that it did not extract from the first file 210. At 408, the data processing system 102 stores the data extracted from the first file 210 as a pre-processed file in the first data store 130.
[0122] Specifically, in one example, to store the data at 408, the data processing system 102 determines, at 410, from data stored in the first file 210, a first unique identifier 222 associated with the first file 210. Then, at 412, the data processing system 102 queries the first data store 130 using the first unique identifier 222 to determine whether the first data store 130 includes a pre-processed file 220 identified using the first unique identifier 222 and storing data extracted from a third file of a third file type (available from a third data source that is different to the first data source). If so, then the data processing system 102 creates, at 414, an updated pre-processed file 220 by updating the pre-processed file 220 using the data extracted from the first file 210. If not, the data processing system 102 creates, at 416, the pre-processed file 220 using the data extracted from the first file, and stores, at 418, the pre-processed file 220 in the first data store 130.
[0123] At 420, a second file 230 of a second file type is received at the data processing system 102. The second file 230 includes data collected during the event (e.g. flight data collected during the flight by the flight data recorder 132, or data collected by sensors 308 on board the vessel 300), and is not available until after the event. The second file 230 is available from a second data source (e.g. the flight data recorder 132, sensor data collected by the sensors 308 on the vessel 300) that is different to the first data source.
[0124] Where the second file 230 includes data collected by sensors 308 on board the vessel 300, the data collected by the sensors 308 may include data identifying power generated by one or more generators 302 on board the vessel 300 and data identifying a power demand of one or more electrical systems 304, 306 on board the vessel 300.
[0125] At 422, the data processing system 102 extracts data from the second file 230 (and optionally discards data not extracted from the second file 230). At 424, the data processing system 102 updates the pre-processed file 220 in the first data store 130 to generate a complete pre-processed file 240.
[0126] Specifically, in one example, to update the pre-processed file 220 at 424 to generate the complete pre-processed file 240, the data processing system 102 determines, at 426, from data stored in the second file 230, a second unique identifier 224 associated with the second file 230.
[0127] The process of determining, at 426, the second unique identifier 224 associated with the second file 230 includes, in one example, determining, at 428, whether there is an exact match between the second unique identifier 224 and any pre- processed file 220 stored in the first data store 130. If so, the method 400 proceeds to 432. However, if there is no exact match, then the data processing system 102 modifies, at 430, the second unique identifier 224 by replacing a component value (such as a specific time) of the second unique identifier 224 with a range of component values (e.g. a time window such as a thirty-minute time window). The modified second unique identifier 224 used for querying the first data store 130 at 432.
[0128] That is, at 432, the data processing system 102 queries the first data store 130 using the second unique identifier 224, to determine whether the first data store 130 includes the pre-processed file 220 (or the updated pre-processed file 220, if it has been updated). If so, then at 434, the data processing system updates the pre-processed file 220 (or the updated pre-processed file 220) using the data extracted from the second file 230 to generate the complete pre-processed file 240. At 436, the data processing system 102 stores the complete pre-processed file 240 in a second data store 140.
[0129] At 438, the data processing system 102 determines, from the complete pre-processed file 240, whether one or more actions were carried out during the event. In one example, each of the one or more actions is associated with reducing fuel usage during the event. In one example, the data processing system 102 determines whether the one or more actions were carried out by querying the complete pre-processed file 240 in the second data store 140.
[0130] Where the event is a flight and the second file 230 includes data collected by the flight data recorder 132, the one or more actions determined at 414 may include: continuous descent, reduced engine taxi in, reduced engine taxi out, optimal discretionary fuel load, idle reverse thrust, efficient flight, low drag landing, continuous climb, and reduced auxiliary power usage.
[0131] Where the event is a sea day and the second file 230 includes data collected by sensors 308 on board the vessel 308, the one or more actions determined at 414 may include an amount of time taken to reduce an imbalance between the power generated by the one or more generators 302 and the power demand of the one or more electrical systems 304, 306.
[0132] Where data has been collected during multiple events, the data processing system 102 determines, at 440, from the data collected during the multiple events, whether a target associated with the one or more actions is met. In one example, the data processing system 102 outputs, at 442, to a computing device associated with the individual, an indication of whether the target was met. Then, at 444, the data processing system 102 determines whether the target has been met during each of a predetermined number (e.g. three) of consecutive time periods (e.g. months). If so, then the data processing system 102 increases the target at 446. If not, then the data processing system 102 maintains the target at 448.
[0133] FIG. 5 is a flowchart of a second method 500 that may be carried out by the data processing system 102. The method 500 may, for example, be implemented at one or more processors of the data processing system 102 shown in FIG. 1 (e.g. at the processor 604 of the device 600 shown in FIG. 6). In particular, the method 500 may be implemented in the form of an application comprising instructions stored on a transitory or non-transitory computer-readable medium (as described further below), wherein the instructions are executable by the one or more processors of the data processing system 102 to cause the data processing system 102 to implement the method 500. The method 500 involves evaluating targets associated with actions over time. At 502, the data processing system 102 determines, from data collected during a first plurality of events, whether one or more actions were carried out during each of the first plurality of events. In one example, the one or more actions are associated with reducing fuel usage.
[0134] At 504, the data processing system 102 optionally determines a target associated with the one or more actions. Determining the target may comprise determining, at 506, a subset of the first plurality of events for which the one or more actions are not excluded from being carried out (e.g. by removing events for which the one or more actions are excluded from being carried out).
[0135] In one example, the determination of the subset of the first plurality of events at 506 comprises determining, for each event of the first plurality of events, whether the one or more actions are excluded from being carried out. This determination may comprise comprises inputting event conditions associated with the first one of the first plurality of events to a trained machine learning model configured to predict, based on the event conditions, whether performance of the one or more actions is excluded. The trained machine learning model may be trained using a training dataset comprising event conditions for a plurality of training events. In addition, the training dataset further comprises an indication, for each of the plurality of training events, of whether the one or more actions were excluded or not, which serves as a ground truth during training of the machine learning model.
[0136] Then, at 508, the data processing system 102 may determine the target associated with the one or more actions by applying a percentage target to the subset of the first plurality of events determined at 506.
[0137] At 510, the data processing system 102 determines, from the data collected during the first plurality of events, whether the target associated with the one or more actions is met (optionally for a predetermined number of consecutive time periods, such as for three months). If so, then the data processing system 102 increases the target at 514. If the target is not met, then the data processing system 102 maintains the target at 512.
[0138] The increased target may be an increase to the percentage target applied at 508, in which case the data processing system 102 may carry out steps 504 to 508 for a second plurality of events that occur after the first plurality of events when increasing the target at 514, in order to determine the increased target associated with the second plurality of events.
[0139] Where the target is increased at 514, the data processing system 102 determines, at 516, from data collected during the second plurality of events, whether the one or more actions were carried out during each of the second plurality of events. Then, at 518, the data processing system 102 determines whether the increased target associated with the one or more actions is met. If so, the then the data processing system 102 increases the target at 522, but if not, then the data processing system maintains the target at 520. In each case, the method 500 may then return to 514 for a determination of whether the one or more actions were carried out during each of a subsequent plurality of events.
[0140] The first and second pluralities of events may each comprise a plurality of flights piloted by an individual (e.g. a pilot), in which case the one or more actions may comprise one or more actions carried out by the individual. Alternatively, the first and second pluralities of events may each comprise a plurality of sea days of a vessel. In the latter case, the one or more actions may comprise one or more actions carried out by an individual (e.g. an engineer) on board the vessel, or one or more actions carried on board the vessel generally (e.g. by the crew of the vessel).
[0141] FIG. 6 is a schematic and simplified representation of a computer apparatus 600 which can be used to perform the methods described herein (e.g. the method 400 and / or the method 500 described above), either alone, in combination with other computer apparatuses or as part of a “cloud” computing arrangement.
[0142] The computer apparatus 600 comprises various data processing resources such as a processor 602 (in particular a hardware processor) coupled to a central bus structure. Also connected to the bus structure are further data processing resources such as memory 604. A display adapter 606 connects a display device 608 to the bus structure. One or more user-input device adapters 610 connect a user-input device 612, such as a keyboard and / or a mouse to the bus structure. One or more communications adapters 614 are also connected to the bus structure to provide connections to other computer systems and other networks.
[0143] In operation, the processor 602 of computer apparatus 600 executes a computer program comprising computerexecutable instructions that may be stored in memory 604. When executed, the computer-executable instructions may cause the computer apparatus 600 to perform one or more of the methods described herein, such as the method 300 and / or the method 400 described above (thereby causing the computer apparatus 600 to carry out the functionality of the data processing system 102 shown in FIG. 1). The results of the processing performed may be displayed to a user via the display adapter 606 and display device 608. User inputs for controlling the operation of the computer apparatus 600 may be received via the user-input device adapters 610 from the user-input devices 612.
[0144] It will be apparent that some features of computer apparatus 600 shown in FIG. 6 may be absent in certain cases. For example, one or more computer apparatuses 600 may have no need for display adapter 606 or display device 608. This may be the case, for example, for particular server-side computer apparatuses 600 which are used only for their processing capabilities and do not need to display information to users. Similarly, user input device adapter 610 and user input device 612 may not be required. In its simplest form, computer apparatus 600 comprises processor 602 and memory 604.
[0145] Variations or modifications to the systems and methods described herein are set out in the following paragraphs.
[0146] Although the data ingestion module 110 of FIG. 1 is described as receiving three files, more files or fewer files may be pre-processed by the data ingestion module 110. For example, the data ingestion module 110 may process additional files such as files containing weather data, and airport systems data such as the amount of traffic at an airport. For some implementations, it may be possible to determine the one or more actions based only on a single file received after the event, in which case the data ingestion module 110 will not need to generate a complete pre-processed file 240 that contains data from multiple files. Instead, the data ingestion module 110 may simply extract the data needed in order for the data processing module 150 to determine the one or more actions. Although specific unique identifiers 222, 224 are mentioned above for matching data from one type of file with data from a different type of file, it will be appreciated that other fields may be used to generate the unique identifiers. The specific unique identifier used to join data from two files will depend on the nature of the data in the two files.
[0147] The described methods may be implemented using computer executable instructions. A computer program product or computer readable medium may comprise or store the computer executable instructions. The computer program product or computer readable medium may comprise a hard disk drive, a flash memory, a read-only memory (ROM), a CD, a DVD, a cache, a random-access memory (RAM) and / or any other storage media in which information is stored for any duration (e.g., for extended time periods, permanently, brief instances, for temporarily buffering, and / or for caching of the information). A computer program may comprise the computer executable instructions. The computer readable medium may be a tangible or non-transitory computer readable medium. The term “computer readable” encompasses “machine readable”.
[0148] The singular terms “a” and “an” should not be taken to mean “one and only one”. Rather, they should be taken to mean “at least one” or “one or more” unless stated otherwise. The word “comprising” and its derivatives including “comprises” and “comprise” include each of the stated features, but does not exclude the inclusion of one or more further features.
[0149] The above implementations have been described by way of example only, and the described implementations are to be considered in all respects only as illustrative and not restrictive. It will be appreciated that variations of the described implementations may be made without departing from the scope of the invention. It will also be apparent that there are many variations that have not been described, but that fall within the scope of the appended claims.
[0150] The following numbered clauses set out feature combinations that are useful for understanding the present disclosure:
[0151] 1 .A computer-implemented method, comprising: receiving a first file (210) of a first file type, wherein the first file (210) includes an identifier of an event and wherein the first file (210) is available prior to the event; storing data extracted from the first file (210) as a pre-processed file (220) in a first data store (130); receiving a second file (230) of a second file type, wherein the second file (230) includes data collected during the event and wherein the second file (230) is not available until after the event; updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate a complete pre-processed file (240); and determining, from the complete pre-processed file (240), whether one or more actions were carried out during the event.
[0152] 2. The computer-implemented method of clause 1 , wherein each of the one or more actions is associated with reducing fuel usage during the event.
[0153] 3. The computer-implemented method of clause 1 or clause 2, wherein the first file (210) is available from a first data source and the second file (230) is available from a second data source different to the first data source. 4. The computer-implemented method of any of clauses 1 to 3, wherein the method further comprises discarding data not extracted from the first file (210).
[0154] 5. The computer-implemented method of any of clauses 1 to 4, further comprising storing the complete pre-processed file (240) in a second data store (140).
[0155] 6. The computer-implemented method of clause 5, wherein determining, from the complete pre-processed file (240), whether the one or more actions were carried out during the event comprises querying the complete pre-processed file (240) in the second data store (140).
[0156] 7. The computer-implemented method of any of clauses 1 to 6, wherein the data extracted from the first file (210) comprises data identifying an individual associated with the event.
[0157] 8. The computer-implemented method of any of clauses 1 to 7, wherein the second file (230) comprises flight data collected by a flight data recorder (132) on board an aircraft (134).
[0158] 9. The computer-implemented method of clause 8, wherein the one or more actions comprise one or more of: continuous descent of the aircraft (134); reduced engine usage during outbound taxiing; reduced engine usage during inbound taxiing; optimal discretionary fuel loading; idle thrust state of engines during landing; usage of a projected amount of fuel or less during a flight identified by the flight data; delaying deployment of a specific flaps setting until after a threshold distance from a runway; continuous climb of the aircraft (134); and switching from an auxiliary power unit of the aircraft (134) to ground power at an airport.
[0159] 10. The computer-implemented method of any of clauses 1 to 7, wherein the second file (230) comprises data collected by sensors (308) on board a vessel (300).
[0160] 1 1. The computer-implemented method of clause 10, wherein the data collected by the sensors (308) comprises data identifying power generated by one or more generators (302) on board the vessel (300) and data identifying a power demand of one or more electrical systems (304, 306) on board the vessel (300).
[0161] 12. The computer-implemented method of clause 11 , wherein the one or more actions comprise an amount of time taken to reduce an imbalance between the power generated by the one or more generators (302) and the power demand of the one or more electrical systems (304, 306). 13. The computer-implemented method of any of clauses 1 to 12, wherein storing data extracted from the first file (210) as the pre-processed file (220) in the first data store (130) comprises: determining, from data stored in the first file (210), a first unique identifier (222) associated with the first file (210); querying the first data store (130) using the first unique identifier (222) to determine whether the first data store (130) includes a pre-processed file (220) identified using the first unique identifier (222); and responsive to determining that the first data store (130) includes the pre-processed file (220), creating an updated pre-processed file (220) by updating the pre-processed file (220) in the first data store (130) using data from the first file (210), wherein the pre-processed file (220) includes data extracted from a third file of a third file type; wherein updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate the complete pre-processed file (240) comprises updating the updated pre-processed file (220) in the first data store (130).
[0162] 14. The computer-implemented method of clause 13 when dependent on clause 3, wherein the third file is available from a third data source different to the first data source.
[0163] 15. The computer-implemented method of clause 13 or clause 14, wherein updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate the complete pre-processed file (240) comprises: determining, from data stored in the second file (230), a second unique identifier (224) associated with the second file (230); querying the first data store (130) using the second unique identifier (224) to determine whether the first data store (130) includes the updated pre-processed file (220); responsive to determining that the first data store (130) includes the updated pre-processed file (220): updating the updated pre-processed file (220) using data from the second file (230) to generate the complete pre- processed file (240).
[0164] 16. The computer-implemented method of clause 15, wherein determining the second unique identifier (224) associated with the second file (230) comprises: determining that there is no exact match between the second unique identifier (224) and a pre-processed file (220) stored in the first data store (130); and modifying the second unique identifier (224) by replacing a component value of the second unique identifier (224) with a range of component values.
[0165] 17. The computer-implemented method of any of clauses 1 to 16, further comprising determining, from data collected during multiple events, whether a target associated with the one or more actions is met.
[0166] 18. The computer-implemented method of clause 17 when dependent on clause 7, further comprising outputting, to a computing device (192) associated with the individual, an indication of whether the target was met.
[0167] 19. The computer-implemented method of clause 17 or clause 18, further comprising: in response to determining that the target was met, increasing the target.
[0168] 20. The computer-implemented method of clause 19, wherein the target is increased in response to determining that the target has been met during each of a predetermined number of consecutive time periods.
[0169] 21. A computer-implemented method, comprising: determining, from data stored in a file (230), a unique identifier (224) associated with the file (230); determining that there is no exact match between the unique identifier (224) and a pre-processed file (220) in a first data store (130); modifying the unique identifier (224) by replacing a component value of the unique identifier (224) with a range of component values; querying the first data store (130) using the unique identifier (224); determining that the first data store (130) includes the pre-processed file (220); and updating the pre-processed file (220) using data from the file (230) to generate a complete pre-processed file (240).
[0170] 22. The computer-implemented method of clause 21 , wherein: the file (230) is a second file, and wherein the pre-processed file stores data extracted from a first file (210); wherein the first file (210) includes an identifier of an event and the first file (210) is available prior to the event; and wherein the second file (230) includes data collected during the event and the second file (230) is not available until after the event.
[0171] 23. The computer-implemented method of clause 21 or clause 22, further comprising determining, from the complete pre-processed file (240), whether one or more actions were carried out during the event.
[0172] 24. The computer-implemented method of clause 23, wherein each of the one or more actions is associated with reducing fuel usage during the event.
[0173] 25. The computer-implemented method of any of clauses 22 to 24 when dependent on clause 22, wherein the first file (210) is available from a first data source and the second file (230) is available from a second data source different to the first data source.
[0174] 26. The computer-implemented method of any of clauses 21 to 25, further comprising storing the complete pre-processed file (240) in a second data store (140).
[0175] 27. The computer-implemented method of clause 26 when dependent on clause 23, wherein determining, from the complete pre-processed file (240), whether one or more actions were carried out during the event comprises querying the complete pre-processed file (240) in the second data store.
[0176] 28. The computer-implemented method of any of clauses 22 to 27 when dependent on clause 22, wherein the data extracted from the first file (210) comprises data identifying an individual associated with the event. 29. The computer-implemented method of any of clauses 21 to 28, wherein the file (230) comprises flight data collected by a flight data recorder (132) on board an aircraft (134).
[0177] 30. The computer-implemented method of clause 29 when dependent on clause 23, wherein the one or more actions comprise one or more of: continuous descent of the aircraft (134); reduced engine usage during outbound taxiing; reduced engine usage during inbound taxiing; optimal discretionary fuel loading; idle thrust state of engines during landing; usage of a projected amount of fuel or less during a flight identified by the flight data; delaying deployment of a specific flaps setting until after a threshold distance from a runway; continuous climb of the aircraft (134); and switching from an auxiliary power unit of the aircraft (134) to ground power at an airport.
[0178] 31. The computer-implemented method of any of clauses 21 to 28, wherein the file (230) comprises data collected by sensors (308) on board a vessel (300).
[0179] 32. The computer-implemented method of clause 31 , wherein the data collected by the sensors (308) comprises data identifying power generated by one or more generators (302) on board the vessel (300) and data identifying a power demand of one or more electrical systems (304, 306) on board the vessel (300).
[0180] 33. The computer-implemented method of clause 32 when dependent on clause 23, wherein the one or more actions comprise an amount of time taken to reduce an imbalance between the power generated by the one or more generators (302) and the power demand of the one or more electrical systems (304, 306).
[0181] 34. The computer-implemented method of any of clauses 22 to 33 when dependent on clause 22, further comprising storing data extracted from the first file (210) as the pre-processed file (220) in the first data store (130).
[0182] 35. The computer-implemented method of clause 34, wherein the unique identifier (224) is a second unique identifier (224), and wherein storing the data extracted from the first file (210) as the pre-processed file (220) comprises: determining, from data stored in the first file (210), a first unique identifier (222) associated with the first file (210); querying the first data store (130) using the first unique identifier (222) to determine whether the first data store (130) includes a pre-processed file (220) identified using the first unique identifier (222); responsive to determining that the first data store (130) includes the pre-processed file (220), creating an updated pre-processed file (220) by updating the pre-processed file (220) in the first data store (130) using data from the first file (210), wherein the pre-processed file (220) includes data extracted from a third file of a third file type; wherein updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate the complete pre-processed file (240) comprises updating the updated pre-processed file (220) in the first data store (130).
[0183] 36. The computer-implemented method of clause 35 when dependent on clause 25, wherein the third file is available from a third data source different to the first data source.
[0184] 37. The computer-implemented method of any of clauses 23 to 36 when dependent on clause 23, further comprising determining, from data collected during multiple events, whether a target associated with the one or more actions is met.
[0185] 38. The computer-implemented method of clause 37 when dependent on clause 28, further comprising outputting, to a computing device (192) associated with the individual, an indication of whether the target was met.
[0186] 39. The computer-implemented method of clause 37 or clause 38, further comprising: in response to determining that the target was met, increasing the target.
[0187] 40. The computer-implemented method of clause 39, wherein the target is increased in response to determining that the target has been met during each of a predetermined number of consecutive time periods.
[0188] 41. A computer-implemented method, comprising: determining, from data collected during a first plurality of events, whether one or more actions were carried out during each of the first plurality of events; determining, from the data collected during the first plurality of events, whether a target associated with the one or more actions is met; responsive to determining that the target is met, increasing the target; determining, from data collected during a second plurality of events, whether the one or more actions were carried out during each of the second plurality of events; and determining, from the data collected during the second plurality of events, whether the increased target associated with the one or more actions is met.
[0189] 42. The computer-implemented method of clause 41 , wherein each of the one or more actions is associated with reducing fuel usage.
[0190] 43. The computer-implemented method of clause 41 or clause 42, wherein the first plurality of events and the second plurality of events each comprise a plurality of flights piloted by an individual.
[0191] 44. The computer-implemented method of clause 41 or clause 42, wherein the first plurality of events and the second plurality of events each comprise a plurality of sea days of a vessel (300). 45. The computer-implemented method of clause 44, wherein the one or more actions comprise one or more actions carried out by an individual on board the vessel (300).
[0192] 46. The computer-implemented method of clause 44, wherein the one or more actions comprise one or more actions carried out on board the vessel (300).
[0193] 47. The computer-implemented method of clause 43 or clause 45, further comprising outputting, to a computing device (192) associated with the individual, an indication that the target was met.
[0194] 48. The computer-implemented method of any of clauses 41 to 47, wherein the target is increased in response to determining that the target has been met during each of a predetermined number of consecutive time periods.
[0195] 49. The computer-implemented method of any of clauses 41 to 48, wherein determining whether one or more actions were carried out during each of the first plurality of events comprises, for each of the first plurality of events: receiving a first file (210) of a first file type, wherein the first file (210) includes an identifier of an event and wherein the first file (210) is available prior to the event; storing data extracted from the first file (210) as a pre-processed file (220) in a first data store (130); receiving a second file (230) of a second file type, wherein the second file (230) includes data collected during the event and wherein the second file (230) is not available until after the event; updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate a complete pre-processed file (240); and determining, from the complete pre-processed file (240), whether one or more actions were carried out during the event.
[0196] 50. The computer-implemented method of clause 49, wherein the first file (210) is available from a first data source and the second file (230) is available from a second data source different to the first data source.
[0197] 51. The computer-implemented method of clause 49 or clause 50, wherein the method further comprises discarding data not extracted from the first file (210).
[0198] 52. The computer-implemented method of any of clauses 49 to 51 , further comprising storing the complete pre-processed file (240) in a second data store (140).
[0199] 53. The computer-implemented method of clause 52, wherein determining, from the complete pre-processed file (240), whether the one or more actions were carried out during the event comprises querying the complete pre-processed file (240) in the second data store.
[0200] 54. The computer-implemented method of any of clauses 49 to 53 when dependent on clause 43 or clause 45, wherein the data extracted from the first file (210) comprises data identifying the individual associated with the event. 55. The computer-implemented method of any of clauses 49 to 54 when dependent on clause 43, wherein the second file (230) comprises flight data collected by a flight data recorder (132) on board an aircraft (134).
[0201] 56. The computer-implemented method of clause 55, wherein the one or more actions comprise one or more of: continuous descent of the aircraft (134); reduced engine usage during outbound taxiing; reduced engine usage during inbound taxiing; optimal discretionary fuel loading; idle thrust state of engines during landing; usage of a projected amount of fuel or less during a flight identified by the flight data; delaying deployment of a specific flaps setting until after a threshold distance from a runway; continuous climb of the aircraft (134); and switching from an auxiliary power unit of the aircraft (134) to ground power at an airport.
[0202] 57. The computer-implemented method of any of clauses 49 to 54 when dependent on clause 45, wherein the second file (220) comprises data collected by sensors (308) on board a vessel (300).
[0203] 58. The computer-implemented method of clause 57, wherein the data collected by the sensors (308) comprises data identifying power generated by one or more generators (302) on board the vessel (300) and data identifying a power demand of one or more electrical systems (304, 306) on board the vessel (300).
[0204] 59. The computer-implemented method of clause 58, wherein the one or more actions comprise an amount of time taken to reduce an imbalance between the power generated by the one or more generators (302) and the power demand of the one or more electrical systems (304, 306).
[0205] 60. The computer-implemented method of any of clauses 49 to 59, wherein storing data extracted from the first file (210) as the pre-processed file (220) in the first data store (130) comprises: determining, from data stored in the first file (210), a first unique identifier (222) associated with the first file (210); querying the first data store (130) using the first unique identifier (222) to determine whether the first data store (130) includes a pre-processed file (220) identified using the first unique identifier (222); and responsive to determining that the first data store (130) includes the pre-processed file (220), creating an updated pre-processed file (220) by updating the pre-processed file (220) in the first data store (130) using data from the first file (210), wherein the pre-processed file (220) includes data extracted from a third file of a third file type; wherein updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate the complete pre-processed file (240) comprises updating the updated pre-processed file (220) in the first data store (130).
[0206] 61. The computer-implemented method of clause 60 when dependent on clause 50, wherein the third file is available from a third data source different to the first data source. 62. The computer-implemented method of clause 60 or clause 61 , wherein updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate the complete pre-processed file (240) comprises: determining, from data stored in the second file (230), a second unique identifier (224) associated with the second file (230); querying the first data store (130) using the second unique identifier (224) to determine whether the first data store (130) includes the updated pre-processed file (220); and responsive to determining that the first data store (130) includes the updated pre-processed file (220): updating the updated pre-processed file (220) using data from the second file (230) to generate the complete pre- processed file (240).
[0207] 63. The computer-implemented method of clause 62, wherein determining the second unique identifier (224) associated with the second file (230) comprises: determining that there is no exact match between the second unique identifier (224) and a pre-processed file (220) stored in the first data store (130); and modifying the second unique identifier (224) by replacing a component value of the second unique identifier (224) with a range of component values.
[0208] 64. The computer-implemented method of any of clauses 41 to 63, further comprising determining the target associated with the one or more actions, wherein determining the target comprises: determining a subset of the first plurality of events for which the one or more actions are not excluded from being carried out; and determining the target by applying a percentage target to the subset of the first plurality of events.
[0209] 65. The computer-implemented method of clause 64, wherein determining the subset of the first plurality of events comprises determining, for each event of the first plurality of events, whether the one or more actions are excluded from being carried out.
[0210] 66. The computer-implemented method of clause 65, wherein for a first one of the first plurality of events, determining whether the one or more actions are excluded from being carried out comprises inputting event conditions associated with the first one of the first plurality of events to a trained machine learning model configured to predict, based on the event conditions, whether performance of the one or more actions is excluded; wherein the trained machine learning model is trained using a training dataset comprising event conditions for a plurality of training events, wherein the training dataset further comprises an indication, for each of the plurality of training events, of whether the one or more actions were excluded or not.
[0211] 67. A computer-readable medium comprising instructions which, when executed by one or more processors of one or more computing devices, cause the one or more computing devices to carry out the method of any of clauses 1 to 66. List of reference numbers
[0212] 100 Data processing environment
[0213] 102 Data processing system
[0214] 110 Data ingestion module
[0215] 120 Plurality of data sources
[0216] 122 Flight schedule datastore
[0217] 124 Flight plan datastore
[0218] 126 Flight data datastore
[0219] 130 First data warehouse
[0220] 132 Flight data recorder
[0221] 134 Aircraft
[0222] 140 Second data warehouse
[0223] 150 Data processing module
[0224] 160 Individual action datastore
[0225] 170 Prediction model
[0226] 180 Target setting module
[0227] 190 Target evaluation module
[0228] 192 Computing device
[0229] 210 First file
[0230] 220 Pre-processed file
[0231] 222 First unique identifier
[0232] 224 Second unique identifier
[0233] 230 Second file
[0234] 240 Complete pre-processed file
[0235] 250 Individual action record
[0236] 300 Vessel
[0237] 302 Generator
[0238] 304 Lighting systems
[0239] 306 Ballast pumps
[0240] 308 Sensors
[0241] 400 First method
[0242] 402 Receiving a first file of a first file type
[0243] 404 Extracting data from the first file
[0244] 406 Discarding data not extracted from the first file
[0245] 408 Storing data extracted from the first file as a pre-processed file
[0246] 410 Determining a first unique identifier associated with the first file
[0247] 412 Querying the first data store using the first unique identifier
[0248] 414 Creating an updated pre-processed file
[0249] 416 Creating the pre-processed file
[0250] 418 Storing the pre-processed file in the first data store 420 Receiving a second file of a second file type
[0251] 422 Extracting data from the second file
[0252] 424 Updating the pre-processed file in the first data store
[0253] 426 Determining a second unique identifier associated with the second file
[0254] 428 Determining whether there is an exact match between the second unique identifier and a pre-processed file in the first data store
[0255] 430 Modifying the second unique identifier
[0256] 432 Querying the first data store using the second unique identifier
[0257] 434 Updating the pre-processed file using data extracted from the second file
[0258] 436 Storing the complete pre-processed file in a second data store
[0259] 438 Determining whether one or more actions were carried out during the event
[0260] 440 Determining whether a target associated with the one or more actions is met
[0261] 442 Outputting an indication of whether the target was met
[0262] 444 Determining whether the target has been met during each of a predetermined number of consecutive time periods
[0263] 446 Increasing the target
[0264] 448 Maintaining the target
[0265] 500 Second method
[0266] 502 Determining whether one or more actions were carried out during each of a first plurality of events
[0267] 504 Determining a target associated with the one or more actions
[0268] 506 Determining a subset of the first plurality of events for which the one or more actions are not excluded
[0269] 508 Applying a percentage target to the subset of the first plurality of events
[0270] 510 Determining whether the target associated with the one or more actions is met
[0271] 512 Maintaining the target
[0272] 514 Increasing the target
[0273] 516 Determining whether the one or more actions were carried out during each of a second plurality of events
[0274] 518 Determining whether the increased target associated with the one or more actions is met
[0275] 520 Maintaining the target
[0276] 522 Increasing the target
[0277] 600 Computer apparatus
[0278] 602 Processor
[0279] 604 Memory
[0280] 606 Display adapter
[0281] 608 Display device
[0282] 610 User-input device adapter
[0283] 612 User-input device
[0284] 614 Communications adapter
Claims
Claims1 . A computer-implemented method, comprising: receiving a first file (210) of a first file type, wherein the first file (210) includes an identifier of an event and wherein the first file (210) is available prior to the event; storing data extracted from the first file (210) as a pre-processed file (220) in a first data store (130); receiving a second file (230) of a second file type, wherein the second file (230) includes data collected during the event and wherein the second file (230) is not available until after the event; updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate a complete pre-processed file (240); and determining, from the complete pre-processed file (240), whether one or more actions were carried out during the event.
2. The computer-implemented method of claim 1 , wherein each of the one or more actions is associated with reducing fuel usage during the event.
3. The computer-implemented method of claim 1 or claim 2, wherein the first file (210) is available from a first data source and the second file (230) is available from a second data source different to the first data source.
4. The computer-implemented method of any of claims 1 to 3, wherein the method further comprises discarding data not extracted from the first file (210).
5. The computer-implemented method of any of claims 1 to 4, further comprising storing the complete pre- processed file (240) in a second data store (140).
6. The computer-implemented method of claim 5, wherein determining, from the complete pre-processed file (240), whether the one or more actions were carried out during the event comprises querying the complete pre-processed file (240) in the second data store (140).
7. The computer-implemented method of any of claims 1 to 6, wherein the data extracted from the first file (210) comprises data identifying an individual associated with the event.
8. The computer-implemented method of any of claims 1 to 7, wherein the second file (230) comprises flight data collected by a flight data recorder (132) on board an aircraft (134).
9. The computer-implemented method of claim 8, wherein the one or more actions comprise one or more of: continuous descent of the aircraft (134); reduced engine usage during outbound taxiing; reduced engine usage during inbound taxiing; optimal discretionary fuel loading;idle thrust state of engines during landing; usage of a projected amount of fuel or less during a flight identified by the flight data; delaying deployment of a specific flaps setting until after a threshold distance from a runway; continuous climb of the aircraft (134); and switching from an auxiliary power unit of the aircraft (134) to ground power at an airport.
10. The computer-implemented method of any of claims 1 to 7, wherein the second file (230) comprises data collected by sensors (308) on board a vessel (300).
11. The computer-implemented method of claim 10, wherein the data collected by the sensors (308) comprises data identifying power generated by one or more generators (302) on board the vessel (300) and data identifying a power demand of one or more electrical systems (304, 306) on board the vessel (300).
12. The computer-implemented method of claim 11 , wherein the one or more actions comprise an amount of time taken to reduce an imbalance between the power generated by the one or more generators (302) and the power demand of the one or more electrical systems (304, 306).
13. The computer-implemented method of any of claims 1 to 12, wherein storing data extracted from the first file (210) as the pre-processed file (220) in the first data store (130) comprises: determining, from data stored in the first file (210), a first unique identifier (222) associated with the first file (210); querying the first data store (130) using the first unique identifier (222) to determine whether the first data store (130) includes a pre-processed file (220) identified using the first unique identifier (222); and responsive to determining that the first data store (130) includes the pre-processed file (220), creating an updated pre-processed file (220) by updating the pre-processed file (220) in the first data store (130) using data from the first file (210), wherein the pre-processed file (220) includes data extracted from a third file of a third file type; wherein updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate the complete pre-processed file (240) comprises updating the updated pre-processed file (220) in the first data store (130).
14. The computer-implemented method of claim 13 when dependent on claim 3, wherein the third file is available from a third data source different to the first data source.
15. The computer-implemented method of claim 13 or claim 14, wherein updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate the complete pre-processed file (240) comprises: determining, from data stored in the second file (230), a second unique identifier (224) associated with the second file (230); querying the first data store (130) using the second unique identifier (224) to determine whether the first data store (130) includes the updated pre-processed file (220); and responsive to determining that the first data store (130) includes the updated pre-processed file (220):updating the updated pre-processed file (220) using data from the second file (230) to generate the complete pre- processed file (240).
16. The computer-implemented method of claim 15, wherein determining the second unique identifier (224) associated with the second file (230) comprises: determining that there is no exact match between the second unique identifier (224) and a pre-processed file (220) stored in the first data store (130); and modifying the second unique identifier (224) by replacing a component value of the second unique identifier (224) with a range of component values.
17. The computer-implemented method of any of claims 1 to 16, further comprising determining, from data collected during multiple events, whether a target associated with the one or more actions is met.
18. The computer-implemented method of claim 17 when dependent on claim 7, further comprising outputting, to a computing device (192) associated with the individual, an indication of whether the target was met.
19. The computer-implemented method of claim 17 or claim 18, further comprising: in response to determining that the target was met, increasing the target.
20. The computer-implemented method of claim 19, wherein the target is increased in response to determining that the target has been met during each of a predetermined number of consecutive time periods.21 . A computer-implemented method, comprising: determining, from data stored in a file (230), a unique identifier (224) associated with the file (230); determining that there is no exact match between the unique identifier (224) and a pre-processed file (220) in a first data store (130); modifying the unique identifier (224) by replacing a component value of the unique identifier (224) with a range of component values; querying the first data store (130) using the unique identifier (224); determining that the first data store (130) includes the pre-processed file (220); and updating the pre-processed file (220) using data from the file (230) to generate a complete pre-processed file (240).
22. The computer-implemented method of claim 21 , wherein: the file (230) is a second file, and wherein the pre-processed file stores data extracted from a first file (210); wherein the first file (210) includes an identifier of an event and the first file (210) is available prior to the event; and wherein the second file (230) includes data collected during the event and the second file (230) is not available until after the event.
23. The computer-implemented method of claim 21 or claim 22, further comprising determining, from the complete pre-processed file (240), whether one or more actions were carried out during the event.
24. The computer-implemented method of claim 23, wherein each of the one or more actions is associated with reducing fuel usage during the event.
25. The computer-implemented method of any of claims 22 to 24 when dependent on claim 22, wherein the first file (210) is available from a first data source and the second file (230) is available from a second data source different to the first data source.
26. The computer-implemented method of any of claims 21 to 25, further comprising storing the complete pre-processed file (240) in a second data store (140).
27. The computer-implemented method of claim 26 when dependent on claim 23, wherein determining, from the complete pre-processed file (240), whether one or more actions were carried out during the event comprises querying the complete pre-processed file (240) in the second data store.
28. The computer-implemented method of any of claims 22 to 27 when dependent on claim 22, wherein the data extracted from the first file (210) comprises data identifying an individual associated with the event.
29. The computer-implemented method of any of claims 21 to 28, wherein the file (230) comprises flight data collected by a flight data recorder (132) on board an aircraft (134).
30. The computer-implemented method of claim 29 when dependent on claim 23, wherein the one or more actions comprise one or more of: continuous descent of the aircraft (134); reduced engine usage during outbound taxiing; reduced engine usage during inbound taxiing; optimal discretionary fuel loading; idle thrust state of engines during landing; usage of a projected amount of fuel or less during a flight identified by the flight data; delaying deployment of a specific flaps setting until after a threshold distance from a runway; continuous climb of the aircraft (134); and switching from an auxiliary power unit of the aircraft (134) to ground power at an airport.31 . The computer-implemented method of any of claims 21 to 28, wherein the file (230) comprises data collected by sensors (308) on board a vessel (300).
32. The computer-implemented method of claim 31 , wherein the data collected by the sensors (308) comprises data identifying power generated by one or more generators (302) on board the vessel (300) and data identifying a power demand of one or more electrical systems (304, 306) on board the vessel (300).
33. The computer-implemented method of claim 32 when dependent on claim 23, wherein the one or more actions comprise an amount of time taken to reduce an imbalance between the power generated by the one or more generators (302) and the power demand of the one or more electrical systems (304, 306).
34. The computer-implemented method of any of claims 22 to 33 when dependent on claim 22, further comprising storing data extracted from the first file (210) as the pre-processed file (220) in the first data store (130).
35. The computer-implemented method of claim 34, wherein the unique identifier (224) is a second unique identifier (224), and wherein storing the data extracted from the first file (210) as the pre-processed file (220) comprises: determining, from data stored in the first file (210), a first unique identifier (222) associated with the first file (210); querying the first data store (130) using the first unique identifier (222) to determine whether the first data store (130) includes a pre-processed file (220) identified using the first unique identifier (222); responsive to determining that the first data store (130) includes the pre-processed file (220), creating an updated pre-processed file (220) by updating the pre-processed file (220) in the first data store (130) using data from the first file (210), wherein the pre-processed file (220) includes data extracted from a third file of a third file type; wherein updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate the complete pre-processed file (240) comprises updating the updated pre-processed file (220) in the first data store (130).
36. The computer-implemented method of claim 35 when dependent on claim 25, wherein the third file is available from a third data source different to the first data source.
37. The computer-implemented method of any of claims 23 to 36 when dependent on claim 23, further comprising determining, from data collected during multiple events, whether a target associated with the one or more actions is met.
38. The computer-implemented method of claim 37 when dependent on claim 28, further comprising outputting, to a computing device (192) associated with the individual, an indication of whether the target was met.
39. The computer-implemented method of claim 37 or claim 38, further comprising: in response to determining that the target was met, increasing the target.
40. The computer-implemented method of claim 39, wherein the target is increased in response to determining that the target has been met during each of a predetermined number of consecutive time periods.41 . A computer-implemented method, comprising: determining, from data collected during a first plurality of events, whether one or more actions were carried out during each of the first plurality of events; determining, from the data collected during the first plurality of events, whether a target associated with the one or more actions is met;responsive to determining that the target is met, increasing the target; determining, from data collected during a second plurality of events, whether the one or more actions were carried out during each of the second plurality of events; and determining, from the data collected during the second plurality of events, whether the increased target associated with the one or more actions is met.
42. The computer-implemented method of claim 41 , wherein each of the one or more actions is associated with reducing fuel usage.
43. The computer-implemented method of claim 41 or claim 42, wherein the first plurality of events and the second plurality of events each comprise a plurality of flights piloted by an individual.
44. The computer-implemented method of claim 41 or claim 42, wherein the first plurality of events and the second plurality of events each comprise a plurality of sea days of a vessel (300).
45. The computer-implemented method of claim 44, wherein the one or more actions comprise one or more actions carried out by an individual on board the vessel (300).
46. The computer-implemented method of claim 44, wherein the one or more actions comprise one or more actions carried out on board the vessel (300).
47. The computer-implemented method of claim 43 or claim 45, further comprising outputting, to a computing device (192) associated with the individual, an indication that the target was met.
48. The computer-implemented method of any of claims 41 to 47, wherein the target is increased in response to determining that the target has been met during each of a predetermined number of consecutive time periods.
49. The computer-implemented method of any of claims 41 to 48, wherein determining whether one or more actions were carried out during each of the first plurality of events comprises, for each of the first plurality of events: receiving a first file (210) of a first file type, wherein the first file (210) includes an identifier of an event and wherein the first file (210) is available prior to the event; storing data extracted from the first file (210) as a pre-processed file (220) in a first data store (130); receiving a second file (230) of a second file type, wherein the second file (230) includes data collected during the event and wherein the second file (230) is not available until after the event; updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate a complete pre-processed file (240); and determining, from the complete pre-processed file (240), whether one or more actions were carried out during the event.
50. The computer-implemented method of claim 49, wherein the first file (210) is available from a first data source and the second file (230) is available from a second data source different to the first data source.51 . The computer-implemented method of claim 49 or claim 50, wherein the method further comprises discarding data not extracted from the first file (210).
52. The computer-implemented method of any of claims 49 to 51 , further comprising storing the complete pre-processed file (240) in a second data store (140).
53. The computer-implemented method of claim 52, wherein determining, from the complete pre-processed file (240), whether the one or more actions were carried out during the event comprises querying the complete pre- processed file (240) in the second data store.
54. The computer-implemented method of any of claims 49 to 53 when dependent on claim 43 or claim 45, wherein the data extracted from the first file (210) comprises data identifying the individual associated with the event.
55. The computer-implemented method of any of claims 49 to 54 when dependent on claim 43, wherein the second file (230) comprises flight data collected by a flight data recorder (132) on board an aircraft (134).
56. The computer-implemented method of claim 55, wherein the one or more actions comprise one or more of: continuous descent of the aircraft (134); reduced engine usage during outbound taxiing; reduced engine usage during inbound taxiing; optimal discretionary fuel loading; idle thrust state of engines during landing; usage of a projected amount of fuel or less during a flight identified by the flight data; delaying deployment of a specific flaps setting until after a threshold distance from a runway; continuous climb of the aircraft (134); and switching from an auxiliary power unit of the aircraft (134) to ground power at an airport.
57. The computer-implemented method of any of claims 49 to 54 when dependent on claim 45, wherein the second file (220) comprises data collected by sensors (308) on board a vessel (300).
58. The computer-implemented method of claim 57, wherein the data collected by the sensors (308) comprises data identifying power generated by one or more generators (302) on board the vessel (300) and data identifying a power demand of one or more electrical systems (304, 306) on board the vessel (300).
59. The computer-implemented method of claim 58, wherein the one or more actions comprise an amount of time taken to reduce an imbalance between the power generated by the one or more generators (302) and the power demand of the one or more electrical systems (304, 306).
60. The computer-implemented method of any of claims 49 to 59, wherein storing data extracted from the first file (210) as the pre-processed file (220) in the first data store (130) comprises: determining, from data stored in the first file (210), a first unique identifier (222) associated with the first file (210); querying the first data store (130) using the first unique identifier (222) to determine whether the first data store (130) includes a pre-processed file (220) identified using the first unique identifier (222); and responsive to determining that the first data store (130) includes the pre-processed file (220), creating an updated pre-processed file (220) by updating the pre-processed file (220) in the first data store (130) using data from the first file (210), wherein the pre-processed file (220) includes data extracted from a third file of a third file type; wherein updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate the complete pre-processed file (240) comprises updating the updated pre-processed file (220) in the first data store (130).61 . The computer-implemented method of claim 60 when dependent on claim 50, wherein the third file is available from a third data source different to the first data source.
62. The computer-implemented method of claim 60 or claim 61 , wherein updating the pre-processed file (220) in the first data store (130) using data extracted from the second file (230) to generate the complete pre-processed file (240) comprises: determining, from data stored in the second file (230), a second unique identifier (224) associated with the second file (230); querying the first data store (130) using the second unique identifier (224) to determine whether the first data store (130) includes the updated pre-processed file (220); and responsive to determining that the first data store (130) includes the updated pre-processed file (220): updating the updated pre-processed file (220) using data from the second file (230) to generate the complete pre- processed file (240).
63. The computer-implemented method of claim 62, wherein determining the second unique identifier (224) associated with the second file (230) comprises: determining that there is no exact match between the second unique identifier (224) and a pre-processed file (220) stored in the first data store (130); and modifying the second unique identifier (224) by replacing a component value of the second unique identifier (224) with a range of component values.
64. The computer-implemented method of any of claims 41 to 63, further comprising determining the target associated with the one or more actions, wherein determining the target comprises:determining a subset of the first plurality of events for which the one or more actions are not excluded from being carried out; and determining the target by applying a percentage target to the subset of the first plurality of events.
65. The computer-implemented method of claim 64, wherein determining the subset of the first plurality of events comprises determining, for each event of the first plurality of events, whether the one or more actions are excluded from being carried out.
66. The computer-implemented method of claim 65, wherein for a first one of the first plurality of events, determining whether the one or more actions are excluded from being carried out comprises inputting event conditions associated with the first one of the first plurality of events to a trained machine learning model configured to predict, based on the event conditions, whether performance of the one or more actions is excluded; wherein the trained machine learning model is trained using a training dataset comprising event conditions for a plurality of training events, wherein the training dataset further comprises an indication, for each of the plurality of training events, of whether the one or more actions were excluded or not.
67. A computer-readable medium comprising instructions which, when executed by one or more processors of one or more computing devices, cause the one or more computing devices to carry out the method of any of claims 1 to 66.
Citation Information
Patent Citations
Wearable Device Having Athletic Functionality
US20130110264A1
Device, system and method for assisting a pilot of an aircraft
US20180292231A1
Real-time identification and provision of preferred flight parameters
US20190130769A1
System and method for controlling a vehicle system
US20190291757A1
System and method for controlling a propulsion system inverter
US20220227368A1