Much of this site, the agents and their code was made with AI assistance. It can contain errors. Use it at your own risk, and check results before you rely on them. Feedback is much appreciated: use the Feedback button at the bottom right.
The wage can be split into a part that follows the worker across employers and a part that exists only at one firm. The second part is the firm's wage effect. It is estimated from workers who change jobs. With few movers per firm the estimate is noisy. The noise counts as dispersion. The variance of firm effects comes out too high. Sorting, the covariance between the worker and firm effects, comes out too low. This is called limited mobility bias. The corrections subtract the part of the dispersion that is noise. FE-HO assumes the same noise for everyone. The leave-out estimator FE-HE lets the noise vary. BLM groups the firms into classes before it computes.
Here you simulate a linked panel of workers and firms where the true effects are known. Then you see how far each estimate lies from the truth. Instrumental variables and judge designs have their own agents.
The papers · four sources
What each of them contributes
- Kline (2025), Firm Wage Effects
- NBER Working Paper 33084, revised February 2025. What a firm effect is and how it is identified from job changes within a connected set of firms. Why the plug-in variance is biased. The leave-out correction with exact diagonals of the hat matrix.
- Kline (2025), Labor market monopsony
- Handbook of Labor Economics, chapter 8. When the firm faces an upward-sloping labor supply curve, the wage is set below productivity. The markdown is 1/(1 + φ), where φ is the supply elasticity the firm faces.
- Bonhomme, Lamadon and Manresa (2019)
- Econometrica. Firms are grouped into classes by their wage distribution and workers into types. A mixture model on the movers gives the effects, with or without interactions. The version on disk is the working paper from February 2016.
- Bonhomme, Holzheu, Lamadon, Manresa, Mogstad and Setzler (2023)
- Journal of Labor Economics. With few movers per firm the estimated variance of firm effects rises. Sorting falls toward zero or below. The corrected estimators stay flat. The paper compares FE, FE-HO, FE-HE and CRE in four countries.
Simulate · choose the panel
The estimates against the truth
The panel has four periods. Each worker changes firm with probability 0.2 per period. Sorting is the latent correlation that places workers in firms ranked by the firm effect. The realized correlation is lower. The firm effect share is the variance of the firm effect divided by the sum of the variances of the worker and firm effects. The noise has standard deviation 0.3. Everything is computed on the server with the same tools as the MCP server.
| Estimator | Var(ψ) | True Var(ψ) | Corr(α, ψ) | True corr | What it does |
|---|
From the tool fe_trust
How much can we trust the estimates
The exercise from Bonhomme et al. (2023), Section 3.2. Firms with at least 15 movers are kept. Then movers are removed at random until 50, 20 and 10 percent remain. Each point is the mean over two draws. The panel has 6,000 workers, 60 firms and 6 periods. The firm effect has standard deviation 0.15 and the noise 0.4. The numbers are shares of the wage variance on the connected set.
| Movers kept | Per firm | FE variance | FE sorting | FE-HO variance | FE-HE variance | FE-HE sorting | BLM variance | BLM sorting | True variance | True sorting |
|---|
In the paper the variance share from firm effects in the US is about 5 to 6 percent with all movers (28 per firm on average). With 20 percent of the movers (about 6 per firm) it is about twice as large: 11 percent. Sorting turns negative. FE-HO, FE-HE and CRE stay almost flat. On the panel in the delivery the FE share rose from 0.062 to 0.096 between 100 and 20 percent (a factor of 1.5). Sorting fell from 0.092 to −0.011. FE-HE lay between 0.031 and 0.054 against a truth of 0.060.
From the tool fe_markdown
Monopsony
The firm must raise the wage to get more workers. The supply curve it faces slopes upward. The elasticity φ says by how many percent employment rises when the wage rises by one percent. The firm sets the wage at φ/(1 + φ) of productivity. The markdown is 1/(1 + φ). The calibration on p. 709 uses a shifted power distribution. The wage divided by the shift is 1.1, and the pass-through from productivity to the wage is 0.1.
| φ | Markdown | Wage / productivity | Profit per worker / p | Superelasticity | π | Profit margin | The chapter |
|---|
Checklist · from the tool fe_checklist
The assumptions, the estimators and the diagnostics
The list comes from the tool fe_checklist. Page numbers refer to the NBER version of Kline (2025) and the 2020 NBER version of Bonhomme et al. (BHLMMS). For BLM they refer to the 2016 working paper. For monopsony they refer to the printed pages of the Handbook chapter.
The assumptions
The estimators
The diagnostics
Reference numbers from the papers
Method and sources
How the numbers are computed
The papers are Kline, P. (2025). Firm Wage Effects. NBER Working Paper 33084, revised February 2025. Kline, P. (2025). Labor market monopsony: fundamentals and frontiers. Handbook of Labor Economics, chapter 8, pp. 655-728. Bonhomme, S., Lamadon, T. and Manresa, E. (2019). A Distributional Framework for Matched Employer Employee Data. Econometrica. Bonhomme, S., Holzheu, K., Lamadon, T., Manresa, E., Mogstad, M. and Setzler, B. (2023). How Much Should We Trust Estimates of Firm Effects and Worker Sorting? Journal of Labor Economics.
The computations are done by firmsadvisor 0.1.0, a Python package written for this project. None of the papers supplies data, so the package is checked against what is in print. The example in Figure 1 of Kline gives the printed weights 7/12, −1/12, −1/12, 5/12, −1/6 and 1/6 on the six edges. The diagonals of the hat matrix are 7/12 and 1/3. In the regime from Bonhomme et al. the FE variance share rose from 0.062 to 0.096 when 20 percent of the movers are kept. Sorting fell from 0.092 to −0.011. FE-HE stayed flat. On a panel with sorting 0.5 the BLM correlation lies 0.027 from the truth where FE lies 0.073 below. The monopsony numbers match the chapter: a markdown of 18 percent at φ = 4.5, and profit p/3 and p/5 at φ = 2 and 4. The calibration on p. 709 gives −10, −2.59 and 51 percent at w/b = 1.1. At w/b = 1.04 it gives −25, −1.07 and 30 percent.
The leave-out estimator has been compared with the package pytwoway in a separate environment. The plug-in components agree to 13 decimals, so the connected set and the solution are the same. The FE-HE estimates differ by 0.0017 on average over 30 draws. Both lie within 1.5 standard errors of the truth. The difference arises because the packages center the data and estimate the error variance differently. Both are unbiased. pytwoway is not on the server. It cannot be imported under numpy 2. The import alone uses 274 MB.
Limits of what is included. The CRE estimator from Bonhomme et al. (2023), the connected-at-random imputation in Kline, the dynamic model of BLM and standard errors are not implemented. BLM is computed in a stationary version with the same distributions in both periods of a move. The paper by Bonhomme, Lamadon and Manresa on disk is the 2016 working paper and not the published version. The rows of each mover are collapsed to one row per worker and firm. Stayers keep their rows. No real data are on the server.
The tools are also available as an MCP server at https://andreaskostol.no/mcp. Their names begin with fe_. The panel from fe_simulate comes back as a download link. It is used as panel_path in the other tools and is deleted after one day. Instrumental variables are covered in Instrumental variables and judge designs in Judge and examiner designs. How to connect your assistant.