Brief intro to FRAM



The FRAM Sandbox Facility

Extending the capabilities of the FMV

There is an increasing interest in utilising the FRAM approach for the analysis of what exactly is going on in complex sociotechnical systems in practical high hazard environments. There are, for example, a number of ongoing projects at the moment in aviation, self-driving vehicles and, of course, on the challenges of the COVID 19 pandemic for healthcare responses. But as well as these practical applications there is an increasing interest from the academic community, in extending and developing further, the underpinning concepts, as shown in the recent review (below)

These groups are thus interested in taking the modelling power of the FRAM approach to the next level. Their interests include exploring in more detail how interactions occur and how the effects of variability can be addressed and predicted more formally, as well as enabling dynamic visualisation of processes and the quantification of expected outcomes.

What makes this now more attractive, has been the development of a rigorous model checking methodology, the FRAM Model Interpreter, FMI (Hollnagel, E,) ( )

To support these developments the FRAM Model Visualiser has also been given extra facilities, which now include an option to use, what is essentially a laboratory sand box to provide research laboratory experimental facilities for different groups to utilise.

From time to time, it is planned to add additional features that are still under development and not officially released as part of the FMV Pro version, but may be made available to groups for the purposes of experimentation and feedback from the users.


Building on the FMI functionality, the metadata feature in the FMV, now provides the ability to calculate metadata values as Functions are activated during the FMI cycles.

The manual details these here

The calculations are expressed as user defined equations that can reference other metadata keys, standard variables, standard mathematical functions, logic conditions, and mathematical operators. One or two resulting metadata values can then be expressed as a coloured visualisation within each function. The colours and value ranges can be customised by the user.

When you Ctrl-Click a Function, or select and press Ctrl-M, the metadata section will appear above the model in the visualiser window and display the extended features.

Key/Value pairs

The first two text boxes are for entering metadata as a list of key/value pairs, as is already available in the standard FMV Pro versions. A Key is entered in the first box shaded grey, but it will not be saved for the selected Function until a Value or an Equation is also entered for that Key. The corresponding Value is entered in the second text box.

When a Key is saved for a Function, It will be shown along with all saved Key names when any other Function is selected. As such, the Key names become common across all Functions. However, the corresponding Values are unique to each individual Function.

Key names can be used as Variable names and referenced in Equations if they start with a capital letter (this is to differentiate between Variables and mathematical functions).


To calculate the Value of a Key for a Function (when it is activated by the FMI) click the ‘=’ button and another text input box will appear for entering an equation.

Equations can contain Key names to reference other Values that appear above them in the same Function, or Standard Variables can be used to reference Values from upstream Functions, connected by couplings that are activated during the FMI cycles. This is explained in further sections.

To turn the equation off, click the ‘=’ button again (this is a toggle button) and the equation will disappear, it is still saved but will not be used to calculate the Value.

Functions/Variables List

The next section is a list of available mathematical functions and variables available for use in Equations. You can switch between these two types by using the Functions/Variables toggle buttons above the list. The Variables list is initially empty but will be populated as you create Keys and make selections within the model.

Display Results

The top colour range is used to display results in the inside top of each function, the bottom range in the inside bottom of each function. Click on any of the three main colour circles to change the colour. The intermediate colours are blended from the three main colours.

The number boxes below the colour ranges are used to convert the Values to the colour range for dsiplay.

The last two text boxes on the right labeled ‘Key 1’ and ‘Key 2’ are for selecting which of the Keys provide values for displaying the results, Key 1 for the top range and Key 2 for the bottom range.

A brief introduction to the FRAM

The understanding of the human role in accidents has gone through three stages.

  • In the classical view, humans were seen as error prone or as fallible machines. The purpose of an accident investigation was therefore often to find the "human error" that either was the primary (or even "root") cause or the initiating event.
  • When in the 1990s it was realised – gradually at first - that the "human error" view was not tenable, explanations changed to look for how performance shaping factors or performance conditions could “force” people to fail. This did not remove the concept of a "human error", but changed from an inherent human ‘error mechanisms’ to be a product of working conditions and work pressures.
  • Although this change for a while enabled people to understand accidents of a more complex nature, it still fell short in a number of situations. This led to the recognition, strongly supported by resilience engineering, that failures and successes have the same source, and that they metaphorically speaking are two sides of the same coin.

The Functional Resonance Analysis Method or FRAM (Hollnagel, 2004 & 2012) provides a way to describe outcomes using the idea of resonance arising from the variability of everyday performance. To arrive at a description of functional variability and resonance, and to lead to recommendations for damping unwanted variability, a FRAM analysis consists of four steps:

  • Identify and describe essential system functions, and characterise each function using the six basic characteristics (aspects). In the first version, only use describe the aspects that are necessary or relevant. The description can always be modified later.
  • Check the completeness / consistency of the model.
  • Characterise the potential variability of the functions in the FRAM model, a well as the possible actual variability of the functions in one or more instances of the model.
  • Define the functional resonance based on dependencies / couplings among functions and the potential for functional variability.
  • Identify ways to monitor the development of resonance either to dampen variability that may lead to unwanted outcomes or to amplify variability that may lead to wanted outcomes.

We are looking forward to seeing the results of using this new facility and seeing the range and scope of applications and studies significantly extended. Perhaps we will see some examples at the next FRAMily Workshop in Kyoto next year, COVID willing.

© Copyright Erik Hollnagel 2016. All Rights Reserved.