Last Updated May 20, 2026
Moral disengagement refers to the psychological processes through which individuals, groups, and institutions justify harmful conduct while preserving a sense of moral self-worth. Rather than abandoning morality entirely, people cognitively restructure harmful behavior so that it appears acceptable, necessary, defensive, professional, bureaucratically routine, or even morally required. The concept was developed most influentially by Albert Bandura as part of his broader social-cognitive theory of moral agency.
The power of the theory is that it explains how harm can be committed by people who continue to see themselves as decent, responsible, loyal, patriotic, professional, efficient, or ethical. Moral disengagement does not require the absence of moral standards. It requires the selective weakening, displacement, or restructuring of moral self-sanctions so that conduct that would normally produce guilt, shame, or self-condemnation becomes psychologically tolerable.
This makes moral disengagement one of the central concepts in social psychology for understanding organizational misconduct, bureaucratic indifference, political violence, environmental destruction, corruption, dehumanization, institutional cruelty, and ordinary participation in harmful systems. It explains how harmful action can be normalized not only through coercion or ideology, but through language, authority, group norms, procedural distance, responsibility fragmentation, and the disappearance of victims from view.
Main Library
Publications
Article Map
Social Psychology
Related Topic
Stewardship & Ethics
Related Topic
Institutions & Governance
Related Topic
Cognitive Psychology

Moral disengagement connects closely to diffusion of responsibility, obedience to authority, deindividuation, groupthink, social norms, conformity and social influence, stereotypes and prejudice, and social identity theory. Together these frameworks explain how harmful conduct becomes psychologically tolerable, socially reinforced, and institutionally organized.
What is moral disengagement?
Moral disengagement occurs when individuals reinterpret harmful actions in ways that allow them to maintain a positive moral identity. Rather than seeing themselves as unethical, they adjust the meaning of an action, the responsibility for it, the visibility of its consequences, or the moral standing of those harmed. Through these shifts, conduct that would ordinarily violate moral self-standards becomes defensible.
This process is different from simply lacking morals. A person who morally disengages may still believe in honesty, fairness, dignity, responsibility, loyalty, compassion, justice, or care. The problem is that these standards are selectively suspended, bypassed, or redefined in relation to a particular action, group, institution, or target.
For example, a manager may approve exploitative labor practices while saying the company must remain competitive. A government official may defend civilian harm as unavoidable collateral damage. A technology team may dismiss algorithmic harms as edge cases. A school administrator may describe exclusionary discipline as maintaining order. A consumer may ignore supply-chain abuse because responsibility feels too distant. In each case, harm is not necessarily celebrated; it is cognitively reframed.
Moral disengagement therefore operates at the intersection of cognition, language, responsibility, emotion, group norms, and institutional design. It helps explain how harmful conduct becomes easier to perform when the self is protected from the full moral meaning of the act.
Bandura’s theory of moral agency
Albert Bandura developed moral disengagement within a broader theory of moral agency and self-regulation. In this view, people ordinarily regulate conduct through internal standards. They anticipate self-evaluative reactions such as guilt, shame, self-respect, or self-condemnation when considering actions that violate those standards.
Moral self-regulation is not automatic, however. It depends on whether people connect their behavior to their standards, see themselves as responsible agents, recognize the consequences of their actions, and regard those affected as worthy of moral concern. Moral disengagement weakens these links.
Bandura’s central insight was that people can selectively deactivate self-sanctions without abandoning moral identity. They may frame harmful conduct as serving a worthy purpose, sanitize it through language, minimize its effects, displace responsibility to authority, diffuse responsibility across groups, dehumanize victims, or blame those harmed. These mechanisms make the action feel less morally threatening.
This framework transformed the study of harmful behavior. It shifted attention away from explanations based only on bad character and toward the ordinary cognitive and social processes through which harmful conduct becomes acceptable. The theory helps explain why people who are otherwise capable of moral concern can participate in systems that produce serious harm.
Moral agency, then, is not simply a possession. It is a process. It can be strengthened by accountability, empathy, visibility, and responsibility clarity. It can be weakened by euphemism, abstraction, authority, bureaucracy, group pressure, distance, and institutional incentives.
Bandura’s eight mechanisms of moral disengagement
Bandura identified eight major mechanisms through which moral self-regulation can be disengaged. These mechanisms can operate separately, but in real institutional settings they often reinforce one another. A harmful policy may be morally justified, described euphemistically, compared to worse alternatives, ordered by authority, implemented by many people, hidden from victims, directed toward dehumanized targets, and defended by blaming those harmed.
Moral justification
Moral justification occurs when harmful conduct is framed as serving a higher purpose. Violence, deception, exploitation, exclusion, surveillance, environmental damage, or coercion may be described as necessary for security, progress, reform, competitiveness, efficiency, public order, innovation, national survival, or the protection of a valued group.
This mechanism is powerful because it converts harm into duty. Once a harmful action is described as necessary for a noble end, moral resistance weakens. The actor does not feel like a perpetrator; they feel like someone making a difficult but necessary choice.
Euphemistic labeling
Euphemistic labeling softens the moral meaning of harmful conduct through language. Civilian deaths become collateral damage. Torture becomes enhanced interrogation. Layoffs become rightsizing. Surveillance becomes user safety. Exploitation becomes flexibility. Pollution becomes externality. Forced removal becomes relocation.
Language matters because moral emotion depends partly on how an act is named. Concrete language makes harm vivid. Bureaucratic language makes harm administratively manageable.
Advantageous comparison
Advantageous comparison makes harmful behavior appear acceptable by comparing it with something worse. A policy may be described as harsh but better than chaos. A violent act may be framed as restrained compared with what enemies would do. An exploitative practice may be defended as less harmful than unemployment or economic collapse.
This mechanism shifts the moral baseline. Instead of asking whether the action is just, the comparison asks whether it is worse than an even more extreme alternative.
Displacement of responsibility
Displacement of responsibility occurs when individuals attribute responsibility to authority figures, rules, orders, policies, algorithms, markets, institutions, or leadership. The actor sees themselves as executing instructions rather than choosing harm.
This mechanism links directly to obedience to authority. When a harmful act is framed as compliance with legitimate authority, personal agency appears reduced. The person says, in effect, “I was just following orders,” “That was the policy,” or “The system required it.”
Diffusion of responsibility
Diffusion of responsibility occurs when responsibility is spread across many people, departments, committees, systems, organizations, supply chains, platforms, or institutions. Because no single person appears fully responsible, each participant feels less morally accountable.
This mechanism overlaps directly with diffusion of responsibility. Harmful outcomes become easier to tolerate when everyone contributed only a small part. The more fragmented the process, the easier it becomes for each person to say the harm was not really theirs.
Distortion or minimization of consequences
Consequence distortion occurs when harm is minimized, denied, abstracted, delayed, statistically diluted, or made less visible. If consequences are distant, hidden, technical, future-oriented, or described only through metrics, moral inhibition weakens.
This mechanism is especially important in bureaucratic, technological, military, environmental, and corporate systems. People may never see those harmed by their decisions. They may see only reports, dashboards, compliance categories, risk scores, projections, or financial outcomes.
Dehumanization
Dehumanization occurs when targets of harm are portrayed as less than fully human, dangerous, inferior, contaminated, faceless, irrational, criminal, undeserving, or outside the moral community. Once empathy is weakened, mistreatment becomes easier to justify.
Dehumanization is central to collective violence, war, racism, genocide, political repression, bullying, and exclusionary policy. It lowers the psychological barrier to harm by changing who counts as fully worthy of moral concern.
Attribution of blame
Attribution of blame occurs when victims are portrayed as responsible for their own suffering. Those harmed are described as provoking, deserving, choosing, causing, inviting, or requiring the treatment they receive. Harm is reinterpreted as a response to the victim’s own conduct.
This mechanism converts aggression into apparent justice. If the target caused the harm, then guilt decreases and punishment appears deserved.
Together, these mechanisms explain how harmful behavior can be carried out without requiring actors to see themselves as villains. Moral disengagement preserves moral identity while weakening moral restraint.
Formalizing moral disengagement
Moral disengagement can be represented as a weakening of self-sanction in the presence of justificatory cognition. Let harmful action propensity be \(H\), active moral self-regulation be \(M\), disengagement intensity be \(D\), and institutional pressure be \(P\):
H=f(D,P,M)
\]
Interpretation: Harmful conduct becomes more likely as disengagement and institutional pressure rise, and less likely as active moral self-regulation remains strong.
A simplified linear expression can be written as:
H^*=\alpha D+\lambda P-\beta M
\]
Interpretation: Harmful-action propensity \(H^*\) increases with disengagement \(D\) and pressure \(P\), but decreases with moral self-regulation \(M\).
Bandura’s mechanisms can be represented as a composite disengagement index:
D=w_1J+w_2E+w_3A+w_4R_d+w_5R_f+w_6C+w_7D_h+w_8B
\]
Interpretation: \(J\) is moral justification, \(E\) euphemistic labeling, \(A\) advantageous comparison, \(R_d\) displacement of responsibility, \(R_f\) diffusion of responsibility, \(C\) consequence distortion, \(D_h\) dehumanization, and \(B\) attribution of blame.
Responsibility displacement can be modeled as a reduction in perceived agency:
A_p=A_0-\gamma_1R_d-\gamma_2R_f-\gamma_3P_a
\]
Interpretation: Perceived personal agency \(A_p\) declines as responsibility is displaced, diffused, or transferred to authority pressure \(P_a\).
Consequence distortion can be expressed as a decline in perceived harm:
H_v=H_0-\delta_1O-\delta_2V_d+\delta_3T
\]
Interpretation: Harm visibility \(H_v\) declines with obscuration \(O\) and victim distance \(V_d\), but increases with transparency \(T\).
At the institutional level, normalized harm can be modeled dynamically:
N_{t+1}=N_t+\eta_1D_t+\eta_2R_t-\eta_3A_t-\eta_4Q_t
\]
Interpretation: Normalized harmful practice \(N\) grows with disengagement \(D_t\) and rewards for harmful conduct \(R_t\), but declines with accountability \(A_t\) and protected dissent \(Q_t\).
These models are not substitutes for qualitative judgment. They clarify the logic of the theory: harmful behavior becomes easier when justification rises, agency falls, consequences disappear, targets are devalued, and institutions reward outcomes while obscuring responsibility.
Language, abstraction, and bureaucratic distance
Language is one of the most important carriers of moral disengagement. Harm becomes easier to tolerate when it is described abstractly, technically, administratively, or strategically. Bureaucratic language can convert suffering into process, victims into categories, and moral consequences into operational problems.
This does not mean technical language is always deceptive. Institutions need precise terminology. The danger arises when language obscures rather than clarifies moral stakes. A phrase can be accurate within a system and still ethically numbing for those inside it.
Examples include:
- calling civilian deaths “collateral damage”;
- calling mass layoffs “rightsizing”;
- calling forced relocation “resettlement”;
- calling pollution “externalities”;
- calling exploitation “labor flexibility”;
- calling surveillance “friction reduction” or “safety optimization”;
- calling denial of service “eligibility enforcement”;
- calling harmful design effects “edge cases.”
In each case, language moves harm away from direct moral recognition. The ethical problem is not only what is done, but how the act is named. Naming can either preserve moral visibility or weaken it.
Research-grade analysis should therefore treat moral disengagement as partly linguistic. Organizational documents, policy memos, executive statements, media narratives, compliance reports, and platform governance language can all be analyzed for euphemism, abstraction, passive voice, responsibility displacement, and consequence minimization.
Displacement, diffusion, and responsibility management
Moral disengagement often depends on changing who appears responsible. If responsibility can be shifted upward, outward, downward, or into the system itself, individuals feel less personally implicated in harm.
Displacement of responsibility moves responsibility to authority. The individual says: the boss ordered it, the policy required it, the client demanded it, the market forced it, the algorithm recommended it, the law allowed it, or the institution approved it.
Diffusion of responsibility spreads responsibility across many actors. A committee approved it, a department implemented it, a supplier enabled it, a platform scaled it, a bureaucracy processed it, a market rewarded it, a board signed off, and no single person appears fully responsible.
These mechanisms are especially powerful in complex institutions. Modern harm is often distributed. A harmful outcome may involve executives, analysts, legal teams, vendors, engineers, managers, consultants, regulators, automated systems, and frontline workers. Each actor may have only partial knowledge and partial control. That complexity can become a moral shield.
The ethical challenge is not to deny complexity, but to prevent complexity from becoming impunity. Institutions need responsibility maps, decision logs, audit trails, escalation pathways, and named accountability for foreseeable harms. Otherwise, harmful systems can be designed so that everyone contributes and no one feels responsible.
Harm visibility and consequence distortion
Consequences are harder to morally process when they are distant, delayed, abstract, statistical, hidden, or mediated by technology. Moral disengagement increases when actors do not directly see the people, communities, ecosystems, or future generations affected by their decisions.
Harm visibility matters because empathy is often concrete. A single identifiable victim may move people more than a statistical population. A visible injury may matter more psychologically than a delayed risk. A direct encounter may provoke more moral restraint than a dashboard metric.
Institutions can unintentionally or deliberately reduce harm visibility. They may separate decision makers from affected populations. They may turn people into case numbers, claims, targets, leads, units, risk scores, users, accounts, or segments. They may use reports that aggregate consequences until no person remains visible.
Consequence distortion does not always require denial. It can operate through omission, abstraction, delay, or scale. Environmental harm may be framed as future cost. Civilian harm may be framed as operational risk. Workplace harm may be framed as turnover. Community harm may be framed as market adjustment.
Ethical systems must therefore keep consequences visible. This can include impact reviews, affected-community testimony, public reporting, human-rights assessment, environmental monitoring, post-implementation audits, incident review, and governance processes that reconnect decisions with lived outcomes.
Dehumanization, victim blame, and moral exclusion
Dehumanization is among the most dangerous mechanisms of moral disengagement because it weakens the target’s claim on empathy and moral concern. When people are represented as animals, invaders, parasites, criminals, contaminants, enemies, degenerates, burdens, threats, or faceless masses, harm becomes easier to justify.
Dehumanization often works alongside victim blame. The harmed group is portrayed not only as less worthy, but as responsible for the harm inflicted upon them. They are said to have provoked, invited, deserved, caused, or chosen their suffering. This conversion is morally powerful: the actor no longer appears to be harming an innocent victim, but responding to a guilty target.
These mechanisms are central to many forms of organized harm, including war propaganda, racial violence, genocide, bullying, punitive welfare policy, carceral ideology, anti-immigrant politics, and institutional neglect. They can also appear in milder but still consequential forms in workplace cultures, schools, healthcare systems, and public discourse.
Moral exclusion occurs when some people are placed outside the circle of those whose suffering counts. Once that exclusion occurs, ordinary moral standards may no longer be applied equally. Harm becomes tolerable because the target is no longer fully recognized as a moral subject.
This is why moral disengagement should be studied alongside stereotypes and prejudice, implicit bias, in-group bias, and intergroup conflict. Dehumanization is not only cognition; it is a social boundary around whose pain matters.
Moral disengagement in organizations
Moral disengagement plays a major role in organizational misconduct. Large institutions often create the conditions under which harmful behavior can be reframed as ordinary work. Goals are divided across departments, responsibility is fragmented, consequences are abstracted, and success is measured through performance indicators that may not capture harm.
Employees may rationalize questionable practices as normal industry behavior, client demand, market necessity, leadership strategy, compliance-approved conduct, or competitive realism. Managers may frame aggressive practices as execution discipline. Executives may treat harmful effects as externalities or unfortunate tradeoffs. Teams may use sanitized language to avoid confronting the human meaning of decisions.
Organizational moral disengagement can appear in:
- fraud rationalized as creative accounting;
- labor exploitation rationalized as flexibility;
- unsafe work rationalized as productivity pressure;
- misleading marketing rationalized as persuasion;
- environmental harm rationalized as necessary growth;
- customer manipulation rationalized as optimization;
- surveillance rationalized as efficiency or safety;
- discriminatory systems rationalized as neutral process;
- retaliation rationalized as loyalty enforcement;
- public deception rationalized as reputation management.
Organizational research has shown that moral disengagement is relevant to unethical decision-making and workplace misconduct. It can function as both a personal propensity and a situational process. This distinction matters: some people may be more prone to disengage, but institutions can also create environments that make disengagement easier for many people.
Ethical organizations must therefore do more than hire “good people.” They must design systems that make rationalization difficult. That includes transparent consequences, clear responsibility, protected dissent, serious whistleblower pathways, decision review, values-aligned incentives, leadership accountability, and language that names harm plainly.
Moral disengagement and collective violence
Moral disengagement is central to understanding collective violence. War, genocide, ethnic cleansing, political repression, torture, terrorism, and mass persecution rarely depend only on individual cruelty. They often depend on organized systems of justification, authority, dehumanization, threat framing, responsibility displacement, and moral exclusion.
Propaganda often activates multiple mechanisms at once. Violence is justified as defense. Targets are dehumanized as threats or contaminants. Responsibility is displaced onto leaders, history, destiny, emergency, or national survival. Harm is minimized or denied. Victims are blamed for provoking violence. Group norms punish dissent.
Under these conditions, violent conduct can be experienced as duty rather than wrongdoing. Moral identity is not abandoned; it is redirected toward loyalty, purity, security, revenge, liberation, or survival. That redirection is precisely what makes moral disengagement dangerous.
This does not mean all participants in collective violence experience the same psychological process. Coercion, fear, ideology, conformity, material incentives, careerism, obedience, prejudice, and opportunism may all play roles. Moral disengagement helps explain how people make participation psychologically tolerable, but it should be analyzed alongside broader structures of power and coercion.
The concept is also important for prevention. Early warning signs include dehumanizing rhetoric, euphemistic violence, inflated threat narratives, victim blame, diffusion of responsibility, and the framing of harm as necessary purification or defense.
Environmental harm and distant consequences
Environmental harm is especially vulnerable to moral disengagement because consequences are often delayed, distributed, technical, cumulative, and geographically distant. Climate change, pollution, biodiversity loss, toxic exposure, resource depletion, and ecological degradation can be difficult to connect to specific decisions, organizations, or individuals.
Several mechanisms are common in environmental contexts:
- moral justification: harm is framed as necessary for growth, jobs, security, or development;
- euphemistic labeling: pollution becomes externality, offset, leakage, or operational impact;
- advantageous comparison: local harm is defended as better than worse alternatives elsewhere;
- diffusion of responsibility: harm is spread across producers, consumers, regulators, investors, and supply chains;
- consequence distortion: harms are delayed, statistical, uncertain, or framed as manageable risk;
- victim distance: affected communities, ecosystems, and future generations remain invisible.
Environmental moral disengagement shows why information alone is not always enough. People may know that harm exists but still rationalize participation because responsibility feels distributed, alternatives seem costly, victims are distant, and institutions reward continuation.
Ethical environmental governance therefore requires visibility, traceability, accountability, and responsibility clarity. Systems must connect present decisions to future harms, local benefits to displaced costs, and institutional claims to measurable outcomes.
Digital systems, platforms, and algorithmic distance
Moral disengagement is increasingly relevant to digital systems. Platform design, automated decision systems, algorithmic ranking, content moderation, surveillance, recommender systems, and data extraction can create distance between decision makers and those affected by technical choices.
Digital systems can enable moral disengagement through abstraction. Users become data points, segments, risk scores, engagement profiles, conversion targets, false positives, outliers, tickets, or cases. Harm becomes a metric anomaly, moderation error, model bias, user friction, or downstream externality.
Responsibility can also be displaced onto technology itself. People may say the algorithm decided, the model predicted, the dashboard showed, the system flagged, or the platform optimized. But algorithms do not eliminate responsibility; they redistribute it across designers, managers, data pipelines, institutions, incentives, and governance choices.
Several questions are central for digital ethics:
- Who can see the harm produced by the system?
- Who has authority to stop or redesign the system?
- Who benefits from treating harm as technical noise?
- How are affected users represented in review processes?
- Can responsibility be traced across data, model, product, and policy decisions?
- Does the organization use euphemistic language that hides human consequences?
Moral disengagement is useful here because it explains how technical abstraction can become ethical distance. A system can be highly sophisticated and still morally underdeveloped if it makes harm invisible and responsibility untraceable.
The role of social context
Moral disengagement rarely occurs in isolation. Social environments shape whether disengagement mechanisms become available, plausible, rewarded, or resisted. Group norms, leadership language, peer expectations, institutional culture, ideology, incentives, and authority structures all influence how people interpret harm.
A person may be less likely to disengage when surrounded by peers who name harm clearly, protect dissent, and maintain responsibility. The same person may be more likely to disengage in a setting where leaders reward harmful outcomes, use euphemistic language, punish critics, hide victims, and frame ethical concerns as weakness.
Social context matters in at least four ways:
- Norms: groups define what is acceptable, admirable, necessary, or disloyal;
- language: institutions provide ready-made explanations and euphemisms;
- incentives: rewards can make harmful conduct feel professionally rational;
- visibility: systems determine whether consequences and victims remain visible.
This is why moral disengagement should not be treated as only an internal cognitive event. It is socially scaffolded. People disengage more easily when the surrounding system supplies moral cover.
Implications for ethical systems and institutions
Understanding moral disengagement is essential for designing ethical institutions. Rules and compliance systems are necessary, but they are insufficient if people can reinterpret harmful behavior as morally acceptable, professionally necessary, or structurally unavoidable.
Effective ethical systems must make disengagement harder. They need to keep consequences visible, preserve responsibility clarity, protect dissent, challenge euphemism, and prevent authority from absorbing personal agency. They must also make harmful incentives visible rather than treating misconduct as only individual failure.
Key institutional safeguards include:
- clear responsibility maps for high-impact decisions;
- decision logs that record who approved what and why;
- impact assessments that include affected communities;
- plain-language harm reporting;
- protected dissent and whistleblower channels;
- independent review of ethically sensitive decisions;
- feedback loops that connect decisions to consequences;
- leadership norms that reward truth-telling over rationalization;
- audits that examine language, incentives, and responsibility structures;
- training that treats moral disengagement as a systems risk, not only a personal flaw.
In this sense, moral disengagement is not only a theory of wrongdoing. It is also a theory of institutional design failure. Harm becomes durable when systems make disengagement easy.
Moral disengagement in the architecture of social influence
Within the broader architecture of social influence, moral disengagement explains how harmful behavior becomes psychologically normalized inside groups and institutions. Social norms define what is acceptable. Conformity pressures individuals to align with group expectations. Groupthink suppresses internal dissent. Deindividuation reduces self-focused restraint. Obedience explains compliance within hierarchical structures.
Moral disengagement ties these dynamics together by showing how people cognitively reinterpret harmful action so that participation remains compatible with a positive moral self-concept. It is the mechanism that allows people to say: this is not really harm, this is necessary, this is someone else’s responsibility, this is what the group requires, this is what they deserve, or this is simply how the system works.
The concept also helps explain why harmful systems can persist even when many participants privately feel unease. If each participant has a ready-made rationalization, private discomfort may not become public resistance. The system survives because moral concern is fragmented, muted, or redirected.
Seen this way, moral disengagement is not peripheral to social psychology. It is one of the central processes through which ordinary social influence can be converted into organized harm.
Interpretive cautions and limits
Moral disengagement is a powerful concept, but it should not be treated as a total explanation for all harmful behavior. Structural incentives, ideology, coercion, fear, economic dependency, political power, historical domination, law, institutional design, and material interests all matter. Cognitive rationalization is important, but it operates within larger systems.
Several cautions are essential:
- Do not reduce structural harm to individual cognition alone.
- Do not treat all moral disagreement as disengagement.
- Do not assume every harmful participant has equal freedom to refuse.
- Do not ignore coercion, dependency, fear, or institutional retaliation.
- Do not use the concept to pathologize marginalized communities’ survival strategies.
- Do not treat moral disengagement as a synonym for hypocrisy.
- Do not overlook how leaders and institutions supply the language of disengagement.
- Do not mistake compliance training for ethical culture.
It is also important to distinguish moral disengagement from tragic moral conflict. Sometimes people face genuinely difficult choices where harm cannot be avoided. Moral disengagement is most useful when it identifies the mechanisms through which avoidable, foreseeable, or clearly harmful conduct is made to appear acceptable.
Used carefully, the concept clarifies ethical erosion. Used too loosely, it becomes a catch-all label for bad action. Precision matters.
Measurement, data, and research design
Moral disengagement research uses surveys, experimental vignettes, harmful-choice tasks, organizational ethics studies, school-bullying research, political-violence research, environmental decision scenarios, workplace misconduct data, content analysis, discourse analysis, longitudinal designs, and computational simulations.
Key variables include:
- moral justification;
- euphemistic labeling;
- advantageous comparison;
- displacement of responsibility;
- diffusion of responsibility;
- distortion or minimization of consequences;
- dehumanization;
- attribution of blame;
- harm visibility;
- perceived agency;
- responsibility clarity;
- institutional pressure;
- authority pressure;
- group norm strength;
- victim distance;
- empathy;
- guilt;
- harmful decision;
- policy endorsement;
- unethical intention;
- response time.
Strong research designs should distinguish trait moral-disengagement propensity from state moral-disengagement process. A participant may have a general tendency to disengage, but a specific institutional context can also activate disengagement mechanisms. Researchers should therefore measure both individual differences and situational triggers.
Researchers should also analyze mechanisms separately rather than relying only on a global score. Dehumanization may predict violent harm more strongly than euphemistic labeling in some contexts. Displacement of responsibility may matter more in hierarchical organizations. Consequence distortion may be especially important in environmental or technological harms.
Institutional research should include language, incentives, responsibility structures, and harm visibility. Moral disengagement is not only something individuals “have.” It is also something organizations can produce.
R code for moral disengagement research
The following R workflow models harmful decisions, policy endorsement, unethical intention, empathy, guilt, perceived agency, and response time as functions of moral disengagement mechanisms, harm visibility, responsibility clarity, institutional pressure, authority pressure, and group norms.
# Install packages if needed:
# pak::pak(c("tidyverse", "lme4", "lmerTest", "emmeans", "broom.mixed", "performance"))
library(tidyverse)
library(lme4)
library(lmerTest)
library(emmeans)
library(broom.mixed)
library(performance)
# Expected columns:
# participant, site_id, condition, trial, scenario_domain,
# moral_justification, euphemistic_labeling, advantageous_comparison,
# displaced_responsibility, diffused_responsibility, consequence_distortion,
# dehumanization, blame_attribution, harm_visibility, perceived_agency,
# responsibility_clarity, institutional_pressure, authority_pressure,
# group_norm_strength, victim_distance, empathy, guilt,
# harmful_decision, policy_endorsement, unethical_intention,
# response_time_ms
mechanisms <- c(
"moral_justification",
"euphemistic_labeling",
"advantageous_comparison",
"displaced_responsibility",
"diffused_responsibility",
"consequence_distortion",
"dehumanization",
"blame_attribution"
)
dat <- read_csv("moral_disengagement_trials.csv") %>%
mutate(
participant = factor(participant),
site_id = factor(site_id),
condition = factor(condition),
scenario_domain = factor(scenario_domain),
harmful_decision = as.integer(harmful_decision),
md_index = rowMeans(across(all_of(mechanisms)), na.rm = TRUE),
agency_reduction_index = (
displaced_responsibility + diffused_responsibility
) / 2,
harm_obscuration_index = (
consequence_distortion + victim_distance - harm_visibility
) / 3,
target_denigration_index = (
dehumanization + blame_attribution
) / 2,
self_sanction_index = guilt + empathy + responsibility_clarity,
log_response_time = log(response_time_ms)
)
# -----------------------------
# 1. Descriptive summary
# -----------------------------
summary_table <- dat %>%
group_by(condition, scenario_domain) %>%
summarise(
n = n(),
participants = n_distinct(participant),
mean_md_index = mean(md_index, na.rm = TRUE),
harmful_rate = mean(harmful_decision, na.rm = TRUE),
mean_policy_endorsement = mean(policy_endorsement, na.rm = TRUE),
mean_unethical_intention = mean(unethical_intention, na.rm = TRUE),
mean_empathy = mean(empathy, na.rm = TRUE),
mean_guilt = mean(guilt, na.rm = TRUE),
mean_harm_visibility = mean(harm_visibility, na.rm = TRUE),
mean_responsibility_clarity = mean(responsibility_clarity, na.rm = TRUE),
mean_institutional_pressure = mean(institutional_pressure, na.rm = TRUE),
mean_authority_pressure = mean(authority_pressure, na.rm = TRUE),
.groups = "drop"
)
print(summary_table)
# -----------------------------
# 2. Harmful-decision model
# -----------------------------
harm_model <- glmer(
harmful_decision ~
md_index +
empathy +
guilt +
harm_visibility +
responsibility_clarity +
institutional_pressure +
authority_pressure +
group_norm_strength +
condition +
scenario_domain +
(1 | participant) +
(1 | site_id),
data = dat,
family = binomial(),
control = glmerControl(optimizer = "bobyqa")
)
summary(harm_model)
emmeans(harm_model, ~ condition, type = "response")
# -----------------------------
# 3. Policy endorsement model
# -----------------------------
policy_model <- lmer(
policy_endorsement ~
md_index +
empathy +
guilt +
harm_visibility +
responsibility_clarity +
institutional_pressure +
authority_pressure +
group_norm_strength +
condition +
scenario_domain +
(1 | participant) +
(1 | site_id),
data = dat,
REML = FALSE
)
summary(policy_model)
# -----------------------------
# 4. Unethical intention model
# -----------------------------
intention_model <- lmer(
unethical_intention ~
md_index +
empathy +
guilt +
perceived_agency +
responsibility_clarity +
institutional_pressure +
authority_pressure +
condition +
scenario_domain +
(1 | participant) +
(1 | site_id),
data = dat,
REML = FALSE
)
summary(intention_model)
# -----------------------------
# 5. Empathy and guilt models
# -----------------------------
empathy_model <- lmer(
empathy ~
dehumanization +
blame_attribution +
harm_visibility +
victim_distance +
condition +
scenario_domain +
(1 | participant) +
(1 | site_id),
data = dat,
REML = FALSE
)
guilt_model <- lmer(
guilt ~
md_index +
empathy +
harm_visibility +
perceived_agency +
responsibility_clarity +
condition +
scenario_domain +
(1 | participant) +
(1 | site_id),
data = dat,
REML = FALSE
)
summary(empathy_model)
summary(guilt_model)
# -----------------------------
# 6. Perceived agency model
# -----------------------------
agency_model <- lmer(
perceived_agency ~
displaced_responsibility +
diffused_responsibility +
authority_pressure +
responsibility_clarity +
institutional_pressure +
condition +
(1 | participant) +
(1 | site_id),
data = dat,
REML = FALSE
)
summary(agency_model)
# -----------------------------
# 7. Mechanism-level summary
# -----------------------------
mechanism_summary <- dat %>%
select(
participant,
condition,
scenario_domain,
all_of(mechanisms),
harmful_decision,
policy_endorsement
) %>%
pivot_longer(
cols = all_of(mechanisms),
names_to = "mechanism",
values_to = "score"
) %>%
group_by(condition, mechanism) %>%
summarise(
n = n(),
mean_score = mean(score, na.rm = TRUE),
harmful_rate = mean(harmful_decision, na.rm = TRUE),
mean_policy_endorsement = mean(policy_endorsement, na.rm = TRUE),
.groups = "drop"
)
print(mechanism_summary)
# -----------------------------
# 8. Response-time model
# -----------------------------
rt_model <- lmer(
log_response_time ~
md_index +
guilt +
responsibility_clarity +
harmful_decision +
condition +
scenario_domain +
(1 | participant) +
(1 | site_id),
data = dat %>% filter(response_time_ms >= 150),
REML = FALSE
)
summary(rt_model)
# -----------------------------
# 9. Export outputs
# -----------------------------
write_csv(summary_table, "moral_disengagement_summary.csv")
write_csv(mechanism_summary, "moral_disengagement_mechanism_summary.csv")
write_csv(
tidy(harm_model, effects = "fixed", conf.int = TRUE),
"moral_disengagement_harmful_decision_coefficients.csv"
)
write_csv(
tidy(policy_model, effects = "fixed", conf.int = TRUE),
"moral_disengagement_policy_coefficients.csv"
)
write_csv(
tidy(intention_model, effects = "fixed", conf.int = TRUE),
"moral_disengagement_intention_coefficients.csv"
)
# -----------------------------
# 10. Visualization
# -----------------------------
ggplot(dat, aes(x = md_index, y = policy_endorsement, color = condition)) +
geom_point(alpha = 0.30) +
geom_smooth(method = "lm", se = FALSE) +
labs(
title = "Moral disengagement and harmful policy endorsement",
x = "Moral disengagement index",
y = "Policy endorsement"
) +
theme_minimal()
This workflow supports mechanism-specific and global-index analysis. It estimates whether disengagement predicts harmful choice, whether empathy and guilt reduce harmful endorsement, and whether responsibility clarity and harm visibility interrupt rationalization.
Python code for moral disengagement research
The Python workflow below parallels the R analysis and adds an institutional-normalization simulation. It is useful for modeling how repeated disengagement, weak accountability, low dissent protection, and rewards for harmful outcomes can normalize unethical practice over time.
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
import statsmodels.api as sm
import matplotlib.pyplot as plt
# Expected columns:
# participant, site_id, condition, trial, scenario_domain,
# moral_justification, euphemistic_labeling, advantageous_comparison,
# displaced_responsibility, diffused_responsibility, consequence_distortion,
# dehumanization, blame_attribution, harm_visibility, perceived_agency,
# responsibility_clarity, institutional_pressure, authority_pressure,
# group_norm_strength, victim_distance, empathy, guilt,
# harmful_decision, policy_endorsement, unethical_intention,
# response_time_ms
df = pd.read_csv("moral_disengagement_trials.csv")
categorical_cols = [
"participant",
"site_id",
"condition",
"scenario_domain"
]
for col in categorical_cols:
df[col] = df[col].astype("category")
mechanisms = [
"moral_justification",
"euphemistic_labeling",
"advantageous_comparison",
"displaced_responsibility",
"diffused_responsibility",
"consequence_distortion",
"dehumanization",
"blame_attribution"
]
df["harmful_decision"] = df["harmful_decision"].astype(int)
df["md_index"] = df[mechanisms].mean(axis=1)
df["agency_reduction_index"] = (
df["displaced_responsibility"]
+ df["diffused_responsibility"]
) / 2
df["harm_obscuration_index"] = (
df["consequence_distortion"]
+ df["victim_distance"]
- df["harm_visibility"]
) / 3
df["target_denigration_index"] = (
df["dehumanization"]
+ df["blame_attribution"]
) / 2
df["self_sanction_index"] = (
df["guilt"]
+ df["empathy"]
+ df["responsibility_clarity"]
)
df["log_response_time"] = np.log(df["response_time_ms"])
# -----------------------------
# 1. Descriptive summary
# -----------------------------
summary_table = (
df.groupby(["condition", "scenario_domain"], observed=True)
.agg(
n=("md_index", "size"),
participants=("participant", "nunique"),
mean_md_index=("md_index", "mean"),
harmful_rate=("harmful_decision", "mean"),
mean_policy_endorsement=("policy_endorsement", "mean"),
mean_unethical_intention=("unethical_intention", "mean"),
mean_empathy=("empathy", "mean"),
mean_guilt=("guilt", "mean"),
mean_harm_visibility=("harm_visibility", "mean"),
mean_responsibility_clarity=("responsibility_clarity", "mean"),
mean_institutional_pressure=("institutional_pressure", "mean"),
mean_authority_pressure=("authority_pressure", "mean"),
)
.reset_index()
)
print(summary_table)
# -----------------------------
# 2. Harmful-decision model
# -----------------------------
harm_model = smf.glm(
"harmful_decision ~ md_index + empathy + guilt "
"+ harm_visibility + responsibility_clarity "
"+ institutional_pressure + authority_pressure "
"+ group_norm_strength + condition + scenario_domain",
data=df,
family=sm.families.Binomial(),
)
harm_result = harm_model.fit(
cov_type="cluster",
cov_kwds={"groups": df["participant"]},
)
print(harm_result.summary())
# -----------------------------
# 3. Policy endorsement model
# -----------------------------
policy_model = smf.ols(
"policy_endorsement ~ md_index + empathy + guilt "
"+ harm_visibility + responsibility_clarity "
"+ institutional_pressure + authority_pressure "
"+ group_norm_strength + condition + scenario_domain",
data=df,
)
policy_result = policy_model.fit(
cov_type="cluster",
cov_kwds={"groups": df["participant"]},
)
print(policy_result.summary())
# -----------------------------
# 4. Unethical intention model
# -----------------------------
intention_model = smf.ols(
"unethical_intention ~ md_index + empathy + guilt "
"+ perceived_agency + responsibility_clarity "
"+ institutional_pressure + authority_pressure "
"+ condition + scenario_domain",
data=df,
)
intention_result = intention_model.fit(
cov_type="cluster",
cov_kwds={"groups": df["participant"]},
)
print(intention_result.summary())
# -----------------------------
# 5. Empathy, guilt, and agency models
# -----------------------------
empathy_model = smf.ols(
"empathy ~ dehumanization + blame_attribution "
"+ harm_visibility + victim_distance "
"+ condition + scenario_domain",
data=df,
)
empathy_result = empathy_model.fit(
cov_type="cluster",
cov_kwds={"groups": df["participant"]},
)
print(empathy_result.summary())
guilt_model = smf.ols(
"guilt ~ md_index + empathy + harm_visibility "
"+ perceived_agency + responsibility_clarity "
"+ condition + scenario_domain",
data=df,
)
guilt_result = guilt_model.fit(
cov_type="cluster",
cov_kwds={"groups": df["participant"]},
)
print(guilt_result.summary())
agency_model = smf.ols(
"perceived_agency ~ displaced_responsibility "
"+ diffused_responsibility + authority_pressure "
"+ responsibility_clarity + institutional_pressure "
"+ condition",
data=df,
)
agency_result = agency_model.fit(
cov_type="cluster",
cov_kwds={"groups": df["participant"]},
)
print(agency_result.summary())
# -----------------------------
# 6. Mechanism-level summary
# -----------------------------
mechanism_summary = (
df.melt(
id_vars=[
"participant",
"condition",
"scenario_domain",
"harmful_decision",
"policy_endorsement"
],
value_vars=mechanisms,
var_name="mechanism",
value_name="score"
)
.groupby(["condition", "mechanism"], observed=True)
.agg(
n=("score", "size"),
mean_score=("score", "mean"),
harmful_rate=("harmful_decision", "mean"),
mean_policy_endorsement=("policy_endorsement", "mean"),
)
.reset_index()
)
print(mechanism_summary)
# -----------------------------
# 7. Institutional normalization simulation
# -----------------------------
def logistic(x):
return 1 / (1 + np.exp(-np.clip(x, -40, 40)))
def simulate_institutional_normalization(
n_institutions=250,
periods=40,
seed=42
):
rng = np.random.default_rng(seed)
rows = []
normalized_harm = rng.uniform(0.5, 2.0, n_institutions)
accountability = rng.uniform(2, 8, n_institutions)
dissent_protection = rng.uniform(2, 8, n_institutions)
reward_for_harm = rng.uniform(1, 8, n_institutions)
for period in range(1, periods + 1):
md = np.clip(
2.5
+ 0.35 * normalized_harm
+ 0.35 * reward_for_harm
- 0.25 * accountability
- 0.25 * dissent_protection
+ rng.normal(0, 0.8, n_institutions),
0,
10
)
harmful_rate = logistic(
-3.0
+ 0.55 * md
+ 0.25 * reward_for_harm
- 0.28 * accountability
)
normalized_harm = np.clip(
normalized_harm
+ 0.18 * md
+ 0.22 * reward_for_harm
- 0.25 * accountability
- 0.20 * dissent_protection
+ rng.normal(0, 0.45, n_institutions),
0,
10
)
for i in range(n_institutions):
rows.append({
"institution_id": f"I{i+1:04d}",
"period": period,
"moral_disengagement": md[i],
"harmful_rate": harmful_rate[i],
"normalized_harm": normalized_harm[i],
"accountability": accountability[i],
"dissent_protection": dissent_protection[i],
"reward_for_harm": reward_for_harm[i],
})
simulation = pd.DataFrame(rows)
period_summary = (
simulation.groupby("period")
.agg(
mean_md=("moral_disengagement", "mean"),
mean_harmful_rate=("harmful_rate", "mean"),
mean_normalized_harm=("normalized_harm", "mean"),
mean_accountability=("accountability", "mean"),
mean_dissent_protection=("dissent_protection", "mean"),
)
.reset_index()
)
return simulation, period_summary
simulation, period_summary = simulate_institutional_normalization()
print(period_summary.head())
# -----------------------------
# 8. Visualization
# -----------------------------
fig, ax = plt.subplots(figsize=(8, 5))
for condition, group in df.groupby("condition", observed=True):
ax.scatter(
group["md_index"],
group["policy_endorsement"],
alpha=0.30,
label=condition
)
ax.set_xlabel("Moral disengagement index")
ax.set_ylabel("Policy endorsement")
ax.set_title("Moral disengagement and harmful policy endorsement")
ax.legend()
plt.tight_layout()
plt.show()
# -----------------------------
# 9. Export summaries
# -----------------------------
summary_table.to_csv("moral_disengagement_summary.csv", index=False)
mechanism_summary.to_csv("moral_disengagement_mechanism_summary.csv", index=False)
simulation.to_csv("institutional_normalization_simulation.csv", index=False)
period_summary.to_csv("institutional_normalization_summary.csv", index=False)
This Python workflow supports experimental and institutional analysis. It estimates whether moral disengagement predicts harmful choice, whether empathy and guilt interrupt harmful endorsement, and how repeated institutional incentives can normalize harm over time.
Research data architecture
Moral disengagement research often depends on relational data: participants, sites, conditions, scenario domains, mechanism scores, harm visibility, perceived agency, responsibility clarity, institutional pressure, authority pressure, group norms, victim distance, empathy, guilt, harmful decisions, policy endorsement, unethical intention, and response time. Rather than embedding executable database code directly in the WordPress article body, the companion GitHub repository includes the full SQL schema and example queries for researchers who want to reproduce or extend the data model.
The research data model is designed to support questions such as:
- Which moral disengagement mechanisms most strongly predict harmful decisions?
- Does dehumanization reduce empathy?
- Does victim blame increase policy endorsement?
- Do displacement and diffusion of responsibility reduce perceived agency?
- Does harm visibility increase guilt and reduce harmful choice?
- Does responsibility clarity interrupt rationalization?
- Do authority pressure and group norms amplify moral disengagement?
- How do organizational incentives normalize harmful practices over time?
- Which institutional safeguards reduce moral disengagement most effectively?
The GitHub repository contains the full database schema, example analytical queries, validation logic, and reproducible data workflow. Keeping executable SQL in GitHub avoids WordPress hosting restrictions while preserving the research-grade infrastructure for readers who want to inspect or reuse the model.
View the SQL research data architecture in GitHub.
GitHub repository
The companion repository provides reusable code and research scaffolding for studying moral disengagement, including workflows for moral justification, euphemistic labeling, advantageous comparison, responsibility displacement, responsibility diffusion, consequence distortion, dehumanization, victim blame, harm visibility, perceived agency, responsibility clarity, empathy, guilt, harmful decisions, policy endorsement, unethical intention, and institutional normalization.
Complete Code Repository
Access the full companion repository for this article, including reproducible analysis materials and multi-language code workflows for moral disengagement research.
Why moral disengagement matters
Moral disengagement remains one of the most important concepts in social psychology because it explains how people can participate in harm while preserving moral self-respect. Its enduring value lies in showing that wrongdoing often depends not on the absence of morality, but on the restructuring of moral judgment.
People can harm others while believing they serve a higher purpose. They can hide harm through language. They can shift responsibility to authority, groups, procedures, markets, or systems. They can minimize consequences when victims are distant. They can dehumanize those harmed. They can blame victims for their own suffering. These mechanisms allow harmful action to continue without requiring people to experience themselves as immoral.
The theory also matters institutionally. Harmful systems rarely depend only on cruel individuals. They often depend on organizational cultures, bureaucratic language, incentives, authority structures, role fragmentation, and consequence invisibility. Ethical design must therefore make harm visible, responsibility traceable, dissent protected, and rationalization difficult.
Read alongside diffusion of responsibility, obedience to authority, groupthink, social norms, and Institutions & Governance, moral disengagement becomes more than a theory of individual rationalization. It becomes a theory of how moral agency can be weakened by systems — and how ethical systems must be designed to keep responsibility alive.
Related articles
- Social Psychology
- Diffusion of Responsibility
- Obedience to Authority
- Deindividuation
- Groupthink
- Social Norms in Social Psychology
- Conformity and Social Influence
- Social Identity Theory
- In-Group Bias
- Intergroup Conflict
- Stereotypes, Prejudice, and Discrimination
- Stewardship & Ethics
- Institutions & Governance
Further reading
- Bandura, A. (1999) ‘Moral disengagement in the perpetration of inhumanities’, Personality and Social Psychology Review, 3(3), pp. 193–209. Available at: https://doi.org/10.1207/s15327957pspr0303_3.
- Bandura, A. (2002) ‘Selective moral disengagement in the exercise of moral agency’, Journal of Moral Education, 31(2), pp. 101–119. Available at: https://doi.org/10.1080/0305724022014322.
- Bandura, A. (2016) Moral Disengagement: How People Do Harm and Live with Themselves. New York: Worth Publishers.
- Bandura, A., Barbaranelli, C., Caprara, G.V. and Pastorelli, C. (1996) ‘Mechanisms of moral disengagement in the exercise of moral agency’, Journal of Personality and Social Psychology, 71(2), pp. 364–374. Available at: https://doi.org/10.1037/0022-3514.71.2.364.
- Detert, J.R., Treviño, L.K. and Sweitzer, V.L. (2008) ‘Moral disengagement in ethical decision making: A study of antecedents and outcomes’, Journal of Applied Psychology, 93(2), pp. 374–391. PubMed record available at: https://pubmed.ncbi.nlm.nih.gov/18361639/.
- Kish-Gephart, J.J. et al. (2014) ‘Situational moral disengagement: Can the effects of self-interest be mitigated?’, Journal of Business Ethics, 125, pp. 267–285. Available at: https://doi.org/10.1007/s10551-013-1909-6.
- Moore, C. (2015) ‘Moral disengagement’, Current Opinion in Psychology, 6, pp. 199–204. Available at: https://doi.org/10.1016/j.copsyc.2015.07.018.
- Moore, C. et al. (2012) ‘Why employees do bad things: Moral disengagement and unethical organizational behavior’, Personnel Psychology, 65(1), pp. 1–48. Available at: https://doi.org/10.1111/j.1744-6570.2011.01237.x.
- Newman, A., Le, H., North-Samardzic, A. and Cohen, M. (2020) ‘Moral disengagement at work: A review and research agenda’, Journal of Business Ethics, 167, pp. 535–570. Available at: https://doi.org/10.1007/s10551-019-04173-0.
- Schaefer, U. and Bouwmeester, O. (2021) ‘Reconceptualizing moral disengagement as a process: Transcending overly liberal and overly conservative practice in the field’, Journal of Business Ethics, 172, pp. 525–543. Available at: https://doi.org/10.1007/s10551-020-04520-6.
References
- Bandura, A. (1999) ‘Moral disengagement in the perpetration of inhumanities’, Personality and Social Psychology Review, 3(3), pp. 193–209. Available at: https://doi.org/10.1207/s15327957pspr0303_3.
- Bandura, A. (2002) ‘Selective moral disengagement in the exercise of moral agency’, Journal of Moral Education, 31(2), pp. 101–119. Available at: https://doi.org/10.1080/0305724022014322.
- Bandura, A. (2016) Moral Disengagement: How People Do Harm and Live with Themselves. New York: Worth Publishers.
- Bandura, A., Barbaranelli, C., Caprara, G.V. and Pastorelli, C. (1996) ‘Mechanisms of moral disengagement in the exercise of moral agency’, Journal of Personality and Social Psychology, 71(2), pp. 364–374. Available at: https://doi.org/10.1037/0022-3514.71.2.364.
- Detert, J.R., Treviño, L.K. and Sweitzer, V.L. (2008) ‘Moral disengagement in ethical decision making: A study of antecedents and outcomes’, Journal of Applied Psychology, 93(2), pp. 374–391. PubMed record available at: https://pubmed.ncbi.nlm.nih.gov/18361639/.
- Kish-Gephart, J.J. et al. (2014) ‘Situational moral disengagement: Can the effects of self-interest be mitigated?’, Journal of Business Ethics, 125, pp. 267–285. Available at: https://doi.org/10.1007/s10551-013-1909-6.
- Moore, C. (2015) ‘Moral disengagement’, Current Opinion in Psychology, 6, pp. 199–204. Available at: https://doi.org/10.1016/j.copsyc.2015.07.018.
- Moore, C. et al. (2012) ‘Why employees do bad things: Moral disengagement and unethical organizational behavior’, Personnel Psychology, 65(1), pp. 1–48. Available at: https://doi.org/10.1111/j.1744-6570.2011.01237.x.
- Newman, A., Le, H., North-Samardzic, A. and Cohen, M. (2020) ‘Moral disengagement at work: A review and research agenda’, Journal of Business Ethics, 167, pp. 535–570. Available at: https://doi.org/10.1007/s10551-019-04173-0.
- Schaefer, U. and Bouwmeester, O. (2021) ‘Reconceptualizing moral disengagement as a process: Transcending overly liberal and overly conservative practice in the field’, Journal of Business Ethics, 172, pp. 525–543. Available at: https://doi.org/10.1007/s10551-020-04520-6.
