Design decisions and societal risk#
Design decision optimization and societal risk acceptance#
Design decision optimization with societal risk acceptance is normally applied after a reliability analysis has estimated \(p_f\) or \(\beta\). It does not require a different FORM, SORM, or simulation model. Instead, an economic objective is evaluated subject to a societal acceptability criterion. This follows the risk-based decision framing used in the JCSS risk assessment guidance [JCSS2008RiskAssessment] [KroonMaes2008RiskFramework] and the risk-informed decision principles codified in ISO 2394 [ISO2394]. PySTRA’s initial DDO criterion uses the life quality index (LQI) to define a minimum acceptable life-safety level with societal willingness to pay (SWTP) as the life-safety valuation, following the LQI method and the JCSS risk-assessment background documents and examples [Nathwani1997LQI] [Nathwani2009LifeQuality] [Rackwitz2002LQI] [Rackwitz2008LQI] [Streicher2008LQI] [Schubert2009LQI] [VanCoile2019ALARP].
For life-safety problems, the LQI literature expresses the societal willingness to pay (SWTP) to save one statistical life as a function of the gross domestic product available for risk reduction, the LQI work–leisure parameter, and a demographic life-time constant; mortality enters through the demographic constant rather than through that parameter. In the notation used by Rackwitz, this is of the form
where \(g\) is the income or GDP measure available for risk reduction,
\(q\) is the dimensionless LQI work–leisure (income-elasticity) parameter
(typically about 0.1–0.2, e.g. 0.175 in Schubert and Faber, 2009; it is not
an annual mortality rate), and \(C_x\) depends on the mortality reduction
scheme, discounting, and the predictive cohort life table
[Rackwitz2004Discounting]. In from_lqi() this parameter
is named work_leisure_parameter. This SWTP interpretation is developed in the LQI literature
[PandeyNathwani2004LQI] [PandeyNathwaniLind2006LQI] and used by
Rackwitz for structural reliability optimization and acceptability
[Rackwitz2002LQI]. The ra.decision.SWTP.from_lqi helper
(from_lqi()) implements the relationship for
user-supplied demographic values.
PySTRA also includes a small source-backed country table from Rackwitz’s JCSS background document [Rackwitz2008LQI]. The anchor values are the \(G_{\Delta \bar{l}}\) column in Table 7, in millions of 1999 PPPUS$:
Code |
Country |
SWTP [106 PPPUS$] |
|---|---|---|
CA |
Canada |
1.8 |
US |
USA |
2.1 |
AT |
Austria |
1.9 |
BE |
Belgium |
2.4 |
CZ |
Czech Republic |
0.54 |
DK |
Denmark |
1.7 |
FI |
Finland |
1.3 |
FR |
France |
1.9 |
DE |
Germany |
1.9 |
IT |
Italy |
1.8 |
NL |
Netherlands |
2.8 |
NO |
Norway |
1.8 |
ES |
Spain |
1.3 |
SE |
Sweden |
1.5 |
CH |
Switzerland |
1.8 |
GB |
United Kingdom |
1.7 |
JP |
Japan |
1.3 |
NZ |
New Zealand |
1.3 |
The anchor table is intentionally not overwritten with newer values. For
current studies, index_swtp_record() and
swtp_table(indexed=True) return a separately traceable indexed table.
High-level country-based LQI construction requires users to choose
indexed=True or indexed=False explicitly. The built-in indexed view
uses the World Bank WDI GDP per capita PPP indicator NY.GDP.PCAP.PP.CD to
scale each Rackwitz anchor value from 1999 to 2024 [WorldBankWDI]. This is a
practical update of the LQI income term \(g\); it is not a substitute for a
full recalculation of mortality tables, discounting, and age averaging.
Target reliabilities may be taken from published tables or calculated from an
explicit decision model. Rackwitz [Rackwitz2000CodeMaking] formulates the
code-making problem as an economic optimization in which the annual failure
rate is the natural reliability measure. Steenbergen, Rózsás, and
Vrouwenvelder [Steenbergen2018Target] revisit the same framework and
emphasize annual failure rates as a way to compare targets across design and
remaining working lives. In normalized form, the Rackwitz/Steenbergen model
implemented by RackwitzTargetModel maximizes
where \(p = E[R]/E[S]\), \(C(p)=C_0+C_1p\), \(\gamma\) is the discount or interest rate, \(\omega\) is the obsolescence rate, and \(\lambda\) is the load occurrence rate. PySTRA uses a closed-form lognormal resistance-demand model for \(P_f(p)\) in this calibration.
Every cost is normalized by the base construction cost \(C_0\)
(base_cost), so the model’s cost inputs are ratios to \(C_0\), mapped
to RackwitzTargetModel parameters as follows.
Symbol |
Parameter |
Meaning |
|---|---|---|
\(C_1/C_0\) |
|
marginal safety cost per unit of \(p\) |
\(H/C_0\) |
|
failure (ULS) consequence cost |
\(U/C_0\) |
|
serviceability (SLS) cost |
\(A/C_0\) |
|
demolition / obsolescence cost |
\(b/C_0\) |
|
constant annual benefit (independent of \(p\)) |
The rates \(\gamma\), \(\omega\), and \(\lambda\) are
interest_rate, obsolescence_rate, and load_occurrence_rate. Because
the objective is normalized by \(C_0\), the resulting target table depends
only on these relative cost and consequence ratios, not on a particular
jurisdiction. A table for other classes is recalculated by passing
safety_costs (the \(C_1/C_0\) values) and failure_costs (the
\(H/C_0\) values) to
table().
The calculated table is a direct optimization. It is not a reproduction of the rounded targets tabulated in the JCSS Probabilistic Model Code [JCSSPMC2001] (Part 1, Table 1) and ISO 2394 [ISO2394] (Table G.4). Those tables do not state the cost ratios and coefficients of variation behind each cell, and Steenbergen et al. [Steenbergen2018Target] treat each tabulated rate as an upper limit on the optimal rates within a class. With the Rackwitz [Rackwitz2000CodeMaking] base case (\(C_1/C_0 = 0.03\), \(H/C_0 = 3\), \(U/C_0 = A/C_0 = 0.2\)) graded by a decade in \(C_1/C_0\), and the default \(V_R = V_S = 0.3\), the model reproduces the normal-consequence column of Rackwitz’s own Table 1 (3.1, 3.7, 4.3). In this model, however, the optimum moves by about 0.6 in \(\beta\) for each decade of \(C_1/C_0\), but by only about 0.2 across the whole JCSS consequence range (\(H/C_0\) from below 1 to 9). The rounded tables step by 0.5 to 0.6 between consequence classes. With the default classes the large-consequence column is 3.25, 3.88 and 4.45, against the tabulated 3.7, 4.4 and 4.7. Use the calculation for a stated cost and uncertainty model, and the rounded tables as code-level targets.
Fischer, Barnardo, and Faber [Fischer2012LQI] provide a convenient LQI route for turning an SWTP value and expected fatalities given failure into minimum target reliabilities; the marginal life-saving cost underlying this route is examined in detail by Fischer et al. [Fischer2013MarginalCost]. For medium variability, define the safety cost ratio
where \(C_1(\gamma_S + \omega)\) is the marginal safety cost term and \(N_F\) is the expected number of fatalities given failure. The corresponding target classes are approximated as:
Safety cost ratio \(K_1\) |
Cost class |
\(\beta\) |
\(p_f\) |
|---|---|---|---|
\(10^{-3}\) to \(10^{-2}\) |
Large |
3.1 |
\(10^{-3}\) |
\(10^{-4}\) to \(10^{-3}\) |
Medium |
3.7 |
\(10^{-4}\) |
\(10^{-5}\) to \(10^{-4}\) |
Small |
4.2 |
\(10^{-5}\) |
Outside the tabulated range the lookup continues the table’s proportionality
between \(p_f\) and \(K_1\) from the nearest edge: \(p_f = K_1\)
below \(10^{-5}\) and \(p_f = K_1/10\) above \(10^{-2}\), labeled
"extrapolated". The failure probability is then continuous at both edges.
An extrapolated value is not a source-table value; the marginal calculation
below gives a target for a stated resistance-demand model.
For normal studies, ra.decision.LQI (LQI) builds this target
directly from a country SWTP value or a user-supplied SWTP value, expected
fatalities given failure or an explicit consequence model, and marginal safety
cost. ra.decision.LQI.lookup_target returns the rounded source-table target for a
given \(K_1\), while the lower-level lqi_k1() and
lqi_target_reliability() helpers remain available in
pystra.decision.ddo. When the underlying resistance-demand model should be
calculated instead of looked up, ra.decision.LQI.derive_target solves the marginal
target problem
ra.decision.DDO (DDO) then evaluates the selected objective and
criterion without changing the underlying stochastic model. The best feasible
alternative is obtained with DDO.optimize(); the unconstrained economic
optimum is available separately as DDO.economic_optimum().
For direct JCSS-style optimization, the canonical life-safety risk-cost term is
where \(C(p)\) is the safety or construction cost and \(h(p)\) is a failure rate or annual failure probability. The marginal acceptance condition is
ra.decision.LQI exposes these operations as methods such as
risk_cost, acceptability_margin_at, and acceptability_boundary.
The underlying
jcss_lqi_risk_cost() and
jcss_lqi_acceptability() functions remain available for
direct reproduction of the JCSS equations.
The current implementation separates an objective from an acceptability criterion and reserves solver logic for future work. This keeps LQI in its proper role as a minimum safety criterion rather than the optimizer itself. Life-cycle cost and utility models based on stochastic renewal processes are a natural source for future objective implementations [PandeyWangCheng2015Renewal].
Use this method: Comparing structural assessment scenarios · Calibrating target-reliability tables · Design decisions and target reliability
For coordinate conventions, see Notation and probability spaces.