Xhevahire Tërnava

Luc Lesoil

Georges Aaron Randrianaina

Djamel Eddine Khelladi
email: djamel-eddine.khelladi@irisa.fr

Mathieu Acher
email: mathieu.acher@irisa.fr

On the Interaction of Feature Toggles

Keywords: feature flags, continuous deployment, interaction of feature toggles

Feature toggling is a technique for enabling branching-in-code. It is increasingly used during continuous deployment to incrementally test and integrate new features before their release. In principle, feature toggles tend to be light, that is, they are defined as simple Boolean flags and used in conditional statements to condition the activation of some software features. However, there is a lack of knowledge on whether and how they may interact with each other, in that case their enabling and testing become complex. We argue that finding the interactions of feature toggles is valuable for developers to know which of them should be enabled at the same time, which are impacted by a removed toggle, and to avoid their mis-configurations. In this work, we mine feature toggles and their interactions in five open-source projects. We then analyse how they are realized and whether they tend to be multiplied over time. Our results show that 7% of feature toggles interact with each other, 33% of them interact with another code expression, and their interactions tend to increase over time (22%, on average). Further, their interactions are expressed by simple logical operators (i.e., and and or) and nested if statements. We propose to model them into a Feature Toggle Model, and believe that our results are helpful towards robust management approaches of feature toggles.

CCS CONCEPTS

• Software and its engineering → Maintaining software.

INTRODUCTION

Large companies, such as Google [START_REF] Md Tajmilur Rahman | Feature toggles: practitioner practices and a case study[END_REF][START_REF] Md Tajmilur Rahman | The modular and feature toggle architectures of Google Chrome[END_REF], Microsoft [START_REF] Parnin | The top 10 adages in continuous deployment[END_REF], Hewlett-Packard [START_REF] Davies | Feature Toggles The Good, The Bad, and The Ugly with Andy Davies[END_REF][START_REF] Gruver | The Amazing DevOps Transformation Of The HP LaserJet Firmware Team[END_REF], and Facebook [START_REF] Dror G Feitelson | Development and deployment at facebook[END_REF], among others [START_REF] Meinicke | Capture the feature flag: Detecting feature flags in open-source[END_REF], have recently adopted trunk-based development by employing feature toggles. Feature toggles 1 are recognized as a powerful technique for modifying the system behaviour without changing code [START_REF] Fowler | Feature Toggles (aka Feature Flags)[END_REF]. Technically, a feature toggle is a binary condition that controls whether a feature appears in the system or not [START_REF] Mckenna | Feature Toggles: Lunch & Learn[END_REF]. In other words, feature toggles make possible trunk-based development by branching directly in code. Thus, avoiding the burden of merging features branches [START_REF] Neely | Continuous delivery? easy! just change everything (well, maybe it is not that easy)[END_REF]. They are particularly used for continuous deployment, such as for dark launches, canary releases, or A/B testing [START_REF] Dror G Feitelson | Development and deployment at facebook[END_REF][START_REF] Neely | Continuous delivery? easy! just change everything (well, maybe it is not that easy)[END_REF][START_REF] Parnin | The top 10 adages in continuous deployment[END_REF].

Several works study or share the knowledge regarding different aspects of feature toggles, namely their good, bad, ugly practices [START_REF] Davies | Feature Toggles The Good, The Bad, and The Ugly with Andy Davies[END_REF], removal [START_REF] Hoyos | On the Removal of Feature Toggles[END_REF][START_REF] Murali | Piranha: Reducing feature flag debt at uber[END_REF], common used practices by practitioners [START_REF] Mahdavi-Hezaveh | Software development with feature toggles: practices used by practitioners[END_REF][START_REF] Md Tajmilur Rahman | Feature toggles: practitioner practices and a case study[END_REF], wide usage in public projects [START_REF] Meinicke | Capture the feature flag: Detecting feature flags in open-source[END_REF], or differences and commonalities 1 They are also often referred to as feature flags, bits, gates, or flippers. with configuration options [START_REF] Meinicke | Exploring differences and commonalities between feature flags and configuration options[END_REF]. However, to the best of our knowledge, the literature lacks the evidence on the interaction complexity of feature toggles within a codebase.

Feature toggles are perceived as a simple and light technique, and testing all their added paths in code seems not to be an issue [START_REF] Neely | Continuous delivery? easy! just change everything (well, maybe it is not that easy)[END_REF]. But, are they actually simple to deal with in real projects, especially over the time? For developers, the difficulty is to know which toggles should be enabled in production at the same time [START_REF] Neely | Continuous delivery? easy! just change everything (well, maybe it is not that easy)[END_REF] and to automate their maintenance [START_REF] Murali | Piranha: Reducing feature flag debt at uber[END_REF], especially their removal when they are ready for final release. A wrong enabling or a bad practice of feature toggles can cause the bankruptcy of the organization (e.g., [START_REF] Seven | Knightmare: A DevOps Cautionary Tale[END_REF]). Then, as feature toggles usually have a short lifespan [START_REF] Fowler | Feature Toggles (aka Feature Flags)[END_REF][START_REF] Meinicke | Exploring differences and commonalities between feature flags and configuration options[END_REF], they can quickly lead to some technical debt [START_REF] Murali | Piranha: Reducing feature flag debt at uber[END_REF]. Our hypothesis is that interactions among feature toggles can hinder even more their enabling and make troublesome their removal.

To better understand whether feature toggles interact within a codebase, how they are implemented, how they are documented, and whether they have a tendency to multiply over time, we mined feature toggles in five popular open-source projects (cf. Section 3). The obtained results are reported in Section 4, which reveal that 7% of feature toggles interact with each other and 33% of them interact with another code expression, that is, that is not a feature toggle. Knowing their interactions is beneficial especially to developers in order (1) to prevent any system mis-configuration, (2) to assist developers in charge of maintaining feature toggles, and (3) to enrich the documentation of feature toggles with their interactions. We believe that our results show the need to extend the feature toggles management frameworks (e.g., [START_REF] Osherove | Feature Toggle Framework List[END_REF]), and maybe also the variability management approaches (e.g., [START_REF] Apel | Featureoriented software product lines[END_REF][START_REF] Kyo | Feature-oriented domain analysis (FODA) feasibility study[END_REF]), with the documentation of feature toggles and their interactions.

In summary, our contributions are: (i) to the best of our knowledge, a first empirical evaluation of interaction of feature toggles, (ii) the proposition of a Feature Toggle Model (FTM) to model their interactions, and (iii) the availability of our automated mining approach with the obtained data for five popular software systems.

BACKGROUND AND MOTIVATION

Feature toggles allow the developers to decide when and for whom to enable or disable some features (i.e., functionalities) in a given software. Most often, a feature toggle is a constant, that can be true or false. Its value is evaluated in an if-else statement, which is used to surround a block of code. Up to four different kinds of feature toggles are distinguished (i.e., release, experiment, ops, and permission) [START_REF] Fowler | Feature Toggles (aka Feature Flags)[END_REF], which may have different binding times (i.e., compile, start-up, periodic, or activity) [START_REF] Hoyos | On the Removal of Feature Toggles[END_REF]. Hence, there is a fuzzy boundary between them and the concept of configuration options [START_REF] Meinicke | Exploring differences and commonalities between feature flags and configuration options[END_REF]. Their apparent difference is that an added feature toggle is expected to be removed after few hours, weeks, and rarely more, that is, as soon as the guarded feature becomes stable [START_REF] Fowler | Feature Toggles (aka Feature Flags)[END_REF][START_REF] Hoyos | On the Removal of Feature Toggles[END_REF]. Whereas, a configuration option is more permanent in the system. Listing 2: Usage: ../upup/pkg/fi/cloudup/terraform/target.go As an illustration example, in Listings 1 and 2 are shown two feature toggles that are used in the Kops system. Kops is also among the used subjects later in this study (cf. Section 3.2). First, as in Listing 1, two feature toggles are defined, usually all of them within a single file for the whole system [START_REF] Mahdavi-Hezaveh | Software development with feature toggles: practices used by practitioners[END_REF][START_REF] Md Tajmilur Rahman | The modular and feature toggle architectures of Google Chrome[END_REF]. Then, as in Listing 2, they are used in a toggle point (i.e., if-else statement) to condition the activation of system features. For instance, whenever the feature toggles TerraformJSON and TerraformManagedFiles are enabled then the surrounded block of code in lines 5-6 in Listing 2 will be part of the Kops system, otherwise the code in line 10 will be included. But, as shown in Listing 1, TerraformJSON has by default a false value whereas TerraformManagedFiles has a true value. If both of them are enabled then the system will throw an error. This kind of error could be prevented beforehand, for example, by documenting the feature toggles interactions2 . The interaction from the block of code viewpoint is that they should not be enabled at the same time, otherwise the system will be mis-configured. But, from the feature toggles viewpoint, in order to evaluate the feature toggle in line 4, the feature toggle in line 3 is required first to be evaluated, that is, TerraformManagedFiles implies TerraformJSON.

The structure of feature toggles seems less simple than expected, which motivates our work in this study. First, knowing how a feature toggle is scattered in the codebase is important to manage it, for example, TerraformManagedFiles is also used in two other toggle points in Kops. Secondly, some feature toggles can be unused or deprecated, which can lead to technical debt [START_REF] Parnin | The top 10 adages in continuous deployment[END_REF][START_REF] Murali | Piranha: Reducing feature flag debt at uber[END_REF]. Thirdly, as shown in Listings 1 and 2, feature toggles may interact and knowing their interactions can be beneficial to developers. For example, TerraformJSON toggle is deprecated3 , but during its removal one needs to know that it interacts with TerraformManagedFiles. Currently their interaction is not documented 4 . Moreover, the featuretoggling in Kops is supported by the featureflag package, but it has no functionalities to show the feature toggles interactions.

STUDY DESIGN

In this section, we provide the study design and our approach.

Research questions

The goal of this study is to explore the presence of feature toggles interactions in a system from the developer's viewpoint.

𝑅𝑄 1 : Do feature toggles interact with each other in order to enable some system functionalities (i.e., features)? We want to explore whether the enabling of a feature toggle requires other feature toggles, or more than one of them is used to enable some system functionalities. To this end, we mine the feature toggle points in five systems and analyse them regarding the feature toggles interactions.

𝑅𝑄 2 : Do feature toggles and their interactions have a tendency to be multiplied over time? Presuming that feature toggles interact in a codebase, we then analyse whether the interactions of feature toggles tend to multiply over the years and if their change is proportional to the number of feature toggles. To this end, we extract the number of feature toggles and their interactions in the first release for each of the last five years of five subject systems.

Subject systems

To answer the research questions, we analysed the feature toggles in five Go public projects shared in GitHub, namely in Boulder, Juju, Kops, Kubernetes, and Loomchain. In the Stack Overflow 2021 survey results 5 , Go is one of the top-10 most loved and wanted programming languages among developers. Boulder is an implementation of an ACME-based Certificate Authority, Juju is a framework that improves the experience of running Kubernetes operators, Kops is used to set up Kubernetes clusters swiftly, then is the Kubernetes itself, a system for managing containerized applications across multiple hosts, and Loomchain is an interoperable blockchain engine.

We have chosen them mostly because all of them use feature toggles [START_REF] Mahdavi-Hezaveh | Software development with feature toggles: practices used by practitioners[END_REF][START_REF] Meinicke | Capture the feature flag: Detecting feature flags in open-source[END_REF]. They are also popular projects with 4k, 1.9k, 13.4k, 18.2k and 136 stars, respectively, in their repositories 6 . In addition, all projects have a different number of feature toggles, between 13 and 108. In Table 1 are given their last analysed commit ID, number of feature toggles, lines of code (LoC), and number of files.

Our approach

We build an automated approach to analyse feature toggles and their interactions in five subject systems. It consists of three main steps:

(1) a specific version of a given system is cloned, (2) it is statically analysed, by relying on the Go parser of tree-sitter [17]7 , and then (3) the toggle points in its codebase are mined and analysed. In the step (3), we first extract the defined feature toggles in the system. Usually, they are defined in a single dedicated file for the entire system. For instance, as shown in Listing 1, all 23 feature toggles in Kops are defined in the ./pkg/featureflag/featureflag.go file. Next, all toggle points are extracted. That is, we track all if-else statements and extract those that contain a feature toggle name in its condition. For example, out of Listing 2 we extract lines 3 and 4, that is, featureflag.TerraformJSON.Enabled() and featureflag.TerraformManagedFiles.Enabled(), which contain the two defined feature toggles given in Listing 1. Afterward, we analyse whether the feature toggles interact within a toggle point or among them. We differentiate and look for the three found types of interactions: and, or, and implies. In the case of Listing 2, we record the implied relation between TerraformJSON and TerraformManagedFiles. The extracted data during these steps are particularly used to answer the 𝑅𝑄 1 . For the 𝑅𝑄 2 , we count the number of feature toggles for all available versions of the project. Concretely, we track the changes in the feature toggles file by listing all of them, by using git. Next, we repeat steps (1), (2), and (3) for 5 different releases of each system (one per year, from 2017 to 2021). All other technical details, data, and procedures are also available at https://github.com/llesoil/poc_ftm.

RESULTS

We now report the results with regard to our research questions.

Feature toggles interactions (RQ1)

To answer the first research question, we analysed the defined feature toggles within a system, their structure in toggle points, and how they are scattered in files. We conducted this same analyses for a recent release in all five subject systems (cf. Commit in Table 1).

The obtained results are summarized in Table 1. Based on them, on average for all systems, 33% of feature toggles are always used alone in a toggle point (i.e., to guard a block of code). Then, 27% of the defined feature toggles are never used in a toggle point, that is, they are unused. Whereas, 40% of them are in an interaction between themselves or with another expression in code. The smallest number of feature toggles that are involved in an interaction are in Juju (23%) and the largest number are in Kubernetes (49%). A deeper analysis revealed that most of these interactions are between a feature toggle and another code expression, for example, if(featuretoggle 𝑥 && revokedby != 0){...} in Boulder. Excluding these cases, then only 12% of feature toggles interact at least once with each other in Boulder, 15% in Juju, 22% in Kops, 2% in Kubernetes, and 7% in Loomchain. On average, only 7% of feature toggles interact with each other. In all these cases, the maximum number of feature toggles involved in an interaction is 2.

Apart from it, the majority of toggle points contain a single feature toggle (67%). In the rest of the toggles points, the most often used logical relation is the and relation (69%). Less are used the or and implies relations (13% and 18%, respectively). Further, from the last three columns in Table 1, it can also be noted that all feature toggles are scattered up to a certain number of files, namely, between 0.26% and 8.26% of files. On average for all systems, all feature toggles are contained in only 1.13% of a system's files. Yet, a single file contains from 0 up to 23 feature toggles in maximum.

As an answer to the 𝑅𝑄 1 , a small percentage of feature toggles tend to interact with each other (7%). Most often they interact with the rest of the codebase (33%). Further, only up to 2 feature toggles are involved in an interaction. Then, a considerable number of feature toggles are unused (27%). which may lead to technical debt. Specifically, feature toggles are considered as just another source of technical debt, as they are easy to be added in the short term, but as longer as they remain in the code the more they will cost the organization [START_REF] Bird | Feature Toggles are one of the Worst kinds of Technical Debt[END_REF]. Hence, the unused feature toggles need to be deleted from the codebase. Yet, all used feature toggles are concentrated in a few files (1.13%). These results reveal the structure of feature toggles which tend to be relatively simple to be managed.

Multiplication of interactions (RQ2)

To answer 𝑅𝑄 2 , we first extracted the number of feature toggles since their first introduction in each of the five subject systems. Their varying number is shown in Figure 1. Each dot represents a change in the file with the defined feature toggles. It can be noted that the number of feature toggles in Kops, Kubernetes, and Loomchain tends to multiply over time. For the two other projects, Boulder and Juju, it varies but tends to remain the same in general.

Further, we extracted the number of feature toggles interactions for 5 releases (the first one of the last 5 years) of each subject. The obtained results are given in Figure 2. By comparing the last year with the average of previous years, results show that in Boulder and Juju the number of interactions tends to decrease by 18% and 6%, respectively. Whereas, they tend to be increased in Kops (65%), Kubernetes (29%), and Loomchain (39%). Based on the calculated Pearson correlation [START_REF] Benesty | Pearson correlation coefficient[END_REF], the number of feature toggles interactions and the overall number of feature toggles is mostly correlated in Kops (0.90), Kubernetes (0.39), and Loomchain (0.88). In other systems, namely Boulder (-0.02) and Juju (0.04), they are less correlated. It should be noted that a given interaction fades away with the removal of its feature toggles. For example, when the TerraformJSON feature toggle is removed 8 , so is the dependency in Listing 2.

As an answer to 𝑅𝑄 2 , the feature toggles interactions tend to multiply over time (by 22%). Further, in 3 from 5 systems there is a close correlation between their number and the overall number of feature toggles in a codebase.

An extracted Feature Toggle Model

As a considerable number of feature toggles may interact in a codebase (40%) and their number tend to multiply over time (22%), we propose a representation of them, so the developers become aware of which and how feature toggles interact.

From our observations, all five systems use a framework or package to define, set, and evaluate the set value of feature toggles. But, in all cases, the interactions between feature toggles are realized using the two simple logical operators (i.e., or and and) or nested if statements. Hence, to extract the interactions among feature toggles one has to analyse the structure of the code. In our knowledge, this task is not supported by the used feature toggles frameworks.

Therefore, by using our presented approach in Section 3.3, we mined the interactions of feature toggles in five subjects and propose to represent them in a Feature Toggle Model (FTM). In Figure 3 is shown an excerpt of the FTM of Kops, with 9 from its 23 feature toggles. It is a weighted graph where vertices represent the feature toggles, edges their interactions, edge weight the occurrence of an interaction, the node weight the independent occurrence of a feature toggle, and the node Expr marks any other expression in code. Further, the blue edge marks an and interaction, the red edge the or interaction, and the dashed oriented edge the implies interaction. By using this graph representation, for example, one can easily spot the implied interaction between TerraformManagedFiles and TerraformJSON in Kops, which is presented in Listing 2. Furthermore, TerraformManagedFiles has another and interaction with a code expression, and is spread in 3 more places in code.

Having an FTM can be useful in particular to test the guarded features or to remove feature toggles. For instance, if a system feature is guarded by more than one feature toggle then the FTM can be helpful to figure out which ones may need to be enabled at the same time. Then, for instance, the responsible developer for TerraformManagedFiles toggle in Kops can be different from the one that is responsible for TerraformJSON. In this case, the FTM 8 The commit with which this feature toggle in Kops is removed: e31dd98. By using our approach, we automatically extracted the FTM for each of the five subject systems. All of them are made available 9 . In addition, considering the short-lived nature of feature toggles, our approach can be used to extract their FTM whenever it is required.

Threats to validity

Internal threats. With our approach, we mined only those feature toggles that were evaluated in if statements. There are chances that they are evaluated also in case statements. Another threat is the mining of implied interactions in nested functional calls. During a manual analysis, we have encountered none of them. But, we noticed that sometimes a feature toggle is assigned to a variable which is after used within an if statement. We could have missed these cases with our mining approach, which does not apply dataflow or control-flow analysis. Still, we noticed only a few of them. Their absence has less impact on our results. Moreover, we focus on the mainstream usage of toggles, that is, in if statements.

External threats. Although our current approach is used to analyse only the Go projects, it can be easily extended to analyse the projects in other languages by using other tree-sitter parsers 10 . Further experiments are needed to make our results more conclusive and increase their generalizability.

RELATED WORK

Feature toggling is often discussed in grey literature by practitioners [START_REF] Davies | Feature Toggles The Good, The Bad, and The Ugly with Andy Davies[END_REF][START_REF] Fowler | Feature Toggles (aka Feature Flags)[END_REF][START_REF] Hari | Feature flags: the toggle, the A/B test and the canary -NDC Oslo[END_REF][START_REF] Mckenna | Feature Toggles: Lunch & Learn[END_REF][START_REF]Feature Flag Maintenance[END_REF]. It is heavily used in industrial settings, for trunk-based development, and a considerable number of feature toggles management frameworks exist (e.g., [START_REF] Osherove | Feature Toggle Framework List[END_REF]). But, only recently it has received attention in academic research. Regardless, most of the works target only some aspects of feature toggles, such as their adaptation by finding their best practices [START_REF] Davies | Feature Toggles The Good, The Bad, and The Ugly with Andy Davies[END_REF][START_REF] Mahdavi-Hezaveh | Software development with feature toggles: practices used by practitioners[END_REF][START_REF] Mahdavi-Hezaveh | Software development with feature toggles: practices used by practitioners[END_REF][START_REF] Neely | Continuous delivery? easy! just change everything (well, maybe it is not that easy)[END_REF][START_REF] Md Tajmilur Rahman | Feature toggles: practitioner practices and a case study[END_REF][START_REF] Md Tajmilur Rahman | The modular and feature toggle architectures of Google Chrome[END_REF], their classification and implementation [START_REF] Fowler | Feature Toggles (aka Feature Flags)[END_REF][START_REF] Mckenna | Feature Toggles: Lunch & Learn[END_REF], their removal [START_REF] Hoyos | On the Removal of Feature Toggles[END_REF][START_REF] Murali | Piranha: Reducing feature flag debt at uber[END_REF], and also their differences with configuration options [START_REF] Meinicke | Exploring differences and commonalities between feature flags and configuration options[END_REF][START_REF] Eduardo S Prutchi | How the adoption of feature toggles correlates with branch merges and defects in open-source projects?[END_REF]. To our knowledge, none of the current works discuss the interactions of feature toggles. Hence, compared to them, we show how feature toggles interact and believe that their modeling can be useful for their management. Besides, there are approaches that analyse the complexity of preprocessor directives in C-based systems [START_REF] Liebig | An analysis of the variability in forty preprocessor-based software product lines[END_REF]. In contrast to them, we analyse the complexity of feature toggles.

On the other hand, there are abundant works on variability modeling (e.g., into feature models) [START_REF] Apel | Featureoriented software product lines[END_REF][START_REF] Kyo | Feature-oriented domain analysis (FODA) feasibility study[END_REF], its extraction [START_REF] Rubin | A survey of feature location techniques[END_REF], and management [START_REF] Anquetil | A model-driven traceability framework for software product lines[END_REF]. But, adapting the existing variability-aware approaches [START_REF] Von Rhein | Presence-condition simplification in highly configurable systems[END_REF] to analyze feature toggle points (an alternative form of presence conditions) can be valuable. Herein, we proposed a new extraction and modeling approach of feature toggles.

CONCLUSION AND FUTURE WORK

Feature toggles are perceived as a light technique for enabling trunkbased development. This work explores the interaction among them by analysing five open-source software systems. We provide an approach to extract the structure of feature toggles and show that they interact in 40% of the cases, but only 7% between each other. Still, we believe that they need to be modeled into a Feature Toggle Model, as their interactions tend to multiply over the time (22%).

As future work, we plan to extend this study (i) by analysing the interaction of feature toggles in more systems, (ii) to further improve the modeling of their interaction into a Feature Toggle Model (FTM), and (iii) possibly to integrate our approach in feature toggles management frameworks. In particular, we would like to empirically evaluate the realization of feature toggles by feature toggles management frameworks, including their interaction, and to further improve the construction and formalization of the FTM.

Figure 1 :

 1 Figure 1: Evolution of feature toggles (y-axis, log scale) over time (x-axis) -Each point represents a change of toggles Figure 2: Evolution of interactions for the five systems

Figure 3 :

 3 Figure 3: An excerpt from the Feature Toggles Model of Kops

Table 1 :

 1 The five subject systems with their resulting # of feature toggles (FTs), # of logical relations, and the scattering of FTs in files. Where, Indep. -FTs with no interactions, Inter. -FTs into interactions, and No -toggle points with no logical relations

	System	Commit	#LOC	#Feature Toggles Total Unused Indep. Inter. Total No And Or Implies # Toggle Points	#Files Total With FT Range
	Boulder	f7c6fef	515,186	17	5	6	6	23	13	16	0	1	2,332	16	0-2
	Juju	89faeee 1,117,797	13	1	9	3	37	16	11 14	1	6,602	49	0-12
	Kops	5f1d95c 2,608,174	23	1	11	11	69	58	10	4	13 11,078	29	0-11
	Kubernetes	16227cf 4,581,828	108	31	24	53	278 170 130	8	24 17,503	297	0-23
	Loomchain	350994c	102,471	55	21	21	13	109	91	16	8	10	472	39	0-7

It is also reported in a recent issue: https://github.com/kubernetes/kops/pull/12341.

See https://github.com/kubernetes/kops/pull/12341

See https://github.com/kubernetes/kops/blob/9916733b3187338acbdccbf80396c7e3ffde8637/ docs/advanced/experimental.md Knowing the places and interactions of feature toggles, including the unused ones, can be helpful for developers during their testing, system configuration, and their removal when they are ready for final release.

https://insights.stackoverflow.com/survey/2021#technology

Based on our last check on 01/11/2021.

See https://tree-sitter.github.io/

Browse the pdfs in https://github.com/llesoil/poc_ftm/tree/main/results/FTM

For example: https://tree-sitter.github.io/tree-sitter/#available-parsers

ACKNOWLEDGMENTS

This research was funded by the SLIMFAST N°20810047 and the ANR-17-CE25-0010-01 VaryVary projects.


Sophie Clot
email: s.clot@reading.ac.uk

Co- Gilles Grolleau

Lisette Ibanez
email: ibanez@supagro.inrae.fr

A Reference Point Bias in Judging Cheaters

Keywords: Ethics, experimental survey, moral judgment, reference points. JEL numbers: C91; K42

Do observers judge differently a wrongdoer when s/he does not exploit a situation to its maximum extent? Using a social intuitionist perspective and taking into account the reference point bias, we hypothesize that people will judge a wrongdoing less severely when the situation is not exploited to its fullest extent. We run two experimental surveys in France and examine whether various wrongdoings performed in the business realm (overcharging travel expenses, overstating work hours, pollution) are judged less severely when different reference points are suggested: (i) no explicit reference point is mentioned, (ii) a reference point is mentioned and the maximum extent is reached, (iii) a reference point is mentioned but the maximum extent is not reached and (iv) the participant is invited to elicit a reference point corresponding to what s/he considers as the maximum extent. Our findings support that participants judge a wrongdoer less severely, when a reference point mentioning that s/he has not exploited the situation to its fullest extent is indicated or elicited. Our findings suggest that partial cheaters could emphasize their self-restraint to mitigate judgment and punishment if they get caught.

We draw some managerial and policy implications.

A Reference Point Bias in Judging Cheaters

In 2018, an accountant in Belgium was found guilty of embezzling public funds to an amount of €500,000 and argued for his defense that "[he] could have embezzled much more" [START_REF] La | Le comptable a volé 500 000 euros à la Communauté française : "J'aurais pu détourner beaucoup plus[END_REF].

Interestingly, he benefited from judges' leniency. In the same vein, a former Egyptian Culture Minister, Farouk Hosni who has been acquitted of embezzlement charges argued that "he could have embezzled much more during his tenure as minister" [START_REF] Al-Youm | Former culture minister acquitted of embezzlement charges, Egypt Independent[END_REF].

In these two anecdotes, the transgressors do not deny the wrongdoing per se but emphasize that they could have embezzled "much more". Interestingly, they seem to have benefited from an excessively lenient judgment, as reported by media. Does the statement that someone has not behaved badly to a maximum extent likely to soften the moral judgment of his wrongdoing? Imagine an employee that has decided to overcharge his travel and accommodation expense reports for an amount of €200, without any detection and punishment risk. Now, as an observer, you are asked to judge his unethical behavior under four different conditions (i) you have no extra information (ii) you know that he cannot overcharge more than €200 without taking the risk of being detected and sanctioned (iii) you know that he could overcharge up to €350 without any risk, but solicited only €200 (iv) you know that he overcharged €200 and you are asked to indicate what you consider the maximum extent the employee could have solicited, without taking the risk of being detected and sanctioned. Noteworthy, the ethical rules that are not respected and the victim (e.g., the employer) are the same, and the lie size or amount overcharged is identical in the four situations. Nevertheless, the reference points provided differ across situations, namely, (i) no reference point, (ii) a reference point or maximum extent is mentioned and reached, (iii) an identical reference point is mentioned but the maximum extent is not reached, and (iv) a reference point is elicited by participants corresponding to what they consider the maximum extent. These reference points correspond to realistic circumstances, where onlookers may be tempted to judge a wrongdoing, not in an absolute fashion, but from a reference point as emphasized by the seminal contribution of [START_REF] Tversky | The framing of decisions and the psychology of choice[END_REF].

As an intuitive benchmark, we have a condition without any explicit indication about a reference point. Two conditions allow to capture whether it is just the explicit presence of the maximum limit that generates a possible attenuating effect or the fact that this limit has not been fully exploited by the wrongdoer. A fourth condition elicits participants reference points by asking them to what could constitute the maximum limit in the considered situation. This additional treatment is very interesting to understand whether observers anticipate that people are partial or full cheaters [START_REF] Fischbacher | Lies in disguise-an experimental study on cheating[END_REF] and whether this anticipation influences subsequent judgements. Our main research question can be formulated as follows: Do these reference points, and especially the situation where the individual is presented as a partial cheater, lead onlookers to express a more lenient judgment?

This issue is crucial given the considerable amounts at stake. If we consider only expense reimbursement frauds, they account for 21 percent of fraud in small businesses, and 11 percent in large businesses, according to the Association of Certified Fraud Examiners 2018 Report to the Nations (ACFE, 2018). Even if the amounts seem trivial, these moderate losses can add up quickly and reach considerable levels. For instance, business travel expense fraud is estimated to cost U.S. organizations $1.9 billion per year [START_REF] Cohn | Expense fraud estimated to cost $1.9B annually[END_REF]. Understanding the factors that influence the onlookers' judgment on these offenses can help to prevent them. It is well-admitted that individuals attach importance to other people's opinion and judgment upon themselves and their actions. These judgments and opinions and resulting behaviors (e.g., ostracism) can even constitute an important component of the deterrent power of some punishment schemes. Interestingly, if the judgment of others such as colleagues or fellow citizens can be to some extent manipulated by perpetrators to artificially reduce the perceived seriousness of their wrongdoings and subsequent punishment in a predictable fashion, it is crucial to unveil this psychological mechanism. The proposed mechanism is almost free and based on the introduction of an arbitrary reference point where the perpetrator both admits his wrongdoing but emphasizes that s/he has not exploited the situation to its full extent. Given the likelihood of its application to a very broad range of situations with consequential behavioral outcomes, a better understanding of how this a priori irrelevant contextual factor shapes the judgment is required.

In most justice systems, fairness and equality are considered as two fundamental guidelines. A natural implication from a purely rational approach is that offenders who commit a similar wrongdoing should receive similar judgments and sentencing outcomes, regardless of irrelevant details. Understanding whether the moral judgments vary according to a suggested reference point is very important. Indeed, manipulating arbitrarily reference points used by onlookers is relatively easy (e.g., [START_REF] Ariely | Coherent arbitrariness: Stable demand curves without stable preferences[END_REF]; see also [START_REF] Pittarello | You can't be better than me: The role of the reference point in modulating people's pursuit of wealth[END_REF]. This manipulation can potentially lead to substantial differences in moral judgment and sanctions of objectively equivalent offences. It can ease moral transgressions and lead to subtle influence of observers. Also, this apparent inconsistency in moral judgments can lead people to question the fairness and legitimacy of systems when similar transgressions yield different reactions from observers and different punishments from authorities.

A reference point can indicate a gain or loss framing. [START_REF] Grolleau | Cheating and loss aversion: Do people cheat more to avoid a loss[END_REF] found people cheated more when decisions were framed in terms of losses rather than gains1 , but they did not investigate whether the frame also affects the moral judgments of onlookers. As far as we know, the literature is silent on how people judge a similar wrongdoing when they are informed that the transgressor exploits or not the situation to its fullest extent. At the same time, understanding whether onlookers' judgment can be influenced so easily is crucial. To fill this gap, we test whether onlookers judge similarly or differently a similar offense when various reference points are stated. In other words, may people judge more favorably a transgression that violates the same ethical principles and creates the same amounts of harm for the same victims if they have been previously informed that the transgressor has not fully exploited the situation?

The remainder of the paper is organized as follows. In the next section, we develop our conceptual framework by crossing the literature on moral judgment and reference points and draw the main behavioral hypotheses. The following sections are devoted to two experimental surveys, i.e. i) a preliminary study on a limited sample (N=341) and ii) a main study on a larger online sample (N=1517). For each experimental survey, we follow the same organization; participants and methods, design, results and implications. We also develop the research limitations and suggest avenues for further research. The last section concludes.

Moral judgement and Reference points

From a rationalist perspective, moral judgments are the results of conscious moral reasoning, a process that involves careful, rational thinking and the consistent application of general moral rules or principles. Such reason-based models imply the recognition of moral issues, and then application of moral reasons, rules, or frameworks to reach a moral judgment [START_REF] Rest | Moral development: Advances in research and theory[END_REF]; see also [START_REF] Jones | Ethical Decision Making by Individuals in Organizations: An Issue-Contingent Model[END_REF].

Among usual rationalist models, consequentialism focuses on the outcomes by seeking the maximization of well-being whereas formalism focuses on the duty to follow rules and principles. This perspective led scholars such as [START_REF] Jones | Ethical Decision Making by Individuals in Organizations: An Issue-Contingent Model[END_REF] to suggest a linear correlation between objective harm and severity of ethical judgment. But these models have difficulty in explaining moral judgments that do not correspond to good moral reasoning as in the case of moral dumbfounding 2 . This rationalist dominance has been challenged by the social intuitionist perspective [START_REF] Haidt | The emotional dog and its rational tail[END_REF][START_REF] Haidt | The new synthesis in moral psychology[END_REF] which posits that most moral judgments do not result from a conscious reasoning but rather involves quick, automatic, intuitive, and affective processes. The social intuitionist model emphasizes that most moral judgments result from intuitions that are strongly influenced by contextual factors. Rather than eliminating moral reasoning, the social intuitionist model argues that it occurs ex post, that is, after a judgment has been reached and serves to rationalize the ex ante intuition [START_REF] Haidt | The emotional dog and its rational tail[END_REF][START_REF] Haidt | The new synthesis in moral psychology[END_REF]. Haidt argues clearly that "moral reasoning does not cause moral judgment;

2 Interestingly, [START_REF] Stanley | A reason -based explanation for moral dumbfounding[END_REF] argue that moral dumbfounding does not provide the requisite evidence for concluding that reasons and reasoning play only a minor role in bringing about moral judgments and decisions. Appealing to the risk of causing harm that did not actually occur offers a reason-based justification of moral wrongness judgments. rather, moral reasoning is usually a post hoc construction, generated after a judgment has been reached" (p. 814)3 . These contextual factors can be incidental or irrelevant to the situation being judged, such as the cleanliness of the environments in which individuals form their judgments [START_REF] Schnall | Disgust as embodied moral judgment[END_REF], the time of the day at which moral judgments are made (Gunia et al., 2008), or even the creativity with which the transgression has been performed [START_REF] Wiltermuth | Creativity in unethical behavior attenuates condemnation and breeds social contagion when transgressions seem to create little harm[END_REF]. We consider another kind of contextual factors that can strongly affect the intuitive judgment, precisely, reference points or anchors [START_REF] Tversky | The framing of decisions and the psychology of choice[END_REF][START_REF] Ariely | Coherent arbitrariness: Stable demand curves without stable preferences[END_REF]. Reference points, or the reference dependence concept, illustrate how apparently irrelevant changes in the presentation of a decision problem can influence decision makers [START_REF] Tversky | The framing of decisions and the psychology of choice[END_REF]. For example, [START_REF] Tversky | The framing of decisions and the psychology of choice[END_REF] observed individuals' preferences reversal for a policy program to control a disease just by presenting a scenario that would prevent 200 of 600 deaths as a scenario with 400 lives being lost versus a scenario with 200 lives being saved. While the figures of the problem are exactly the same in both cases, the framing of the problem significantly influenced individuals' preference towards one program. Introducing reference points thus enables to change the frame (loss versus gain) in which individuals make decision with a potential impact on the subsequent decision. Imagine an employee who is expecting a €3,000 annual pay rise, but instead receives €1,000. This is very likely to be experienced as a disappointing news by the employee who will perceive it as a €2,000 loss. However, it would have been a €1,000 gain for an individual who was not expecting a pay rise, which means that his reference point was equal to zero. Moreover, in a gain-loss utility framework, people give more weight to the most common reference points, i.e., the status quo and extreme values, and less weight to information in the middle [START_REF] Baillon | Searching for the Reference Point[END_REF].

Reference dependence was first raised by the literature on decision making under uncertainty, and as such, most of the research is applied to risk preferences [START_REF] Sprenger | Reference-Dependent Preferences[END_REF]. To a lesser but still significant extent, reference-dependent preferences have also been applied to bargaining situations [START_REF] Kristensen | The effects of anchor points and reference points on negotiation process and outcome[END_REF]. In the latter, an initial offer will act as a reference point and will tie up future negotiations. Overall, the impact of reference dependence on moral judgment is missing from the literature. The closest research outcomes we could refer to relates to individual unethical behaviors. This literature shows that the maximum amount available that can be stolen acts as a reference point, with people maintaining a positive self-image by cheating less than this artificial reference point. The framing in this case consists in transforming stolen money into saved money (which is the difference between the maximum amount available and the amount that has been taken away). Several scholars argue that some people commit unethical actions and keep a positive self-image, by reassuring themselves that they could have done worse [START_REF] Mazar | The dishonesty of honest people: A theory of self-concept maintenance[END_REF][START_REF] Fischbacher | Lies in disguise-an experimental study on cheating[END_REF]. Many people cheat, but do not cheat to the maximum extent [START_REF] Fischbacher | Lies in disguise-an experimental study on cheating[END_REF][START_REF] Garrett | The brain adapts to dishonesty[END_REF][START_REF] Abeler | Preferences for truth-telling[END_REF]. For instance, using an ingenuous cheating dice game, [START_REF] Fischbacher | Lies in disguise-an experimental study on cheating[END_REF] found a high share of cheating subjects to be partial cheaters. Concretely, they did not report the payoff-maximizing draw, but preferred a lower draw, i.e., one that allows them to maintain a positive self-image [START_REF] Mazar | The dishonesty of honest people: A theory of self-concept maintenance[END_REF]. [START_REF] Garrett | The brain adapts to dishonesty[END_REF] also found that participants could have cheated much more than they actually did. In sum, there is substantive anecdotal and experimental evidence that people cheat, but do not do it to the fullest extent possible [START_REF] Abeler | Preferences for truth-telling[END_REF] 4 .

Interestingly, people are usually unaware of the possibility that their views, especially in the valuation domain, might change because of various reference points [START_REF] Ariely | Coherent arbitrariness: Stable demand curves without stable preferences[END_REF]. [START_REF] Ariely | Coherent arbitrariness: Stable demand curves without stable preferences[END_REF] found experimentally that initial valuations of familiar products and simple hedonic experiences are strongly influenced by arbitrary and irrelevant "anchors" such as a person's social security number. Even if the previous authors have not considered ethical judgment, it seems intuitively convincing that this vulnerability to automatic influences could apply to other domains, such as moral judgment. For instance, the same unethical act can be perceived differently if one compares it with the honesty reference (no wrongdoing at all) or with the maximum extent to which the wrongdoing could have been performed. If the suggested reference point is the lack of any wrongdoing, committing a wrongdoing is likely to be perceived as a loss compared to this ideal situation (see [START_REF] Kern | Bounded ethicality: The perils of loss framing[END_REF]. [START_REF] Kern | Bounded ethicality: The perils of loss framing[END_REF] found that individuals engaged in more unethical behavior when a decision was presented in a loss frame than when the same decision was presented in a gain frame. Conversely, if the suggested reference point is the maximum extent to which the wrongdoing could have been practiced, the same wrongdoing can appear as a gain.

Moreover, social judgments critically depend on which comparison standards are made accessible in the judgmental situation and the way reference points are violated [START_REF] Ockenfels | Bonus Payments and Reference Point Violations[END_REF].

Interestingly, [START_REF] Shalvi | Justified ethicality: Observing desired counterfactuals modifies ethical perceptions and behavior[END_REF] examined how observing desired counterfactuals impacted unethical decisions. A counterfactual can be perceived as a reference point. [START_REF] Shalvi | Justified ethicality: Observing desired counterfactuals modifies ethical perceptions and behavior[END_REF] suggested that the degree of lying depends on the extent to which self-justifications are available. These previous contributions emphasize that reference points play a pivotal role in how individuals will evaluate, judge and behave in domains related to their own judgments and decisions. Our contribution differs mainly because reference points are used to manipulate the moral judgment of onlookers on the wrongdoer's actions. Moral judgments do not occur in a vacuum and judges can be overly influenced by reference points that are provided by the involved individuals in a self-serving way. More precisely, the same embezzlement can be judged more severely if the action is compared to the noembezzlement scenario, rather than to the full or even partial embezzlement scenario. In contrast, we argue that it will be judged less severely if the judges or onlookers are influenced by an anchor about the maximum possible embezzlement or about other embezzlers who embezzled much more than the considered embezzler. Simply said, we hypothesize that anchors about the maximum extent (or to a higher extent) to which the wrongdoing could have occurred make onlookers judging the perpetrator less severely, if the indicated threshold has not been reached.

Given that dishonesty is morally wrong and considered as unethical in most societies, if not all, we predict that individuals will make a negative judgment on a dishonest act. Nevertheless, their moral judgments are likely to be reinforced or tempered by a number of contextual factors, such as the suggested reference points. Based on the preceding discussion, we formulate and test the following hypotheses:

 H1: Individuals will judge the same dishonest act as more unethical when no reference point is mentioned compared to a situation where a reference point is mentioned and the maximum extent is not reached.

 H2: Individuals will judge the same dishonest act at the same unethical level when no reference point is mentioned compared to when a reference point is mentioned and the maximum extent is reached, and compared to when the reference point is not mentioned but elicited by the participant himself.

 H3: Individuals will judge the same dishonest act as more unethical when a reference point is mentioned and the maximum extent is reached compared to a situation where the reference point is mentioned but where the maximum extent is not reached. Indeed, we contend that not stipulating a reference point can simply suggest individuals to use the honesty reference (i.e., no cheating at all) as a natural and intuitive comparison basis, especially when one considers that most individuals are intrinsically or morally motivated to not engage in dishonest actions (e.g., [START_REF] Gibson | Preferences for truthfulness: heterogeneity among and within individuals[END_REF][START_REF] Rosenbaum | Let's be honest: a review of experimental evidence of honesty and truth-telling[END_REF].

Preliminary study

Participants & methods

As a first investigation, we performed an experimental survey with a simple between-subjects design [START_REF] Weber | Scenarios in Business Ethics Research: Review, Critical Assessment, and Recommendations[END_REF][START_REF] Croson | Using experiments in corporate strategy research[END_REF] involving three identical unethical scenarios with the same endresult. All scenarios were about dishonest actions in the business realm.

Bystanders in the metropolitan area of Montpellier, a medium-sized city in the South of France (more than 470, 000 inhabitants in the metropolitan area in 2017), were randomly solicited to fill a pen-andpaper questionnaire (see Supplementary online materials, SOM1, for the complete experimental design). Respondents participated on a voluntary basis and did not receive a monetary compensation.

Each subject participated in only one treatment and was exposed to the three scenarios from this treatment in a fixed order. Participants to the survey were only asked to indicate the ethicality of each wrongdoing on a 7-point Likert scale from 1 (very ethical) to 7 (very unethical). The questionnaires were administered in February 2019 and March 2020, before the pandemics related restrictions.

Besides the severity judgment on the three scenarios, we also collected some individual socioeconomic data, namely, gender, age, education level, and financial situation. We gathered a sample of 341 complete observations of which 45% were women. The average age of participants equals 26, 45% of respondents feel financially comfortable and 36% possess a master degree or more.

Design

We used a between design with three scenarios. In order to ensure a high level of realism [START_REF] Weber | Scenarios in Business Ethics Research: Review, Critical Assessment, and Recommendations[END_REF], we selected three plausible scenarios that are all about dishonest actions in the business realm.

The scenarios were tested beforehand on twelve individuals (not included in the final sample). By debriefing these individuals, we get qualitative feedback on whether the scenarios were realistic and easy to understand. As a result, some sentences were better phrased (see Supplementary online materials, SOM1, for the complete experimental design). Concretely, we consider (1) an employee who found a way to overcharge his travel expenses to get higher reimbursements from his company (2) an employee who found a way to report more working hours than what s/he actually did and therefore earns a higher salary (3) and a company manager who decided to unlawfully dump 100 liters of a polluting substance into a river near his production plant, in order to make a financial profit.

These three scenarios constitute a preliminary robustness check across various domains. Scenarios 1 and 2 have been selected as the dishonest actions are related to personal monetary gains without visible social costs (financial loss for the firm) whereas in scenario 3, the wrongdoing has a high social component (environmental loss). Moreover, in the third scenario, the victim is a natural entity (e.g. plant, animal, or ecosystem) that is not able to defend itself contrary to a human victim (i.e., higher hierarchical level of management in the two first scenarios) [START_REF] Martin | The need to respect nature and its limits challenges society and conservation science[END_REF].

Consequently, we may expect that moral judgments will be more severe when the victim has a helpless status (see [START_REF] Dijker | Perceived vulnerability as a common basis of moral emotions[END_REF][START_REF] Schein | The theory of dyadic morality: Reinventing moral judgment by redefining harm[END_REF].

More precisely, each unethical act violates the same ethical principles and creates the same amounts of harm for the same victims. In this preliminary study we considered three treatments5 : without information about the fullest extent possible (T0), with information about the fullest extent possible that is not reached (T1), and with information about the fullest extent possible that is reached (T2).

We tested the three following hypotheses:  H1: T0 > T1 (Cheating in T0 is judged as more unethical than cheating in T1)  H2: T0 ≃ T2 (Cheating in T0 is judged as unethical as cheating in T2)  H3: T2 > T1 (Cheating in T2 is judged as more unethical than cheating in T1)

Results and Discussion

We report average judgments of the three scenarios, as well as the number of observations per treatment in Table 1. Onlookers judge the illegal dumping of a polluting substance into a river to be more unethical compared to over-reporting working hours or over-charging travel expenses in the workplace (Hotelling's T-squared test of equality of means is rejected at more than 99%). This comparison suggests that people are more sensitive to dimensions that affect the public good and 'silent' victims that cannot defend themselves compared to private bads that harm private entities and individuals who can defend themselves.

Comparing the judgment ratings with and without indication regarding the maximum limit (see Table 1) shows that participants do not judge similarly an identical behavior when various reference points are provided (Kruskal-Wallis test for equality of populations is rejected for all scenarios). For the three scenarios, people are most lenient when a limit is indicated but not reached (T1). The most severe judgement is when no information is given on the maximum limit (T0) for scenarios 1 and 2 only. First, looking at how individuals judge dishonesty when no explicit reference point is given (T0), we find that the average judgment is significantly more severe compared to when the maximum limit is indicated but not reached (T1). This result is robust across the 3 scenarios and provides preliminary empirical support for the hypothesis H1. Second, the moral judgments are quite similar in T0 (no threshold indicated) and T2 (threshold indicated and exhausted) in the three scenarios. In other words, the average judgement with no limit indicated (T0) is not more severe compared to the judgment when the maximum limit is reached (T2). This result provides preliminary support for the hypothesis H2. Third, our results show that in the three scenarios, a similar dishonest act is judged as less unethical when a reference point is given but the maximum extent is not reached (T1) compared to a situation where the same maximum extent is indicated and reached (T2), but this difference is significant in only two of them (S1, S3). This result provides partial empirical support for the hypothesis H3. When the limit is stipulated but not reached, the moral judgment of a similar wrongdoing is less severe compared to a situation where no limit is indicated. In addition, we find partial support that the moral judgement of a similar wrongdoing is less severe when a limit is stipulated but not reached compared to when the limit is indicated and reached. We also found partial empirical support that the moral judgments are quite similar when the limit is indicated and exhausted compared to a situation where no limit is mentioned. These preliminary results suggest that wrongdoers could use self-serving reference points to affect third party evaluators and obtain less severe judgements. Nevertheless, our preliminary experimental survey has some limitations that were addressed in a second study. First, our sample size was somewhat limited and getting results on a larger sample was crucial to reinforce their reliability. Second, we did not investigate how participants react if they were invited to elicit a reference point corresponding to the maximum extent. This extension can allow a better understanding of how various reference points affect the moral judgment of wrongdoers. Third, the preliminary study lacked some control variables that could be relevant such as the participant's ethical position [START_REF] Forsyth | A taxonomy of ethical ideologies[END_REF] or her/his professional situation.

Main Study

Participants & Methods

To overcome some limitations of our preliminary study, we added a supplementary treatment (rf. T3 in Box 1) and we conducted the survey experiment among a random sample of the French population via the French platform Foule Factory 6 . Alike the U.S. Amazon Mechanical Turk, this platform gives the opportunity for an integrated participant compensation system which complies with the French regulations on minimal wage, a large participant pool and a streamlined process of study design, participant recruitment, and data collection [START_REF] Buhrmester | Amazon's Mechanical Turk: A new source of inexpensive, yet high-quality, data?[END_REF].

Participants received a fixed payment of 1€ for filling in the questionnaire that lasted on average 5 minutes (corresponding to an average salary of 12€/hour). Each subject participated in only one treatment and was exposed to the three scenarios from this treatment in a random order.

Participants to the survey were asked to indicate the ethicality of each wrongdoing on a 7-point Likert scale from 1 (very ethical) to 7 (very unethical). The survey experiment was run in July 2021.

We run a power analysis to determine the minimum sample size required based on data collected during the preliminary study. The analysis revealed that we needed a sample size ranging from 234 to 660 observations according to the heterogeneous effect sizes between our different treatments and among the three scenarios (alpha=0.05; beta=0.80). We collected a sample of 1517 observations. Our sample is composed of 46% of men, 20% of respondents are older than 50 years, and 32.5% feel financially comfortable. 30% have a master degree or more, and 70% have a professional activity. We constructed dummy variables for all our control variables. We also collected information on each participant's ethical position. We used a shortened version of the Ethical Positional Questionnaire of [START_REF] Forsyth | A taxonomy of ethical ideologies[END_REF], where participants were asked to indicate on a 9-point Likert scale their level of (dis)agreement with several statements related to either idealism or relativism. We computed two scores for each of these categories of ethical orientation and created a dummy variable to distinguish subjects with a high level of ethical idealism and those with a high level of ethical relativism, using the classical median split. (see Supplementary online materials, SOM3, for more detailed information on the sample; Tables A andB).

Design

As in the preliminary study, we designed an experimental survey with a simple betweensubjects design [START_REF] Weber | Scenarios in Business Ethics Research: Review, Critical Assessment, and Recommendations[END_REF][START_REF] Croson | Using experiments in corporate strategy research[END_REF] involving the same three identical unethical scenarios with the same end-result, i.e. ( 1) an employee who found a way to overcharge his travel expenses to get higher reimbursements from his company (2) an employee who found a way to report more working hours than what s/he actually did and therefore earns a higher salary (3) and a company manager who decided to unlawfully dump 100 liters of a polluting substance into a river near his production plant, in order to make a financial profit (see Supplementary online materials, SOM2, for the complete experimental design). We designed the three scenarios in a way that facilitates comparison, by equalizing the damage of the wrongdoing to 200€/week for all. More precisely, for each kind of unethical act, the same ethical principles are transgressed, and an identical amount of harm is created for the same victims. We consider four treatments (see Box 1): no reference point (T0), a reference point is mentioned but the maximum extent is not reached (T1), with information about the fullest extent possible that is reached (T2), and finally without any information about the limit but each participant is invited to indicate the maximum extent to which one could cheat without attracting attention (T3).

Box 1. Description of the overcharging scenario across treatments  T0 (No maximum limit indicated): An employee found a way to overcharge his company travel expenses in order to obtain higher reimbursements. He overcharges his travel expenses by € 200 / week without attracting attention.  T1 (A maximum limit is indicated but the cheated amount is far below): An employee found a way to overcharge his company travel expenses in order to obtain higher reimbursements. He overcharges his travel expenses by € 200 / week, knowing that he could have overcharged up to € 350 without attracting attention.

 T2 (A maximum limit is mentioned and the cheated amount is equal to it): An employee found a way to overcharge his company travel expenses in order to obtain higher reimbursements. He overcharges his travel costs by € 200 / week, knowing that he could not have overcharged more than € 200 without attracting attention.

 T3 (Participants' maximum limit is elicited): An employee found a way to overcharge his company travel expenses in order to obtain higher reimbursements. He overcharges his travel expenses by 200 € / week. What do you think is the maximum amount he could overcharge for travel expenses in a week without attracting attention? ________ € For sake of clarity, we described in Box 1 the variations in the overcharging scenario across the four treatments. Our three hypotheses can be operationalized as follows:

 H1: T0 > T1 (Cheating in T0 is judged as more unethical than cheating in T1)

 H2: T0 ≃ T2≃T3 (Cheating in T0 is judged as unethical as cheating in T2 and in T3)

 H3: T2 > T1 (Cheating in T2 is judged as more unethical than cheating in T1)

Results and Discussion

The 1517 participants were randomly assigned to one of the treatments (T0, T1, T2, or T3). We gathered 360 observations for treatment T0, 371 for treatment T1, and respectively 391 and 395 for the two control treatments T2 and T3. Average judgments for the three scenarios are reported in Table 3. We observe that, on average, onlookers judge the illegal dumping of a polluting substance into a river to be more unethical compared to over-reporting working hours or over-charging travel expenses in the workplace (Hotelling's T-squared test of equality of means is rejected at more than 99%, t=26.5 and t=27.7 respectively), whereas over-reporting working hours and over-charging travel expenses are judged in a similar way (t=0.98). Moreover, 87.2% of respondents recommend the highest unethical grade, i.e. the 7 level, for illegal dumping of polluting substances, whereas only 42.1% (respectively 43.8) of respondents recommend the highest unethical grade for over-charging travel expenses (respectively over-reporting working hours). These results confirm findings of the preliminary study.

People are more sensitive to dimensions that affect the public good and 'silent' victims that cannot defend themselves compared to private bads that harm private entities and individuals who can defend themselves. As stated by [START_REF] Martin | The need to respect nature and its limits challenges society and conservation science[END_REF], "nature and natural entities cannot speak for themselves" which might explain why people might feel more responsible for defending them and recommend more severe judgments.

Figure 1. Average judgment for the 3 scenarios

Comparing the judgment ratings with and without any indication regarding the maximum limit (see Table 3) shows that participants do not judge similarly an identical behavior when various reference points are provided (Kruskal-Wallis test for equality of populations is rejected for all scenarios). For the 3 scenarios, people are most lenient when a limit is indicated but not reached (T1).

The most severe judgment is when no information is given on the maximum limit (T0) for all scenarios. Interestingly, we observe that judgments are less severe when the maximum limit is elicited (T3) than when no limit is mentioned (T0). However, results show that there is no correlation between the indicated limit and the judgment for all scenarios (𝜌 =0.046 for scenario 1, 𝜌 =0.031 for scenario 2 and 𝜌 =0.042 for scenario 3). Table 4 reports pairwise comparisons of judgments according to treatments. To account for the multiplicity of null hypotheses tested, we apply the procedure of [START_REF] List | Multiple hypotheses testing in experimental economics[END_REF] which has much greater ability to detect truly false null hypotheses (i.e. reduce type-I errors). We can make two important observations.

First, looking at how individuals judge dishonesty when no explicit reference point is given (T0), we find that the average judgment is significantly more severe compared to when the maximum limit is indicated but not reached (T1) for the three scenarios. This result provides convincing empirical support for hypothesis H1. Second, we did not find consistent support for hypothesis H2. Indeed, except for the scenario 3 (pollution) the moral judgments are lower when a maximum limit is indicated and exhausted (T2) or elicited (T3) than when no maximum level is mentioned (T0). Third, although the numbers go in the predicted directions, we find limited empirical support for hypothesis H3, only for scenario 1 (overcharging), where the equality of judgments is rejected at the 5% level for the un-adjusted p-values. Simply said, cheating when a maximum limit is mentioned and exhausted is not systematically judged as more unethical than cheating when a maximum limit is indicated but the cheated amount is far below. It suggests that the key lever in attenuating the moral judgment is the mention of a maximum limit, rather than the fact that it has been exhausted. As a robustness check, we run a multivariate regression model considering simultaneously the three dependent variables, and including respondents ethical position and socio-economic variables as control variables (see Table 5). The model, i.e. the three linear regressions taken together, controls for order effects and is statistically significant for both the Wilks' lambda and Pillai's trace criteria (both p-values are < 0.0001). The regression results are consistent with our previous results. More precisely and in line with hypothesis H1, the moral judgment is more lenient when individuals are told that the wrongdoing level is far below the maximum allowed for all three scenarios. Interestingly, we observe less severe judgments if the maximum limit is elicited for scenarios 1 and 2. Only a few socio-economic variables influence moral judgments, and these effects are consistent across scenarios. For all scenarios, ethical judgments are increased for older people, for people who have a professional activity, and for people with a high level of ethical relativism. In scenarios 1 and 2, being a male is associated with more lenient judgments.

We also analyzed the determinants of attributing the highest possible unethical grade, that can reflect the fact that some respondents might have felt restrained by the proposed scale. Accordingly, we constructed a binary variable (1 if the ethical judgment equals 7, 0 otherwise) and run probit regressions to investigate what factors contribute to choose this highest grade of unethical judgment and calculate marginal effects of significant variables. The results, not reported here but available in the SOM3, are in line with the previous results.

To summarize, H1 is supported while H2 and H3 are not consistently supported. An integrative explanation for the entire pattern of results is that mentioning reference points related to the possible maximum level to which a wrongdoing can be performed has an attenuating effect on moral judgements. This attenuating effect is the strongest when a maximum limit is indicated and not exhausted. The presence of a reference point seems to prevail over its origin (given or elicited) or level (i.e., whether the maximum extent has been reached or not).

General Discussion

When the limit is stipulated but not reached, the moral judgment of a similar wrongdoing is less severe compared to a situation where no limit is indicated. Regarding hypothesis 2 that was unsupported, a probable explanation of our result (i.e., the moral judgments are lower when a maximum limit is indicated or elicited (T1, T2 and T3) than when no maximum level is mentioned (T0)) might be the dilution effect or the scope bias. Indeed, using more than one source of evidence might result in biased regressive judgments [START_REF] Smith | Dilution in legal decision making: Effect of nondiagnostic information in relation to amount of diagnostic evidence[END_REF][START_REF] Sanborn | A dilution effect without dilution: When missing evidence, not non-diagnostic evidence, is judged inaccurately[END_REF]. In sum, more information is not necessarily better, as an overload of information increases the cognitive burden of searching the best possible outcome and therefore may lead to second-best decisions [START_REF] Kahneman | perspective on judgment and choice: mapping bounded rationality[END_REF]. For instance, giving customers more choices reduces their likelihood to make a purchase [START_REF] Iyengar | When choice is demotivating: Can one desire too much of a good thing[END_REF], or adding green information can harm the perceived quality of products [START_REF] Grolleau | Does advertising the green benefits of products contribute to sustainable development goals? A quasi-experimental test of the dilution effect[END_REF]. Similarly, individual judgments could be affected by irrelevant information or evidence and result in a dilution effect, leading individuals to make more regressive decisions or leaner judgments, e.g. the auditors' fraud risk assessments become less extreme if irrelevant evidence is added to the case information [START_REF] Hackenbrack | Implications of seemingly irrelevant audit evidence in judgment[END_REF][START_REF] Eilifsen | Mitigating the Dilution Effect in Auditors' Judgments Using a Frequency Response Mode[END_REF].

Regarding H3, even if results do not reach statistical significance for all scenarios, we found a clear tendency that cheating in T2 (a maximum limit is mentioned and the cheated amount is equal to it) is judged more unethical than cheating in T1 (a maximum limit is indicated but the cheated amount is far below). This partial support could indicate the effect of a limit is likely to be stronger when it is not exhausted, which corresponds well to the anecdotal examples reported in the introduction.

In other words, even if the mention of a reference point or maximum limit (regardless of its origin) has an attenuating effect on moral judgment, this effect is strongest when the maximum limit has not been exhausted. Interestingly, this attenuating mechanism is likely to apply to a wide variety of unethical acts in the business realm. Our findings extend the theory of "partial cheaters" by suggesting that wrongdoers could also decide to cheat a little as a strategy to mitigate punishment if they get caught.

The main implication of our results is that perpetrators of wrongdoings can be tempted to use self-serving reference points to affect third party evaluators and obtain less severe judgments. If offenders and their defenders anticipate the effect of reference points, they can attempt to manipulate them, even arbitrarily, to diminish the moral severity of judgments of outside observers upon their acts. Interestingly, this tactic can be used in a wide variety of contexts such as stealing, lying, cheating, embezzling or "cooking the books".

In addition to this external motivation and even if our protocol design does not allow us to test it, we would like to mention an additional and internal motivation that can push individuals to use self-serving reference points. Indeed, while our findings show that many people cheat "a little" or less than the maximum amount to mitigate punishment if they get caught, we speculate that they can also choose this strategy as a way to maintain a positive self-image. For instance, Hilbig and Hessler (2013; see also [START_REF] Shalvi | Justified ethicality: Observing desired counterfactuals modifies ethical perceptions and behavior[END_REF] showed experimentally that dishonesty threatens one's self view and as a consequence, people avoid major lies. In their meta-analysis on dishonest behavior, Gerlach et al. (2019, p. 20) proposes to devote more attention to the desire to appear honest by distinguishing whether participants want to appear honest to themselves (producing guilt when not following some internalized norms) or to others (producing shame when not following some social norms). Of course, we do not claim that influencing third party evaluations solicit the same psychological mechanisms and reasons than those underpinning the willingness to preserve a positive self-image while lying. A promising extension of our contribution will be to test experimentally whether wrongdoers consciously emphasize to themselves that they did not exploit the situation to the maximum extent to maintain their positive self-image and maybe to examine the respective contribution of each mechanism.

Given the power of this tactic and its detrimental and contagious consequences, it seems important to suggest some ways to de-bias individuals who are amenable to this bias [START_REF] Lilienfeld | Giving Debiasing Away Can Psychological Research on Correcting Cognitive Errors Promote Human Welfare?[END_REF]. A natural de-biasing candidate is to inform outside observers or judges at the adequate timing on the reference point bias. An extension could be to examine whether people are less subject to this reference bias if they are informed and cautioned just before. Another strategy can be to use simultaneously counter reference points such as the honesty norm, by creating a kind of rivalry among reference points.

A collateral implication suggested by our findings is that some interested individuals may attempt to manipulate the domain to which the wrongdoing belongs (e.g., public versus private domains, helpless versus powerful victim) in order to influence the moral judgment of onlookers. For instance, stating a company theft can be requalified as a theft affecting an employee fund or even as a theft that will prevent environmental investments can be intentional in order to affect the judgment of observers. In short, the way a similar wrongdoing is qualified may constitute a powerful influence weapon, but further research is required to elaborate and test whether and how the domain qualification affects the moral judgment of observers.

Limitations and future research

Our two survey experiments have several limitations. We do not measure a moral judgment in a real-world situation. An appropriate lab or field experiment where judges are incentivized to punish wrongdoers can significantly enrich the analysis. Rather than providing definitive replies, we consider our contribution as a stepping stone that paves the way to further research on this fascinating topic.

The way the reference point is created, framed and how far any departure from this reference point impacts judgment constitute insightful extensions. For instance, even if we found supporting evidence that third party evaluators attenuate their moral judgment when they are reminded that the wrongdoer has not fully exploited the situation, we did not examine whether and how the discrepancy size between the achieved extent and the maximum extent matters. It remains unclear whether a small difference is enough to activate the above-mentioned effect or whether a minimum size is necessary.

Computing this "elasticity" could usefully inform managers and policymakers on where to direct their attention and avoid a one-size-fits all approach. Moreover, does this tactic remain effective if used repetitively, e.g., in case of multiple wrongdoings, and for the same individual? Last but not least, we observed a different moral judgment level when the wrongdoing was related to human versus natural entities. Further investigations are needed to better understand the rationale behind this judgment discrepancy. Are judgments on unethicality subject to the nature of the victim (e.g., public versus private, human versus non-human entity)? In the case of a public good, people may perceive themselves as inside observers (potentially bearing the impact of the wrongdoing) while in a private good scenario, people may perceive themselves as outside observers (no direct relationship between the wrongdoing and themselves).

Conclusion

Thanks to two survey experiments, we investigated the effect of mentioning a maximum limit on moral judgments of wrongdoings. The main finding of our study is that reference points related to the maximum level to which a wrongdoing could be performed matter in moral judgement. The moral judgments of wrongdoings are lower when a maximum limit is indicated or elicited compared to situations where no maximum level is mentioned. Participants judge a wrongdoer less severely, when it is indicated that s/he has not exploited the situation to its fullest extent. Our findings suggest that partial cheaters can emphasize their self-restraint to mitigate judgment and punishment if they get caught.

Table 1 . Average judgement in the 3 treatments (S.D. in brackets)

 1

	Treatments		Average judgment rating (S.D)
		Nb of	Scenario 1	Scenario 2	Scenario 3
		Obs.	(Overcharging)	(Over-reporting)	(Pollution)
	Average judgement for all	341	4.85 (1.75)	4.95 (1.7)	6.28 (1.4)
	scenarios
	T0: No reference point at all	101	5.13 (1.75)	5.35 (1.66)	6.42 (1.31)
	T1: Cheated amount < Maximum	144	4.49 (1.75)	4.64 (1.65)	6.04 (1.56)
	T2: Cheated amount = Maximum	96	5.09 (1.65)	5 (1.74)	6.5 (1.19)
	p-value (Kruskal-Wallis test)		0.0031**	0.002**	0.011*

*p < .05, **p < .01 and ***p < .001

Table 2

 2

reports pairwise comparisons of judgements according to treatments. To account for the multiplicity of null hypotheses tested, we apply the procedure of List et al. (2019) (Theorem 3.1).

Table 2 . Multiple hypothesis testing (List et al., 2019) for equality of judgement Scenario 1 (Overcharging)

 2

					p-values
	Compared	Difference	Unadjusted		Adjusted
	treatments	in means	Remark 3.1	Thm. 3.1	Remark 3.7	Bonferroni	Holm
	T0 vs T1	0.6357	0.004**	0.01***	0.01***	0.012*	0.012*
	T0 vs T2	0.035	0.875	0.875	0.875	1	0.875
	T2 vs T1	0.6001	0.0063**	0.011*	0.0063**	0.019*	0.013*
			Scenario 2 (Over-reporting)
					p-values
	Compared	Difference	Unadjusted		Adjusted
	treatment	in means	Remark 3.1	Thm. 3.1	Remark 3.7	Bonferroni	Holm
	T0 vs T1	0.7076	0.0003***	0.0003***	0.0003***	0.001***	0.001***
	T0 vs T2	0.035	0.152	0.152	0.152	0.455	0.152
	T2 vs T1	0.3611	0.113	0.19	0.113	0.338	0.225
			Scenario 3 (Pollution)
					p-values
	Compared	Difference	Unadjusted		Adjusted
	treatment	in means	Remark 3.1	Thm. 3.1	Remark 3.7	Bonferroni	Holm
	T0 vs T1	0.374	0.048*	0.087	0.048*	0.145	0.09
	T0 vs T2	0.084	0.639	0.639	0.639	1	0.639
	T2 vs T1	0.458	0.014*	0.038*	0.038*	0.042*	0.042*

*p < .05, **p < .01 and ***p < .001

Table 3 . Average judgment in the 4 treatments (S.D in brackets)

 3

	Treatments		Average judgment rating (S.D)
		Nb of Obs.	Scenario 1	Scenario 2	Scenario 3
			(Overcharging)	(Over-reporting)	(Pollution)
	Average judgement for all	1517	5.69 (1.49)	5.75 (1.47)	6.72 (0.92)
	scenarios
	T0: No reference point at all	360	5.96 (1.34)	5.95 (1.36)	6.84 (0.60)
	T1: Cheated amount < Maximum	371	5.49 (1.61)	5.68 (1.52)	6.6 (1.11)
	T2: Cheated amount = Maximum	391	5.74 (1.42)	5.71 (1.46)	6.74 (0.89)
	T3: Cheated amount = Elicited	395	5.59 (1.53)	5.69 (1.50)	6.71 (1.00)
	p-value (Kruskal-Wallis test)		0.0003***	0.03*	0.003**

*p < .05, **p < .01 and ***p < .001

Table 4 . Multiple hypothesis testing (List et al., 2019) for equality of judgment ratings for the three scenarios Scenario 1 (Overcharging)

 4

					p-values
	Compared	Difference	Unadjusted		Adjusted
	treatments	in means	Remark 3.1	Thm. 3.1	Remark 3.7	Bonferroni	Holm
	T0 vs T1	0.47	0.0003***	0.0003***	0.0003***	0.002**	0.002**
	T0 vs T2	0.219	0.027*	0.087	0.068	0.162	0.108
	T0 vs T3	0.361	0.0003***	0.0003***	0.0003***	0.002**	0.0017**
	T1 vs T2	0.251	0.028*	0.071	0.071	0.168	0.084
	T1 vs T3	0.11	0.11	0.350	0.350	1	0.350
	T2 vs T3	0.142	0.181	0.307	0.181	1	0.361
	*p < .05, **p < .01 and ***p < .001
			Scenario 2 (Over-reporting)
					p-values
	Compared	Difference	Unadjusted		Adjusted
	treatments	in means	Remark 3.1	Thm. 3.1	Remark 3.7	Bonferroni	Holm
	T0 vs T1	0.273	0.012*	0.05*	0.05*	0.07	0.07
	T0 vs T2	0.236	0.023*	0.076	0.06	0.136	0.09
	T0 vs T3	0.256	0.013*	0.055	0.035*	0.078	0.065
	T1 vs T2	0.037	0.723	0.93	0.93	1	1
	T1 vs T3	0.017	0.874	0.874	0.874	1	0.874
	T2 vs T3	0.02	0.856	0.975	0.856	1	1
	*p < .05, **p < .01 and ***p < .001
			Scenario 3 (Pollution)
					p-values
	Compared	Difference	Unadjusted		Adjusted
	treatments	in means	Remark 3.1	Thm. 3.1	Remark 3.7	Bonferroni	Holm
	T0 vs T1	0.241	0.0007***	0.002**	0.002**	0.004**	0.004**
	T0 vs T2	0.1	0.627	0.154	0.063	0.376	0.188
	T0 vs T3	0.127	0.041	0.148	0.1	0.246	0.205
	T1 vs T2	0.141	0.053	0.16	0.127	0.316	0.211
	T1 vs T3	0.113	0.148	0.249	0.148	0.888	0.296
	T2 vs T3	0.028	0.695	0.695	0.695	1	0.695
	*p < .05, **p < .01 and ***p < .001

Table 5 . MANOVA multiple-variate regression for judgment ratings (S.D. in brackets)

 5

	Variable	Scenario 1	Scenario 2	Scenario 3
		(Overcharging)	(Over-reporting)	(Pollution)
	Treatment
	T1 (limit not reached)	-0.402***	-0.218*	-0.224***
		(0.104)	(0.104)	(0.068)
	T2 (limit reached)	-0.153	-0.188	-0.094
		(0.103)	(0.103)	(0.067)
	T3 (limit elicited)	-0.32**	-0.224*	-0.117
		(0.102)	(0.103)	(0.067)
	Control variables
	Gender	-0.283***	-0.251***	-0.061
		(0.074)	(0.074)	(0.048)
	Older than 50	0.481***	0.396***	0.167**
		(0.093)	(0.094)	(0.061)
	Financially	-0.138	-0.07	-0.042
	comfortable	(0.081)	(0.081)	(0.053)
	High education level	0.052	0.151	0.042
		(0.081)	(0.082)	(0.053)
	Professional activity	0.437***	0.302***	0.284***
		(0.081)	(0.081)	(0.053)
	Ethical Orientation
	(=1 if higher than the
	median)	0.341*	0.126	-0.103
	Idealist	(0.141)	(0.141)	(0.092)
	Relativist	0.383**	0.531***	0.179*
		(0.142)	(0.142)	(0.092)
	Constant	5.363***	5.345***	6.8***
		(0.124)	(0.125)	(0.081)
	Control for order effect	Yes	Yes	Yes
	F	17.31***	12.03***	4.64***
	R2	0.12	0.088	0.036
	Number of observations	1517	1517	1517
			Multivariate Test, F
	Wilks' lambda		7.12***
	Pillai's trace		6.92***
	*p < .05, **p < .01 and ***p < .001

This result has been supported by additional works (e.g.,Schindler & Pfattheicher,

2017; Huynh, 2020) but also questioned by other studies (e.g.,[START_REF] Heinicke | The Effect of Pledges on the Distribution of Lying Behavior: an Online Experiment[END_REF][START_REF] Soraperra | Is the victim max (Planck) or Moritz? How victim type and social value orientation affect dishonest behavior[END_REF].[START_REF] Heinicke | The Effect of Pledges on the Distribution of Lying Behavior: an Online Experiment[END_REF] indicated that a possible explanation between their results and those from previous studies could be stake sizes, that were considerably higher in[START_REF] Grolleau | Cheating and loss aversion: Do people cheat more to avoid a loss[END_REF] and[START_REF] Schindler | The frame of the game: Loss-framing increases dishonest behavior[END_REF]. In short, more studies are needed to corroborate these results.

Moreover, rather than just opposing these two perspectives, recent contributions in business ethics (e.g.,[START_REF] Provis | Intuition, analysis and reflection in business ethics[END_REF] adopt a more conciliatory view and consider them as complements.

This insight echoes research where participants found partial confessions attractive, but failed to anticipate the emotional costs associated with partially confessing, making individuals practicing partial confessions people feeling worse than not confessing or fully confessing[START_REF] Peer | I cheated, but only a little": Partial confessions to unethical behavior[END_REF].

For an illustration of the way treatments were presented to subjects see Box 1, which describes the different treatments for the scenario "Overcharging" of the study 2.