From d3b9dab7aad32f49d11e50031a4b4831830cb14a Mon Sep 17 00:00:00 2001 From: Carlos Alba Fajardo Date: Tue, 10 Feb 2026 10:07:47 -0500 Subject: [PATCH 1/6] Add literature context to Monetary Policy with Heterogeneous Agents --- .../GKNMonetaryPolicyHA.ipynb | 61 +- .../Gornemann_ballpark.bib | 1543 +++++++++++++++++ .../GKNMonetaryPolicyHA/prior-literature.md | 15 + .../GKNMonetaryPolicyHA/proposed-revisions.md | 66 + .../subsequent-literature-analysis.md | 22 + .../subsequent-literature.bib | 196 +++ 6 files changed, 1888 insertions(+), 15 deletions(-) create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/Gornemann_ballpark.bib create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/prior-literature.md create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/proposed-revisions.md create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/subsequent-literature-analysis.md create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/subsequent-literature.bib diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA.ipynb b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA.ipynb index 11e1f659..7727ebf4 100644 --- a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA.ipynb +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA.ipynb @@ -19,7 +19,8 @@ "metadata": {}, "source": [ "* Notebook created by Nino Kodua\n", - "* October 20, 2020" + "* October 20, 2020\n", + "* Contributor: Carlos Alba (literature synthesis and revisions)\n" ] }, { @@ -33,7 +34,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "There is an evidence that even with the low interest rates, monetary policy shocks affect the level of aggegate acitivity, and the distribution of income and consumption across households. This paper analyzes the distributional effects of wealth across socioeconomic groups. It incorporates:\n", + "There is an evidence that even with the low interest rates, monetary policy shocks affect the level of aggregate acitivity, and the distribution of income and consumption across households. This paper analyzes the distributional effects of wealth across socioeconomic groups. It incorporates:\n", "* New Keynesian sticky price framework (aggregate level)\n", "* Imperfect consumption insurance and household heterogeneity - 3 dimensions:\n", " * current potential productivity if employed\n", @@ -42,7 +43,7 @@ "* Search and matching frictions (labor market)\n", "\n", "\n", - "Main contributions and attibutes of the paper that differentiate it from the existing literature include:\n", + "Main contributions and attributes of the paper that differentiate it from the existing literature include:\n", "* Extention of an existing incomplete market general equilibrium models (introduction of nominal frictions)\n", "* Impact of monetary policy on economic activity even if the redistribution of wealth is absent\n", "* Distributional consequences of the interaction between monetary policy and unemployment\n", @@ -66,6 +67,22 @@ "The goal of the paper is to establish the extent to which monetary policy in the US might have distributional effects through the channels included in the model, as well as the impact of monetary policy on inequality." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prior Literature" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The paper combines two strands of macroeconomics. The first is **New Keynesian monetary policy**: nominal rigidities and interest-rate rules as the main transmission mechanism. Woodford (1998) showed that inflation can be analyzed in a “cashless” setup where the central bank sets interest rates rather than the money supply, which is the standard basis for modern DSGE policy analysis. Much of that work used a representative agent and ignored distribution.\n", + "\n", + "The second strand is **heterogeneous-agent macroeconomics** with incomplete markets and labor market frictions. Aiyagari (1994) showed that uninsurable idiosyncratic risk and borrowing limits generate precautionary saving and realistic wealth inequality. Later work (e.g. Heathcote, Storesletten, and Violante 2009) clarified how heterogeneity matters for aggregates and welfare. Search and matching were brought into general equilibrium models of unemployment (e.g. Mortensen and Pissarides 1994; Merz 1995), and combined with nominal rigidities (e.g. Walsh 2005; Krause and Lubik 2007; Blanchard and Galí 2010). The distributional effects of inflation and monetary policy were studied in incomplete-markets settings (e.g. Erosa and Ventura 2002; Doepke and Schneider 2006; Meh and Terajima 2011). GKN’s contribution is to integrate heterogeneous households, incomplete markets, and search frictions into a single New Keynesian model, so that the redistributive and welfare effects of monetary policy can be quantified." + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -77,7 +94,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In order to introduce earnings heterogeneity, the model introduces labor market search and matching frictions (Mortensen and Pissaridis, 1994) into the heterogeneous agent circumstances (Nakajima, 2012 and Krusell et al., 2010). Producers are monopolistically competitive and face quadratic adjustment costs (Rotemberg 1982)." + "In order to introduce earnings heterogeneity, the model introduces labor market search and matching frictions (Mortensen and Pissarides, 1994) into the heterogeneous agent circumstances (Nakajima, 2012 and Krusell et al., 2010). Producers are monopolistically competitive and face quadratic adjustment costs (Rotemberg 1982)." ] }, { @@ -129,7 +146,7 @@ "* 2 shocks for cyclical fluctuations in the model:\n", " * Z - the aggregate productivity shock\n", " * D - the monetary policy shock\n", - " * $\\mu=(e, s, a) \\in \\mathcal{M}$ - type distribution fof households" + " * $\\mu=(e, s, a) \\in \\mathcal{M}$ - type distribution of households" ] }, { @@ -145,7 +162,7 @@ "source": [ "Households are heterogeneous in 3 aspects. A household either works full time or does not work, has a skill level and saves for the future in the mutual fund.\n", "* $e \\in\\{0,1\\}$ - Employment status (0: unemployed, 1: employed)\n", - "* $s \\in S$ - Exogeneous household skill level\n", + "* $s \\in S$ - exogenous household skill level\n", "* $a \\in A \\subseteq \\mathbb{R}^{+}$ - Share holdings of a household in the mutual funds." ] }, @@ -162,7 +179,7 @@ "metadata": {}, "source": [ "1. When households start the period the have information about their employment status, skill level and state of economy.\n", - "2. Afterwards, there is a transition - household lose their jobs with exogeneous probability $\\lambda$.\n", + "2. Afterwards, there is a transition - household lose their jobs with exogenous probability $\\lambda$.\n", "3. Newly employed households - unemployed households search for jobs and are matched to firm vacancies. \n", "4. Household consumption and saving decision, and the production process.\n", "5. Aggregate shocks\n", @@ -382,7 +399,7 @@ "* Households hold assets in the shares in mutual funds\n", "* share are traded in a competitive market\n", "* 5 types of assets\n", - " * Equity associated with intermedaite goods procuers, final goods producers, capital service producers, and labor service producers\n", + " * Equity associated with intermediate goods producers, final goods producers, capital service producers, and labor service producers\n", " * Bonds - mutual funds can trade with each other\n", "* The Central Bank controls rate of return\n", "* Equilibrium price of bonds:\n", @@ -417,7 +434,7 @@ "* $\\bar{\\Pi}$: inflation target\n", "* $\\bar{y}$: output target\n", "* D: Persistent monetary policy shocks\n", - " * follows a first-order autogregressive process:\n", + " * follows a first-order autoregressive process:\n", " \\begin{aligned}\n", " \\log \\left(D^{\\prime}\\right)=\\rho_{D} \\log (D)+\\epsilon_{D}, \\text { where } \\epsilon_{D} \\text { is i.i.d. } N\\left(0, \\sigma_{D}^{2}\\right), \\rho_{D} \\in[0,1)\n", " \\end{aligned}" @@ -498,7 +515,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "First, the response of the aggregate economy, including output and its compenents, labor market, prices, and assets, to the TFP shocks is reported. (1% TFP shock in period 1)\n", + "First, the response of the aggregate economy, including output and its components, labor market, prices, and assets, to the TFP shocks is reported. (1% TFP shock in period 1)\n", "\n", "Figures present responses in the New Keynesian (NK) model and in the economy without nominal rigidities (RBC). \n", "\n", @@ -548,7 +565,7 @@ "* Labor income increases by a different degree for different segments of wealth\n", "* The lowest percentiles of the wealth distribution show stronger response in terms of all income compared to higher percentiles\n", "* Consumption response is also heterogeneous\n", - "* The responces of the Gini indexes is mild\n", + "* The responses of the Gini indexes is mild\n", " * 1 % TFP shocks results into a fall of the earnings Gini by 0.16 %" ] }, @@ -596,7 +613,7 @@ "* Monetary policy tightening reduces demand for labor services\n", "* Hiring, vacancy posting and job finding rates fall \n", "* Unemployment rate increases by 1.5 %\n", - "* Since households are borrowing-constraines, unemployment decreases aggregate demand even further\n", + "* Since households are borrowing-constrained, unemployment decreases aggregate demand even further\n", "\n", "\n", "\n", @@ -635,7 +652,7 @@ "* Income of high-wealth household rises strongly because of an increase in dividends\n", "* Income of lower-wealth households declines\n", "* Difference in the responce of income betwee the top 5% and the bottom 5% is very significant, 7% (income heterogeneity)\n", - "* Consumption declines for the lower-wealth households and is stable for the wealthies\n", + "* Consumption declines for the lower-wealth households and is stable for the wealthiest\n", "\n", "\n", "\n", @@ -665,6 +682,20 @@ "" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Subsequent Literature" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Later work has extended the analysis of **monetary policy in heterogeneous-agent New Keynesian (HANK) models**. One line of research focuses on transmission mechanisms: how marginal propensities to consume, wealth distributions, and labor income risk change aggregate and distributional responses to monetary shocks (e.g. Herkenhoff 2015; Chen 2018; Alves 2019). Another line deepens the role of **labor market frictions** in HANK models—unemployment risk, job-finding rates, and wage rigidity—and shows that they amplify distributional effects and matter for optimal policy (e.g. Hagedorn 2018; Bertsch 2017; Jones 2017). The frontier combines rich household heterogeneity with empirically grounded labor market dynamics and policy rules; open questions include identification of redistribution channels in the data and the interaction of monetary and fiscal policy in HANK environments." + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -676,11 +707,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The monetary policy shocks have significantly different implications in terms of the welfare of different segments of households. While households in the top 5% of wealth distribution see benefits from a contractionary monetary policy, the bottom 5% of wealth distribution faces loses. Therefore, monetary policy affects different households differently and increases earnings, income, wealth and consumption heterogeneity.\n", + "The monetary policy shocks have significantly different implications in terms of the welfare of different segments of households. While households in the top 5% of wealth distribution see benefits from a contractionary monetary policy, the bottom 5% of wealth distribution faces losses. Therefore, monetary policy affects different households differently and increases earnings, income, wealth and consumption heterogeneity.\n", "\n", "* The effects are significant even after the impact of monetary policy on aggregate economy has died out\n", "* TFP shocks affect the population more uniformly\n", - "* Contractionary monetary policy only benefits the wealthies" + "* Contractionary monetary policy only benefits the wealthiest" ] } ], diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/Gornemann_ballpark.bib b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/Gornemann_ballpark.bib new file mode 100644 index 00000000..2b34f1b0 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/Gornemann_ballpark.bib @@ -0,0 +1,1543 @@ +@ARTICLE{Gornemann2012-jt, + title = "Monetary policy with heterogeneous agents", + author = "Gornemann, Nils and Kuester, Keith and Nakajima, Makoto", + journal = "SSRN Electron. J.", + publisher = "Elsevier BV", + abstract = "We build a New Keynesian model in which heterogeneous workers + differ with regard to their employment status due to search and + matching frictions in the labor market, their potential labor + income, and their amount of savings. We use this laboratory to + quantitatively assess who stands to win or lose from + unanticipated monetary accommodation and who benefits most from + systematic monetary stabilization policy. We find substantial + redistribution effects of monetary policy shocks; a + contractionary monetary policy shock increases income and welfare + of the wealthiest 5 percent, while the remaining 95 percent + experience lower income and welfare. Consequently, the negative + effect of a contractionary monetary policy shock to social + welfare is larger if heterogeneity is taken into account.", + year = 2012, + language = "en" +} + +@ARTICLE{Akyol2004-my, + title = "Optimal Monetary Policy in an Economy with Incomplete Markets and + Id- iosyncratic Risk", + author = "Akyol, Ahmet", + journal = "J. Monet. Econ.", + volume = 51, + number = 6, + pages = "1245--1269", + month = sep, + year = 2004 +} + +@ARTICLE{Albanesi2007-nt, + title = "Inflation and inequality", + author = "Albanesi, Stefania", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 54, + number = 4, + pages = "1088--1114", + abstract = "Cross-country evidence on inflation and income inequality + suggests that they are positively related. This article explores + the hypothesis that this correlation is the outcome of a + distributional conflict underlying the determination of + government policies. A political economy model is presented in + which equilibrium inflation is positively related to the degree + of inequality in income due to the relative vulnerability to + inflation of low income households.", + month = may, + year = 2007, + language = "en" +} + +@ARTICLE{Altig2011-ic, + title = "Firm- Specific Capital, Nominal Rigidities and the Business Cycle", + author = "Altig, David and Christiano, Lawrence and Eichenbaum, Martin and + Linde, Jesper", + journal = "Rev. Econ. Dyn.", + volume = 14, + number = 2, + pages = "225--247", + month = apr, + year = 2011 +} + +@ARTICLE{Andolfatto1996-gw, + title = "Business cycles and labor-market search", + author = "Andolfatto, D", + journal = "The American Economic Review", + volume = 86, + number = 1, + pages = "112--132", + month = mar, + year = 1996 +} + +@ARTICLE{Barnichon2010-jj, + title = "Building a composite help-wanted index", + author = "Barnichon, Regis", + journal = "Econ. Lett.", + publisher = "Elsevier BV", + volume = 109, + number = 3, + pages = "175--178", + abstract = "This paper builds a measure of vacancy posting over 1951–2009 + that captures the behavior of total—print and online— help-wanted + advertising, and can be used for time series analysis of the US + labor market.", + month = dec, + year = 2010, + language = "en" +} + +@ARTICLE{Chang2011-qr, + title = "Labor-Market Heterogeneity, Aggregation, and the + Policy-(In)variance of {DSGE} Model Parameters", + author = "Chang, Yongsung and Kim, Sun-Bin and Schorfheide, Frank", + journal = "RCER Working Papers", + volume = 566, + month = sep, + year = 2011 +} + +@ARTICLE{Cheron2000-nf, + title = "The Phillips and Beveridge curves revisited", + author = "Chéron, Arnaud and Langot, François", + journal = "Econ. Lett.", + publisher = "Elsevier BV", + volume = 69, + number = 3, + pages = "371--376", + abstract = "This paper extends the labor market search model to account for + monopolist intermediate good firms who face price adjustment + costs. We show quantitatively that embedding monetary shocks in + this framework allows to mimic the Phillips and Beveridge curves.", + month = dec, + year = 2000, + language = "en" +} + +@ARTICLE{Christiano2005-ku, + title = "Nominal Rigidi- ties and the Dynamic Effects of a Shock to Monetary + Policy", + author = "Christiano, Lawrence J and Eichenbaum, Martin and Evans, Charles L", + journal = "J. Polit. Econ.", + volume = 113, + number = 1, + pages = "1--45", + month = feb, + year = 2005 +} + +@ARTICLE{Christoffel2008-tj, + title = "The New Area-Wide Model of the Euro Area - A Micro-Founded + Open-Economy Model for Forecasting and Policy Analysis", + author = "Christoffel, Kai and unter Coenen, Anders", + journal = "Work. Pap. Ser.", + volume = 944, + month = sep, + year = 2008 +} + +@BOOK{Chung2010-sz, + title = "Documentation of the Estimated, Dynamic, Optimization-based ({EDO}) + Model of the {U}.{S}. Economy: 2010 Version,” Finance and Economics + Discussion Series 2010-29, Board of Governors of the Federal + Reserve System", + author = "Chung, Hess T and Michael, T and Kiley, Jean-Philippe", + address = "U.S.", + year = 2010 +} + +@ARTICLE{Clarida1998-sk, + title = "Monetary Policy Rules in Practice: Some International Evidence", + author = "Clarida, Richard and Gal, Jordi and Gertler, Mark", + journal = "Eur. Econ. Rev.", + volume = 42, + number = 6, + pages = "1033--1067", + month = jun, + year = 1998 +} + +@ARTICLE{Clarida2000-pd, + title = "Monetary policy rules and macroeconomic stability: Evidence and + some theory", + author = "Clarida, Richard and Gali, Jordi and Gertler, Mark", + journal = "Q. J. Econ.", + publisher = "Oxford University Press (OUP)", + volume = 115, + number = 1, + pages = "147--180", + abstract = "We estimate a forward-looking monetary policy reaction function + for the postwar United States economy, before and after Volcker’s + appointment as Fed Chairman in 1979. Our results point to + substantial differences in the estimated rule across periods. In + particular, interest rate policy in the Volcker-Greenspan period + appears to have been much more sensitive to changes in expected + ineation than in the pre-Volcker period. We then compare some of + the implications of the estimated rules for the equilibrium + properties of ineation and output, using a simple macroeconomic + model, and show that the Volcker-Greenspan rule is stabilizing.", + month = feb, + year = 2000, + language = "en" +} + +@ARTICLE{Cogley2010-ek, + title = "Coibion, Olivier and Yuriy Gorodnichenko, “Monetary Policy, Trend + Inflation, and the Great Moderation: An Alternative Interpretation", + author = "Cogley, Timothy and Primiceri, Giorgio E and Sargent, Thomas J", + journal = "Am. Econ. J. Macroecon.", + volume = 2, + number = 1, + pages = "341--370", + month = jan, + year = 2010 +} + +@ARTICLE{Kueng2012-it, + title = "Innocent Bystanders? Monetary Policy and In- equality in the + {U}.{S},” {NBER} Working Papers 18170", + author = "Kueng, Lorenz and Silvia, John", + journal = "National Bureau of Economic Research", + month = jun, + year = 2012 +} + +@ARTICLE{Blanchard2010-tz, + title = "Labor markets and monetary policy: A new Keynesian model with + unemployment", + author = "Blanchard, Olivier and Galí, Jordi", + journal = "Am. Econ. J. Macroecon.", + publisher = "American Economic Association", + volume = 2, + number = 2, + pages = "1--30", + month = apr, + year = 2010 +} + +@ARTICLE{Curdia2010-mq, + title = "Credit spreads and monetary policy", + author = "Cúrdia, Vasco and Woodford, Michael", + journal = "J. Money Credit Bank.", + publisher = "Wiley", + volume = 42, + number = "s1", + pages = "3--35", + abstract = "We consider the desirability of modifying a standard Taylor rule + for interest rate policy to incorporate adjustments for measures + of financial conditions. We consider the consequences of such + adjustments for the way policy would respond to a variety of + disturbances, using the dynamic stochastic general equilibrium + model with credit frictions developed in Cúrdia and Woodford + (2009a). According to our model, an adjustment for variations in + credit spreads can improve upon the standard Taylor rule, but the + optimal size of adjustment depends on the source of the variation + in credit spreads. A response to the quantity of credit is less + likely to be helpful.", + month = sep, + year = 2010, + language = "en" +} + +@ARTICLE{Dedola2007-ox, + title = "What does a technology shock do? A {VAR} analysis with + model-based sign restrictions", + author = "Dedola, Luca and Neri, Stefano", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 54, + number = 2, + pages = "512--549", + abstract = "This paper estimates the effects of technology shocks in VAR + models of the U.S., identified by imposing restrictions on the + sign of impulse responses. These restrictions are consistent with + the implications of a popular class of DSGE models, with both + real and nominal frictions, and with sufficiently wide ranges for + their parameters. This identification strategy thus substitutes + theoretically motivated restrictions for the atheoretical + assumptions on the time-series properties of the data that are + key to long-run restrictions. Stochastic technology improvements + persistently increase real wages, consumption, investment and + output in the data; hours worked are very likely to increase, + displaying a hump-shaped pattern. Contrary to most of the related + VAR evidence, results are not sensitive to a number of + specification assumptions, including those on the stationarity + properties of variables.", + month = mar, + year = 2007, + language = "en" +} + +@ARTICLE{Wouter2000-qx, + title = "Job Destruction and Propagation of Shocks", + author = "Wouter, J and Ramey, Garey and Watson, Joel", + journal = "Am. Econ. Rev.", + volume = 90, + number = 3, + pages = "482--498", + month = jun, + year = 2000 +} + +@ARTICLE{Unknown2008-vo, + title = "Business cycles, unemployment insurance, and the calibration of + matching mod- els", + journal = "J. Econ. Dyn. Control", + volume = 32, + number = 4, + pages = "1120--1155", + year = 2008 +} + +@ARTICLE{Doepke2006-sm, + title = "Aggregate Implications of Wealth Redistribu- tion: The Case of + Inflation", + author = "Doepke, Matthias and Schneider, Martin", + journal = "J. Eur. Econ. Assoc.", + year = 2006 +} + +@ARTICLE{Meh2011-tz, + title = "Inflation, nominal portfolios, and wealth redistribution in + Canada: Inflation, nominal portfolios, and wealth redistribution", + author = "Meh, Césaire A and Terajima, Yaz", + journal = "Can. J. Econ.", + publisher = "Wiley", + volume = 44, + number = 4, + pages = "1369--1402", + abstract = "Abstract This paper quantifies the redistributional effects of + inflation in Canada that arise through the revaluation of nominal + assets and liabilities. We find that the effects are non‐trivial + even for low inflation episodes. The main winners are young, + middle‐class households with mortgage debt. The government + receives a windfall gain from its long‐term debt. The old, the + rich or the middle‐aged, middle‐class lose, largely owing to + their holdings of bonds and non‐indexed defined benefit pension + assets. Finally, our Canada‐U.S. comparison reveals that the + extent of redistributions can be quite different even between + countries of similar economic and legal environments.", + month = nov, + year = 2011, + language = "en" +} + +@ARTICLE{Clarida1998-gc, + title = "Monetary Policy Rules in Practice: Some International Evidence", + author = "Clarida, Richard and Gal, Jordi and Gertler, Mark", + journal = "Eur. Econ. Rev.", + volume = 42, + number = 6, + pages = "1033--1067", + month = jun, + year = 1998 +} + +@ARTICLE{Clarida2000-lh, + title = "Monetary policy rules and macroeconomic stability: Evidence and + some theory", + author = "Clarida, Richard and Gali, Jordi and Gertler, Mark", + journal = "Q. J. Econ.", + publisher = "Oxford University Press (OUP)", + volume = 115, + number = 1, + pages = "147--180", + abstract = "We estimate a forward-looking monetary policy reaction function + for the postwar United States economy, before and after Volcker’s + appointment as Fed Chairman in 1979. Our results point to + substantial differences in the estimated rule across periods. In + particular, interest rate policy in the Volcker-Greenspan period + appears to have been much more sensitive to changes in expected + ineation than in the pre-Volcker period. We then compare some of + the implications of the estimated rules for the equilibrium + properties of ineation and output, using a simple macroeconomic + model, and show that the Volcker-Greenspan rule is stabilizing.", + month = feb, + year = 2000, + language = "en" +} + +@ARTICLE{Cogley2010-zi, + title = "Coibion, Olivier and Yuriy Gorodnichenko, “Monetary Policy, Trend + Inflation, and the Great Moderation: An Alternative Interpretation", + author = "Cogley, Timothy and Primiceri, Giorgio E and Sargent, Thomas J", + journal = "Am. Econ. J. Macroecon.", + volume = 2, + number = 1, + pages = "341--370", + month = jan, + year = 2010 +} + +@ARTICLE{Kueng2012-su, + title = "Innocent Bystanders? Monetary Policy and In- equality in the + {U}.{S},” {NBER} Working Papers 18170", + author = "Kueng, Lorenz and Silvia, John", + journal = "National Bureau of Economic Research", + month = jun, + year = 2012 +} + +@ARTICLE{Curdia2010-xr, + title = "Credit spreads and monetary policy", + author = "Cúrdia, Vasco and Woodford, Michael", + journal = "J. Money Credit Bank.", + publisher = "Wiley", + volume = 42, + number = "s1", + pages = "3--35", + abstract = "We consider the desirability of modifying a standard Taylor rule + for interest rate policy to incorporate adjustments for measures + of financial conditions. We consider the consequences of such + adjustments for the way policy would respond to a variety of + disturbances, using the dynamic stochastic general equilibrium + model with credit frictions developed in Cúrdia and Woodford + (2009a). According to our model, an adjustment for variations in + credit spreads can improve upon the standard Taylor rule, but the + optimal size of adjustment depends on the source of the variation + in credit spreads. A response to the quantity of credit is less + likely to be helpful.", + month = sep, + year = 2010, + language = "en" +} + +@ARTICLE{Wouter2000-pu, + title = "Job Destruction and Propagation of Shocks", + author = "Wouter, J and Ramey, Garey and Watson, Joel", + journal = "Am. Econ. Rev.", + volume = 90, + number = 3, + pages = "482--498", + month = jun, + year = 2000 +} + +@ARTICLE{Doepke2006-gn, + title = "Aggregate Implications of Wealth Redistribu- tion: The Case of + Inflation", + author = "Doepke, Matthias and Schneider, Martin", + journal = "J. Eur. Econ. Assoc.", + year = 2006 +} + +@ARTICLE{Meh2011-ik, + title = "Inflation, nominal portfolios, and wealth redistribution in + Canada: Inflation, nominal portfolios, and wealth redistribution", + author = "Meh, Césaire A and Terajima, Yaz", + journal = "Can. J. Econ.", + publisher = "Wiley", + volume = 44, + number = 4, + pages = "1369--1402", + abstract = "Abstract This paper quantifies the redistributional effects of + inflation in Canada that arise through the revaluation of nominal + assets and liabilities. We find that the effects are non‐trivial + even for low inflation episodes. The main winners are young, + middle‐class households with mortgage debt. The government + receives a windfall gain from its long‐term debt. The old, the + rich or the middle‐aged, middle‐class lose, largely owing to + their holdings of bonds and non‐indexed defined benefit pension + assets. Finally, our Canada‐U.S. comparison reveals that the + extent of redistributions can be quite different even between + countries of similar economic and legal environments.", + month = nov, + year = 2011, + language = "en" +} + +@ARTICLE{D-iaz-Gim-enez2011-he, + title = "Facts on the Distri- butions of Earnings, Income, and Wealth in the + United States: 2007 Update", + author = "D ́ıaz-Gim ́enez, Javier and Glover, Andrew and ́e-V ́ctor R + ́ıos-Rull, Jos", + journal = "Q. Rev. - Fed. Reserve Bank Minneap.", + volume = 34, + number = 1, + pages = "2--31", + year = 2011 +} + +@ARTICLE{Erosa2002-pr, + title = "On inflation as a regressive consumption tax", + author = "Erosa, Andrés and Ventura, Gustavo", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 49, + number = 4, + pages = "761--795", + abstract = "Evidence on the portfolio holdings and transaction patterns of + households suggests that the burden of inflation is not evenly + distributed. We build a monetary growth model consistent with key + features of cross-sectional household data and use this framework + to study the distributional impact of inflation. At the aggregate + level, our model economy behaves similar to standard monetary + growth models within the representative agent abstraction. + Inflation has, however, important distributional effects since it + is effectively a regressive consumption tax. Thus, neglecting the + distributional consequences of inflation may prove misleading in + assessing the effects of inflation in our economy.", + month = may, + year = 2002, + language = "en" +} + +@ARTICLE{Gal-i1999-ir, + title = "Technology, Employment, and the Business Cycle: Do Technology + Shocks Explain Aggregate Fluctuations?", + author = "Gal ́ı, Jordi", + journal = "Am. Econ. Rev.", + volume = 89, + number = 1, + pages = "249--271", + month = mar, + year = 1999 +} + +@BOOK{Unknown2008-cm, + title = "{M} onetary Policy, Inflation, and the Business Cycle", + publisher = "Princeton University Press", + address = "Princeton, NJ", + year = 2008 +} + +@BOOK{Friedman2014-ua, + title = "Handbook of monetary economics, volume {3b}", + editor = "Friedman, Benjamin M and Woodford, Michael", + publisher = "North-Holland", + series = "Handbook of Monetary Economics", + month = may, + year = 2014 +} + +@ARTICLE{Gali1999-ql, + title = "Inflation dynamics: A structural econometric analysis", + author = "Galı́, Jordi and Gertler, Mark", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 44, + number = 2, + pages = "195--222", + abstract = "We develop and estimate a structural model of inflation that + allows for a fraction of firms that use a backward-looking rule + to set prices. The model nests the purely forward-looking New + Keynesian Phillips curve as a particular case. We use measures of + marginal cost as the relevant determinant of inflation, as the + theory suggests, instead of an ad hoc output gap. Real marginal + costs are a significant and quantitatively important determinant + of inflation. Backward-looking price setting, while statistically + significant, is not quantitatively important. Thus, we conclude + that the New Keynesian Phillips curve provides a good first + approximation to the dynamics of inflation.", + month = oct, + year = 1999, + language = "en" +} + +@ARTICLE{David-L-opez-Salido2007-no, + title = "Understanding the Effects of Government Spending on Consumption", + author = "David L ́opez-Salido, Javier", + journal = "J. Eur. Econ. Assoc.", + volume = 5, + number = 1, + pages = "227--270", + year = 2007 +} + +@BOOK{Glover2011-gr, + title = "In- tergenerational Redistribution in the Great Recession", + author = "Glover, Andrew and Heathcote, Jonathan and Krueger, Dirk and + ́e-Victor R ́ıos-Rull, Jos", + address = "Federal Reserve Bank of Minneapolis", + volume = 684, + year = 2011 +} + +@INCOLLECTION{Gruber1998-sq, + title = "Unemployment Insurance, Consumption Smoothing, and Private Insur- + ance: Evidence from the {PSID} and {CEX}", + author = "Gruber, Jonathan", + editor = "Bassi, Laurie J and Woodbury, Stephen A", + booktitle = "Reform of the Unemployment Insurance System", + publisher = "Emerald Group Publishing Limited", + address = "Bingley, UK", + volume = 1, + pages = "3--32", + year = 1998 +} + +@ARTICLE{Hagedorn2008-ng, + title = "The Cyclical Behavior of Equilibrium Unem- ployment and Vacancies + Revisited", + author = "Hagedorn, Marcus and Manovskii, Iourii", + journal = "American Economic Review", + volume = 98, + number = 4, + pages = "1692--1706", + month = sep, + year = 2008 +} + +@ARTICLE{Hall2011-rj, + title = "Interest rate risk and other determinants of post-{WWII} {US} + government debt/{GDP} dynamics", + author = "Hall, George J and Sargent, Thomas J", + journal = "Am. Econ. J. Macroecon.", + publisher = "American Economic Association", + volume = 3, + number = 3, + pages = "192--214", + abstract = "This paper uses a sequence of government budget constraints to + motivate estimates of returns on the US Federal government debt. + Our estimates differ conceptually and quantitatively from the + interest payments reported by the US government. We use our + estimates to account for contributions to the evolution of the + debt-GDP ratio made by inflation, growth, and nominal returns + paid on debts of different maturities. (JEL E23, E31, E43, G12, + H63)", + month = jul, + year = 2011, + language = "en" +} + +@ARTICLE{Hall2005-gl, + title = "Employment fluctuations with equilibrium wage stickiness", + author = "Hall, Robert E", + journal = "Am. Econ. Rev.", + publisher = "American Economic Association", + volume = 95, + number = 1, + pages = "50--65", + abstract = "Following a recession, the aggregate labor market is + slack-employment remains below normal and recruiting efforts of + employers, as measured by help-wanted advertising and vacancies, + are low. A model of matching friction explains the qualitative + responses of the labor market to adverse shocks, but requires + implausibly large shocks to account for the magnitude of observed + fluctuations. The incorporation of wage stickiness vastly + increases the sensitivity of the model to driving forces. I + develop a new model of the way that wage stickiness affects + unemployment. The stickiness arises in an economic equilibrium + and satisfies the condition that no worker-employer pair has an + unexploited opportunity for mutual improvement. Sticky wages + neither interfere with the efficient formation of employment + matches nor cause inefficient job loss. Thus the model provides + an answer to the fundamental criticism previously directed at + sticky-wage models of fluctuations.", + month = feb, + year = 2005 +} + +@ARTICLE{D-iaz-Gim-enez2011-ws, + title = "Facts on the Distri- butions of Earnings, Income, and Wealth in the + United States: 2007 Update", + author = "D ́ıaz-Gim ́enez, Javier and Glover, Andrew and ́e-V ́ctor R + ́ıos-Rull, Jos", + journal = "Q. Rev. - Fed. Reserve Bank Minneap.", + volume = 34, + number = 1, + pages = "2--31", + year = 2011 +} + +@BOOK{Hornstein2005-wh, + title = "Unemployment and Va- cancy Fluctuations in the Matching Model: + Inspecting the Mechanism,” Economic Quarterly", + author = "Hornstein, Andreas and Krusell, Per and Violante, Giovanni L", + address = "Summer", + volume = 91, + pages = "19--50", + year = 2005 +} + +@ARTICLE{Huggett1996-ig, + title = "Wealth distribution in life-cycle economies", + author = "Huggett, Mark", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 38, + number = 3, + pages = "469--494", + abstract = "This paper compares the age-wealth distribution produced in + life-cycle economies to the corresponding distribution in the US + economy. The idea is to calibrate the model economies to match + features of the US earnings distribution and then examine the + wealth distribution implications of the model economies. The + findings are that the calibrated model economies with earnings + and lifetime uncertainty can replicate measures of both aggregate + wealth and transfer wealth in the US. Furthermore, the model + economies produce the US wealth Gini and a significant fraction + of the wealth inequality within age groups. However, the model + economies produce less than half the fraction of wealth held by + the top 1 percent of US households.", + month = dec, + year = 1996, + language = "en" +} + +@ARTICLE{Iacoviello2005-nd, + title = "House Prices, Borrowing Constraints, and Monetary Policy in the + Busi- ness Cycle", + author = "Iacoviello, Matteo", + journal = "Am. Econ. Rev.", + volume = 95, + number = 3, + pages = "739--764", + month = jun, + year = 2005 +} + +@ARTICLE{Rudebusch2006-id, + title = "Monetary policy inertia: Fact or fiction?", + author = "Rudebusch, Glenn D and {Federal Reserve Bank of San Francisco}", + journal = "Federal Reserve Bank of San Francisco, Working Paper Series", + publisher = "Federal Reserve Bank of San Francisco", + pages = "1.000--52.000", + month = aug, + year = 2006 +} + +@ARTICLE{Krause2007-dg, + title = "The (ir)relevance of real wage rigidity in the New Keynesian + model with search frictions", + author = "Krause, Michael U and Lubik, Thomas A", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 54, + number = 3, + pages = "706--727", + abstract = "We develop a New Keynesian model with search and matching + frictions in the labor market. We show that the model generates + counterfactual labor market dynamics. In particular, it fails to + generate the negative correlation between vacancies and + unemployment in the data, i.e., the Beveridge curve. Introducing + real wage rigidity leads to a negative correlation, and increases + the magnitude of labor market flows to more realistic values. + However, inflation dynamics are only weakly affected by real wage + rigidity. The reason is that labor market frictions give rise to + long-run employment relationships. The measure of real marginal + costs that is relevant for inflation in the Phillips curve + contains a present value component that varies independently of + the real wage.", + month = apr, + year = 2007, + language = "en" +} + +@ARTICLE{Per1997-nr, + title = "Income and Wealth Heterogeneity, Portfolio Choice, and Equilibrium + Asset Returns", + author = "Per, Anthony A", + journal = "Macroecon. Dyn.", + volume = 1, + number = 02, + pages = "387--422", + month = jun, + year = 1997 +} + +@ARTICLE{Krusell1998-rt, + title = "Income and wealth heterogeneity in the macroeconomy", + author = "Krusell, Per and Smith, Jr, Anthony A", + journal = "J. Polit. Econ.", + publisher = "University of Chicago Press", + volume = 106, + number = 5, + pages = "867--896", + abstract = "How do movements in the distribution of income and wealth affect + the macroeconomy? We analyze this question theoretically, using + numerical methods, in the context of a calibrated version of the + stochastic growth model with partially uninsurable idiosyncratic + risk and movements in aggregate productivity.", + month = oct, + year = 1998 +} + +@ARTICLE{ul-Sahin2010-sl, + title = "Labour-Market Matching with Precaution- ary Savings and Aggregate + Fluctuations", + author = "ul Sahin, Ayseg and Mukoyama, Toshihiko", + journal = "Rev. Econ. Stud.", + volume = 77, + number = 4, + pages = "1477--1507", + year = 2010 +} + +@ARTICLE{Kuester2010-ix, + title = "Real price and wage rigidities with matching frictions", + author = "Kuester, Keith", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 57, + number = 4, + pages = "466--477", + abstract = "Frictional unemployment means that workers, for some time, are a + firm-specific factor of production. This paper models the + resulting interaction of wage bargaining and price setting at the + firm level in a New Keynesian model with labor market matching + frictions. Real rigidities arise and the labor share ceases to be + a good proxy for marginal costs. The model replicates the impulse + responses of an SVAR for U.S. data better than alternatives in + which the real rigidities arising at the firm level are absent. + In addition, it implies reasonably low degrees of nominal + rigidity whereas the alternatives do not. The interaction of wage + and price setting at the firm level is important for the + macroeconomic dynamics.", + month = may, + year = 2010, + language = "en" +} + +@BOOK{Ledoit2011-qa, + title = "The Redistributive Effects of Monetary Policy,” {ECON} - Working + Papers {econwp044}", + author = "Ledoit, Olivier", + month = oct, + year = 2011 +} + +@BOOK{Mckay2012-st, + title = "The Role of Automatic Stabilizers in the {U}.{S}. Business Cycle,” + mimeo", + author = "Mckay, Alisdair and Reis, Ricardo", + address = "Boston University", + year = 2012 +} + +@ARTICLE{Meh2010-qs, + title = "Aggregate and welfare effects of redistribution of wealth under + inflation and price-level targeting", + author = "Meh, Césaire A and Ríos-Rull, José-Víctor and Terajima, Yaz", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 57, + number = 6, + pages = "637--652", + abstract = "An unanticipated rise in the price level redistributes wealth + from lenders to borrowers. Its size depends on the monetary + policy regime, as inflation targeting (IT) and price-level + targeting (PT) have different implications for the price-level + path following price-level movements. The effects of an + unexpected 1\% price-level increase are measured and assessed + under both regimes. Overall, the redistribution of wealth and the + implied aggregate and welfare effects are larger under IT than + they are under PT. The youngest, the poorest, and the government + gain at the expense of the rest of the population and, when the + government gain is given to households as lump-sum transfers, the + effects on GDP are negative and long-lasting.", + month = sep, + year = 2010, + language = "en" +} + +@ARTICLE{Merz1995-ji, + title = "Search in the labor market and the real business cycle", + author = "Merz, Monika", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 36, + number = 2, + pages = "269--300", + abstract = "Existing models of the business cycle have been incapable of + explaining many of the stylized facts that characterize the US + labor market. The standard real business cycle model is modified + by introducing two-sided search in the labor market as an + economic mechanism that propagates technology shocks. This new + analytical environment can explain many phenomena of the business + cycle that the standard model either has resolved in an + unsatisfactory manner or has not been able to address at all.", + month = nov, + year = 1995, + language = "en" +} + +@ARTICLE{Mortensen1994-fm, + title = "Job creation and job destruction in the theory of unemployment", + author = "Mortensen, D T and Pissarides, C A", + journal = "Rev. Econ. Stud.", + publisher = "Oxford University Press (OUP)", + volume = 61, + number = 3, + pages = "397--415", + abstract = "In this paper we model a job-specific shock process in the + matching model of unemployment with non-cooperative wage + behaviour. We obtain endogenous job creation and job destruction + processes and study their properties. We show that an aggregate + shock induces negative correlation between job creation and job + destruction whereas a dispersion shock induces positive + correlations. The job destruction process is shown to have more + volatile dynamics than the job creation process. In simulations + we show that an aggregate shock process proxies reasonably well + the cyclical behaviour of job creation and job destruction in the + United States.", + month = jul, + year = 1994 +} + +@ARTICLE{Nakajima2012-ys, + title = "Business cycles in the equilibrium model of labor market search + and self‐insurance: business cycles in the equilibrium model of + labor market search", + author = "Nakajima, Makoto", + journal = "Int. Econ. Rev. (Philadelphia)", + publisher = "Wiley", + volume = 53, + number = 2, + pages = "399--432", + abstract = "I introduce risk‐aversion, labor‐leisure choice, capital, + individual productivity shocks, and market incompleteness to the + standard model of labor search and matching and investigate the + model’s cyclical properties. I find that the model can generate + the observed large volatility of unemployment and vacancies with + a reasonable replacement rate of unemployment insurance benefits + of 64\%. Labor‐leisure choice plays a crucial role through + additional utility from leisure when unemployed and further + amplification from adjustments of hours worked. On the other + hand, the borrowing constraint or individual productivity shocks + do not significantly affect the cyclical properties of + unemployment and vacancies.", + month = may, + year = 2012, + language = "en" +} + +@ARTICLE{Petrongolo2001-tk, + title = "Looking into the black box: A survey of the matching function", + author = "Petrongolo, Barbara and Pissarides, Christopher A", + journal = "J. Econ. Lit.", + publisher = "American Economic Association", + volume = 39, + number = 2, + pages = "390--431", + abstract = "This paper surveys the microfoundations, empirical evidence, and + estimation issues underlying the aggregate matching function. + There is no consensus yet on microfoundations but one is emerging + on estimation. An aggregate, constant returns, Cobb-Douglas + matching function with hires as a function of vacancies and + unemployment has been successfully estimated for several + countries. Recent work has utilized disaggregated data to go + beyond aggregate estimates, with many refinements and suggestions + for future research. The paper discusses spatial aggregation + issues, and implications of on-the-job search and of the timing + of stocks and flows for estimated matching functions.", + month = jun, + year = 2001, + language = "en" +} + +@INCOLLECTION{Petrosky-Nadeau2011-rp, + title = "Revisiting the Assumption of a Small La- bor Surplus", + author = "Petrosky-Nadeau, Nicolas and Kuehn, Lars", + booktitle = "GSIA Working Papers 2011-E7", + publisher = "Tepper School of Business", + year = 2011 +} + +@BOOK{Pigou2022-hq, + title = "The economy and finance of the war: Being a discussion of the + real costs of the war and the way in which they should be met + (classic reprint) the economy and finance of the war: Being a + discussion of the real costs of the war and the way in which they + should be met (classic reprint)", + author = "Pigou, A C", + publisher = "Forgotten Books", + address = "London, England", + month = nov, + year = 2022 +} + +@ARTICLE{Ravn2007-tt, + title = "Labor market dynamics and the business cycle: Structural evidence + for the United States", + author = "Ravn, Morten O and Simonelli, Saverio", + journal = "Scand. J. Econ.", + publisher = "Wiley", + volume = 109, + number = 4, + pages = "743--777", + abstract = "AbstractWe use a 12‐dimensional VAR to examine the aggregate + effects of two structural technology shocks and two policy + shocks. For each shock, we examine the dynamic effects on the + labor market, the importance of the shock for labor market + volatility, and the comovement between labor market variables and + other key aggregate variables in response to the shock. We + document that labor market indicators display “hump‐shaped” + responses to the identified shocks. Technology shocks and + monetary policy shocks are important for labor market volatility + but the ranking of their importance is sensitive to the VAR + specification. The conditional correlations at business cycle + frequencies are similar in response to the four shocks, apart + from the correlations between hours worked, labor productivity + and real wages. To account for the unconditional correlations + between these variables, a mixture of shocks is required.", + month = dec, + year = 2007, + language = "en" +} + +@ARTICLE{R-ios-Rull1996-un, + title = "Life-Cycle Economies and Aggregate Fluctuations", + author = "R ́ıos-Rull, Jos", + journal = "Review of Eco- nomic Studies", + volume = 63, + pages = "465--489", + month = jul, + year = 1996 +} + +@BOOK{Rotemberg2022-cp, + title = "Sticky prices in the United States (classic reprint)", + author = "Rotemberg, Julio J", + publisher = "Forgotten Books", + address = "London, England", + month = nov, + year = 2022 +} + +@ARTICLE{Shimer2004-yy, + title = "The consequences of rigid wages in search models", + author = "Shimer, Robert", + journal = "J. Eur. Econ. Assoc.", + publisher = "Oxford University Press (OUP)", + volume = 2, + number = "2-3", + pages = "469--479", + month = may, + year = 2004, + language = "en" +} + +@ARTICLE{Amaral2016-qr, + title = "The cyclical behavior of equilibrium unemployment and vacancies + across {OECD} countries", + author = "Amaral, Pedro S and Tasci, Murat", + journal = "Eur. Econ. Rev.", + publisher = "Elsevier BV", + volume = 84, + pages = "184--201", + abstract = "We show that the inability of a standardly calibrated labor + search-and-matching model to account for observed levels of labor + market volatility extends beyond the U.S. to a set of OECD + countries. That is, the volatility puzzle is ubiquitous. We argue + that cross-country data is helpful in scrutinizing between + potential solutions to this puzzle. To illustrate this, we show + that the solution proposed in Hagedorn and Manovskii (2008) is + rather fragile and fails for some countries in our sample. It + delivers counterfactually low volatility for economies where the + elasticity of wages with respect to productivity is sufficiently + high and where productivity persistence and/or vacancy-filling + rates are sufficiently low.", + month = may, + year = 2016, + language = "en" +} + +@ARTICLE{Shimer2012-mq, + title = "Reassessing the ins and outs of unemployment", + author = "Shimer, Robert", + journal = "Rev. Econ. Dyn.", + publisher = "Elsevier BV", + volume = 15, + number = 2, + pages = "127--148", + abstract = "This paper uses readily accessible aggregate time series to + measure the probability that an employed worker becomes + unemployed and the probability that an unemployed worker finds a + job, the ins and outs of unemployment. Since 1948, the job + finding probability has accounted for three-quarters of the + fluctuations in the unemployment rate in the United States and + the employment exit probability for one-quarter. Fluctuations in + the employment exit probability are quantitatively irrelevant + during the last two decades. Using the underlying microeconomic + data, the paper shows that these results are not due to + compositional changes in the pool of searching workers, nor are + they due to movements of workers in and out of the labor force. + These results contradict the conventional wisdom that has guided + the development of macroeconomic models of the labor market since + 1990.", + month = apr, + year = 2012, + language = "en" +} + +@ARTICLE{Smets2007-wb, + title = "Shocks and frictions in {US} business cycles: A Bayesian {DSGE} + approach", + author = "Smets, Frank and Wouters, Rafael", + journal = "Am. Econ. Rev.", + publisher = "American Economic Association", + volume = 97, + number = 3, + pages = "586--606", + abstract = "Using a Bayesian likelihood approach, we estimate a dynamic + stochastic general equilibrium model for the US economy using + seven macroeconomic time series. The model incorporates many + types of real and nominal frictions and seven types of structural + shocks. We show that this model is able to compete with Bayesian + Vector Autoregression models in out-of-sample prediction. We + investigate the relative empirical importance of the various + frictions. Finally, using the estimated model, we address a + number of key issues in business cycle analysis: What are the + sources of business cycle fluctuations? Can the model explain the + cross correlation between output and inflation? What are the + effects of productivity on hours worked? What are the sources of + the “Great Moderation”? (JEL D58, E23, E31, E32)", + month = may, + year = 2007, + language = "en" +} + +@ARTICLE{Taylor1993-zu, + title = "Discretion versus policy rules in practice", + author = "Taylor, John B", + journal = "Carnegie-Rochester Conf. Ser. Public Policy", + publisher = "Elsevier BV", + volume = 39, + pages = "195--214", + abstract = "This paper examines how recent econometric policy evaluation + research on monetary policy rules can be applied in a practical + policymaking environment. According to this research, good policy + rules typically call for changes in the federal funds rate in + response to changes in the price level or changes in real income. + An objective of the paper is to preserve the concept of such a + policy rule in a policy environment where it is practically + impossible to follow mechanically any particular algebraic + formula that describes the policy rule. The discussion centers + around a hypothetical but representative policy rule much like + that advocated in recent research. This rule closely approximates + Federal Reserve policy during the past several years. Two case + studies—German unification and the 1990 oil-price shock—that had + a bearing on the operation of monetary policy in recent years are + used to illustrate how such a policy rule might work in practice.", + month = dec, + year = 1993, + language = "en" +} + +@ARTICLE{Trigari2009-ba, + title = "Equilibrium unemployment, job flows, and inflation dynamics", + author = "Trigari, Antonella", + journal = "J. Money Credit Bank.", + publisher = "Wiley", + volume = 41, + number = 1, + pages = "1--33", + abstract = "In order to explain the joint fluctuations of output, inflation + and the labor market, this paper develops and estimates a general + equilibrium model that integrates a theory of equilibrium + unemployment into a monetary model with nominal price rigidities. + The estimated model accounts for the responses of employment, + hours per worker, job creation, and job destruction to a monetary + policy shock. Moreover, search frictions in the labor market + generate a lower elasticity of marginal costs with respect to + output. This helps to explain the sluggishness of inflation and + the persistence of output that are observed in the data.", + month = feb, + year = 2009, + language = "en" +} + +@ARTICLE{Walsh2005-aq, + title = "Labor market search, sticky prices, and interest rate policies", + author = "Walsh, Carl E", + journal = "Rev. Econ. Dyn.", + publisher = "Elsevier BV", + volume = 8, + number = 4, + pages = "829--849", + abstract = "What accounts for the significant real effects of monetary policy + shocks? And what accounts for the persistent and hump shaped + responses of output and inflation in response to such shocks? + These questions are investigated in a model that incorporates + labor market search, habit persistence, sticky prices, and policy + inertia. While habit persistence and price stickiness are + important for the hump shaped output response and the long, drawn + out inflation response, respectively, labor market frictions + increase the output response and reduce the inflation response + relative to an otherwise similar model based on a Walrasian labor + market. Significantly, policy inertia itself is found to be the + most important factor in accounting for the magnitude of the + output effects of policy shocks in the model.", + month = oct, + year = 2005, + language = "en" +} + +@ARTICLE{Williamson2008-kp, + title = "Monetary policy and distribution", + author = "Williamson, Stephen D", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 55, + number = 6, + pages = "1038--1053", + abstract = "A segmented markets model of monetary policy is constructed, in + which a novel feature is goods market segmentation, and its + relationship to conventional asset market segmentation. The + implications of the model for the response of prices, interest + rates, consumption, labor supply, and output to monetary policy + are determined. As well, optimal monetary policy is studied, as + are the costs of inflation. The model features persistent + nonneutralities of money, relative price effects of increases in + the money supply, persistent liquidity effects, and a negative + Fisher effect from a money supply increase. A Friedman rule is in + general suboptimal.", + month = sep, + year = 2008, + language = "en" +} + +@ARTICLE{Woodford1998-gs, + title = "Doing without money: Controlling inflation in a post-monetary + world", + author = "Woodford, Michael", + journal = "Rev. Econ. Dyn.", + publisher = "Elsevier BV", + volume = 1, + number = 1, + pages = "173--219", + abstract = "Central banks now generally agree that conventional monetary + aggregates are of little use as targets or even indicators for + monetary policy, owing to the instability of money demand + relations in economies with well-developed financial markets. But + monetary theory has provided little guidance for the analysis of + policies that are not formulated in terms of a path for the money + supply, and a stable money demand relation is generally assumed + as a central element of a theoretical analysis. This paper, + instead, shows that it is possible to analyze equilibrium + inflation determination without any reference to either money + supply or demand, as long as one specifies policy in terms of a + 'Wicksellian' interest-rate feedback rule. The paper's central + result is an approximation theorem, showing the existence, for a + simple monetary model, of a well-behaved 'cashless limit' in + which the money balances held to facilitate transactions become + negligible. The relations that determine equilibrium inflation in + the cashless limit also provide a useful approximate account in + the case of an economy in which monetary frictions are present, + but small. The approximation remains valid in the case of time + variation in the monetary frictions, including variation of a + kind that may result in substantial instability of money demand + in percentage terms. Inflation in the cashless limit is shown to + be a function of the gap between the 'natural rate' of interest, + determined by the supply of goods and opportunities for + intertemporal substitution, and a time-varying parameter of the + interest-rate rule indicating the tightness of monetary policy. + Inflation can be completely stabilized, in principle, by + adjusting the policy parameter so as to track variation in the + natural rate. Under such a regime, instability of money demand + has little effect upon equilibrium inflation, and need not be + monitored by the central bank.", + month = jan, + year = 1998, + language = "en" +} + +@ARTICLE{Tauchen1986-wv, + title = "Finite state markov-chain approximations to univariate and vector + autoregressions", + author = "Tauchen, George", + journal = "Econ. Lett.", + publisher = "Elsevier BV", + volume = 20, + number = 2, + pages = "177--181", + abstract = "The paper develops a procedure for finding a discrete-valued + Markov chain whose sample paths approximate well those of a + vector autoregression. The procedure has applications in those + areas of economics, finance, and econometrics where approximate + solutions to integral equations are required.", + month = jan, + year = 1986, + language = "en" +} + +@ARTICLE{Heathcote2009-ad, + title = "Quantitative macroeconomics with heterogeneous households", + author = "Heathcote, Jonathan and Storesletten, Kjetil and Violante, + Giovanni L", + journal = "Annu. Rev. Econom.", + publisher = "Annual Reviews", + volume = 1, + number = 1, + pages = "319--354", + abstract = "Macroeconomics is evolving from the study of aggregate dynamics + to the study of the dynamics of the entire equilibrium + distribution of allocations across individual economic actors. + This article reviews the quantitative macroeconomic literature + that focuses on household heterogeneity, with a special emphasis + on the “standard” incomplete markets model. We organize the vast + literature according to three themes that are central to + understanding how inequality matters for macroeconomics. First, + what are the most important sources of individual risk and + cross-sectional heterogeneity? Second, what are individuals' key + channels of insurance? Third, how does idiosyncratic risk + interact with aggregate risk?", + month = sep, + year = 2009, + language = "en" +} + +@ARTICLE{Costain2005-lm, + title = "Stabilization versus insurance: Welfare effects of procyclical + taxation under incomplete markets", + author = "Costain, James S and Reiter, Michael", + journal = "SSRN Electron. J.", + publisher = "Elsevier BV", + abstract = "We construct and calibrate a general equilibrium business cycle + model with unemployment and precautionary saving. We compute the + cost of business cycles and locate the optimum in a set of simple + cyclical fiscal policies. Our economy exhibits productivity + shocks, giving firms an incentive to hire more when productivity + is high. However, business cycles make workers' income riskier, + both by increasing the unconditional probability of unusually + long unemployment spells, and by making wages more variable, and + therefore they decrease social welfare by around one-fourth or + one-third of 1\% of consumption. Optimal fiscal policy offsets + the cycle, holding unemployment benefits constant but varying the + tax rate procyclically to smooth hiring. By running a deficit of + 4\% to 5\% of output in recessions, the government eliminates + half the variation in the unemployment rate, most of the + variation in workers' aggregate consumption, and most of the + welfare cost of business cycles.", + year = 2005, + language = "en" +} + +@ARTICLE{Elsby2011-pm, + title = "The labor market in the great recession—an update to September + 2011", + author = "Elsby, Michael W L and Hobijn, Bart and Şahin, Ayşegül and + Valletta, Robert G", + journal = "Brookings Pap. Econ. Act.", + publisher = "Johns Hopkins University Press", + volume = 2011, + number = 2, + pages = "353--384", + abstract = "Since the end of the Great Recession in mid-2009, the + unemployment rate has recovered slowly, falling by only 1 + percentage point from its peak by September 2011. We find that + the lackluster labor market recovery can be traced in large part + to weakness in aggregate demand; only a small part seems + attributable to increases in labor market frictions. This + continued labor market weakness has led to the highest level of + long-term unemployment in the postwar period and a blurring of + the distinction between unemployment and nonparticipation in the + labor force. We show that flows from nonparticipation to + unemployment are important for understanding recent changes in + the duration distribution of unemployment. Simulations that + account for these flows suggest that the labor market is unlikely + to be subject to high levels of structural long-term unemployment + after aggregate demand recovers.", + year = 2011 +} + +@ARTICLE{Carceles-Poveda2009-un, + title = "Shareholders' unanimity with incomplete markets", + author = "Carceles-Poveda, Eva and Coen-Pirani, Daniele", + journal = "Int. Econ. Rev. (Philadelphia)", + publisher = "Wiley", + volume = 50, + number = 2, + pages = "577--606", + abstract = "When markets are incomplete, shareholders typically disagree on + the firm's optimal investment plan. This article studies the + shareholders' preferences with respect to the firm's investment + in a model with aggregate risk, incomplete markets and + heterogeneous households who trade in firms' shares instead of + directly accumulating physical capital. If the production + function exhibits constant returns to scale and borrowing limits + are not binding, a firm's shareholders unanimously agree on its + optimal level of investment. In contrast, with binding borrowing + constraints, constrained shareholders prefer a higher level of + investment than unconstrained ones.", + month = may, + year = 2009, + language = "en" +} + +@ARTICLE{Aiyagari1994-xz, + title = "Uninsured idiosyncratic risk and aggregate saving", + author = "Aiyagari, S R", + journal = "Q. J. Econ.", + publisher = "Oxford University Press (OUP)", + volume = 109, + number = 3, + pages = "659--684", + abstract = "We present a qualitative and quantitative analysis of the + standard growth model modified to include precautionary saving + motives and liquidity constraints. We address the impact on the + aggregate saving rate, the importance of asset trading to + individuals, and the relative inequality of wealth and income + distributions.", + month = aug, + year = 1994, + language = "en" +} + +@BOOK{Lee2010-bv, + title = "Monetary Policy with Heterogeneous Households and Financial + Frictions,” Departmental Working Papers", + author = "Lee, Jae", + year = 2010 +} + +@ARTICLE{Unknown2008-mp, + title = "Business cycles, unemployment insurance, and the calibration of + matching mod- els", + journal = "J. Econ. Dyn. Control", + volume = 32, + number = 4, + pages = "1120--1155", + year = 2008 +} + +@ARTICLE{Heathcote2005-ht, + title = "Fiscal policy with heterogeneous agents and incomplete markets", + author = "Heathcote, Jonathan", + journal = "Rev. Econ. Stud.", + publisher = "Oxford University Press (OUP)", + volume = 72, + number = 1, + pages = "161--188", + abstract = "I undertake a quantitative investigation into the short run + effects of changes in the timing of taxes for a model economy in + which heterogeneous households trade only one asset and face a + borrowing constraint. This asset market structure implies that + the consumption of low wealth households is sensitive to tax + changes. The main finding of the paper is that when the wealth + distribution in the model resembles that in the United States, + market incompleteness accounts for large immediate aggregate + consumption increases following tax cuts, and large consumption + falls following tax increases. When taxes are lump-sum, for + example, a dollar change in tax revenue is associated with a 15 + cent change in aggregate consumption, compared to a response of + roughly one third this size when markets are complete but + households are finitely-lived. I find the response to tax changes + to be larger if the interest rate is constant rather than + determined endogenously, and smaller if taxes are proportional + rather than lump-sum.", + month = jan, + year = 2005, + language = "en" +} + +@ARTICLE{Elsby2011-yo, + title = "The labor market in the great recession—an update to September + 2011", + author = "Elsby, Michael W L and Hobijn, Bart and Şahin, Ayşegül and + Valletta, Robert G", + journal = "Brookings Pap. Econ. Act.", + publisher = "Johns Hopkins University Press", + volume = 2011, + number = 2, + pages = "353--384", + abstract = "Since the end of the Great Recession in mid-2009, the + unemployment rate has recovered slowly, falling by only 1 + percentage point from its peak by September 2011. We find that + the lackluster labor market recovery can be traced in large part + to weakness in aggregate demand; only a small part seems + attributable to increases in labor market frictions. This + continued labor market weakness has led to the highest level of + long-term unemployment in the postwar period and a blurring of + the distinction between unemployment and nonparticipation in the + labor force. We show that flows from nonparticipation to + unemployment are important for understanding recent changes in + the duration distribution of unemployment. Simulations that + account for these flows suggest that the labor market is unlikely + to be subject to high levels of structural long-term unemployment + after aggregate demand recovers.", + year = 2011 +} + +@ARTICLE{Jung2011-na, + title = "The (un)importance of unemployment fluctuations for the welfare + cost of business cycles", + author = "Jung, Philip and Kuester, Keith", + journal = "J. Econ. Dyn. Control", + publisher = "Elsevier BV", + volume = 35, + number = 10, + pages = "1744--1768", + abstract = "This paper studies the cost of business cycles within a real + business cycle model with search and matching frictions in the + labor market. We endogenously link both the cyclical fluctuations + and the mean level of unemployment to the aggregate business + cycle risk. The key result of the paper is that business cycles + are costly: fluctuations over the cycle induce a higher average + unemployment rate since employment is nonlinear in the + job-finding rate and the past unemployment rate. We show this + analytically for a special case of the model. We then calibrate + the model to U.S. data. For the calibrated model, too, business + cycles cause higher average unemployment; the welfare cost of + business cycles can easily be an order of magnitude larger than + Lucas's (1987) estimate. The cost of business cycles is the + higher the lower the value of nonemployment is, or, equivalently, + the lower is the disutility of work. The ensuing cost of business + cycles rises further when workers' skills depreciate during + unemployment.", + month = oct, + year = 2011, + language = "en" +} + +@ARTICLE{Costain2005-nx, + title = "Stabilization versus insurance: Welfare effects of procyclical + taxation under incomplete markets", + author = "Costain, James S and Reiter, Michael", + journal = "SSRN Electron. J.", + publisher = "Elsevier BV", + abstract = "We construct and calibrate a general equilibrium business cycle + model with unemployment and precautionary saving. We compute the + cost of business cycles and locate the optimum in a set of simple + cyclical fiscal policies. Our economy exhibits productivity + shocks, giving firms an incentive to hire more when productivity + is high. However, business cycles make workers' income riskier, + both by increasing the unconditional probability of unusually + long unemployment spells, and by making wages more variable, and + therefore they decrease social welfare by around one-fourth or + one-third of 1\% of consumption. Optimal fiscal policy offsets + the cycle, holding unemployment benefits constant but varying the + tax rate procyclically to smooth hiring. By running a deficit of + 4\% to 5\% of output in recessions, the government eliminates + half the variation in the unemployment rate, most of the + variation in workers' aggregate consumption, and most of the + welfare cost of business cycles.", + year = 2005, + language = "en" +} + +@ARTICLE{Dedola2007-ok, + title = "What does a technology shock do? A {VAR} analysis with + model-based sign restrictions", + author = "Dedola, Luca and Neri, Stefano", + journal = "J. Monet. Econ.", + publisher = "Elsevier BV", + volume = 54, + number = 2, + pages = "512--549", + abstract = "This paper estimates the effects of technology shocks in VAR + models of the U.S., identified by imposing restrictions on the + sign of impulse responses. These restrictions are consistent with + the implications of a popular class of DSGE models, with both + real and nominal frictions, and with sufficiently wide ranges for + their parameters. This identification strategy thus substitutes + theoretically motivated restrictions for the atheoretical + assumptions on the time-series properties of the data that are + key to long-run restrictions. Stochastic technology improvements + persistently increase real wages, consumption, investment and + output in the data; hours worked are very likely to increase, + displaying a hump-shaped pattern. Contrary to most of the related + VAR evidence, results are not sensitive to a number of + specification assumptions, including those on the stationarity + properties of variables.", + month = mar, + year = 2007, + language = "en" +} diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/prior-literature.md b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/prior-literature.md new file mode 100644 index 00000000..408fc3b7 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/prior-literature.md @@ -0,0 +1,15 @@ +# Prior Literature Summary: Monetary Policy with Heterogeneous Agents + +## The papers my ballpark paper cites + +The paper builds on two major strands of macroeconomic research. The first is the New Keynesian literature on monetary policy, which emphasizes nominal rigidities and interest-rate rules as the core transmission mechanisms of monetary policy. Foundational work such as Woodford (1998) established that monetary policy can be analyzed in “cashless” New Keynesian models where inflation dynamics are governed by interest rate rules rather than money supply, providing the standard framework used in modern DSGE analysis. Within this framework, much of the earlier literature relied on representative-agent assumptions, abstracting from distributional consequences of monetary policy. + +The second strand concerns heterogeneous-agent macroeconomics with incomplete markets and labor market frictions. Starting with Aiyagari (1994), the literature showed that uninsurable idiosyncratic risk and borrowing constraints generate precautionary saving and realistic wealth distributions. Subsequent work, summarized by Heathcote, Storesletten, and Violante (2009), emphasized how heterogeneity matters for aggregate dynamics and welfare. Parallel research incorporated search and matching frictions into general equilibrium models of unemployment (e.g., Costain and Reiter, 2005; Jung and Kuester, 2011), highlighting the welfare costs of labor market risk over the business cycle. However, much of this work studied fiscal policy or business cycles rather than monetary policy. The contribution of the ballpark paper is to integrate heterogeneous households, incomplete markets, and search frictions into a New Keynesian framework, allowing for a quantitative assessment of the redistributive and welfare effects of monetary policy. + +## Key foundational papers + +- **Woodford (1998), _Doing without Money_**: Established the modern New Keynesian framework in which monetary policy is conducted through interest rate rules rather than money aggregates. +- **Aiyagari (1994), _Uninsured Idiosyncratic Risk and Aggregate Saving_**: Provided the canonical incomplete-markets model generating precautionary saving and realistic wealth inequality. +- **Heathcote, Storesletten, and Violante (2009), _Quantitative Macroeconomics with Heterogeneous Households_**: Synthesized the heterogeneous-agent literature and clarified why distributional considerations matter for macroeconomic outcomes. +- **Costain and Reiter (2005), _Stabilization versus Insurance_**: Introduced unemployment risk and precautionary saving into general equilibrium models, highlighting welfare trade-offs under incomplete markets. +- **Jung and Kuester (2011), _(Un)importance of Unemployment Fluctuations_**: Quantified welfare costs of business cycles in models with search frictions, motivating the importance of labor market risk for policy analysis. diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/proposed-revisions.md b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/proposed-revisions.md new file mode 100644 index 00000000..cfb111fc --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/proposed-revisions.md @@ -0,0 +1,66 @@ +# Proposed Revisions: Monetary Policy with Heterogeneous Agents (Görnemann, Kuester, Nakajima, 2012) + +## 1. Where to insert each section + +- **Prior Literature** + **Insert after the "Overview" block** (after the cell that says *"The goal of the paper is to establish the extent to which monetary policy in the US might have distributional effects..."*). + In the current notebook that is **after cell index 6**. Add two new markdown cells: one with the heading `## Prior Literature`, the next with the draft text below. + +- **Subsequent Literature** + **Insert after the "Results" section and before "Conclusion"** — i.e. after the welfare subsection (after the cell that contains the Table7 image and the sentence about the top 5% gaining 0.02% consumption-equivalent). + In the current notebook that is **after cell index 54**. Add two new markdown cells: one with the heading `## Subsequent Literature`, the next with the draft text below. + +--- + +## 2. Prior Literature — draft text (ballpark-style) + +**Heading (new cell):** `## Prior Literature` + +**Body (new cell):** + +The paper combines two strands of macroeconomics. The first is **New Keynesian monetary policy**: nominal rigidities and interest-rate rules as the main transmission mechanism. Woodford (1998) showed that inflation can be analyzed in a “cashless” setup where the central bank sets interest rates rather than the money supply, which is the standard basis for modern DSGE policy analysis. Much of that work used a representative agent and ignored distribution. + +The second strand is **heterogeneous-agent macroeconomics** with incomplete markets and labor market frictions. Aiyagari (1994) showed that uninsurable idiosyncratic risk and borrowing limits generate precautionary saving and realistic wealth inequality. Later work (e.g. Heathcote, Storesletten, and Violante 2009) clarified how heterogeneity matters for aggregates and welfare. Search and matching were brought into general equilibrium models of unemployment (e.g. Mortensen and Pissarides 1994; Merz 1995), and combined with nominal rigidities (e.g. Walsh 2005; Krause and Lubik 2007; Blanchard and Galí 2010). The distributional effects of inflation and monetary policy were studied in incomplete-markets settings (e.g. Erosa and Ventura 2002; Doepke and Schneider 2006; Meh and Terajima 2011). GKN’s contribution is to integrate heterogeneous households, incomplete markets, and search frictions into a single New Keynesian model, so that the redistributive and welfare effects of monetary policy can be quantified. + +--- + +## 3. Subsequent Literature — draft text (ballpark-style) + +**Heading (new cell):** `## Subsequent Literature` + +**Body (new cell):** + +Later work has extended the analysis of **monetary policy in heterogeneous-agent New Keynesian (HANK) models**. One line of research focuses on transmission mechanisms: how marginal propensities to consume, wealth distributions, and labor income risk change aggregate and distributional responses to monetary shocks (e.g. Herkenhoff 2015; Chen 2018; Alves 2019). Another line deepens the role of **labor market frictions** in HANK models—unemployment risk, job-finding rates, and wage rigidity—and shows that they amplify distributional effects and matter for optimal policy (e.g. Hagedorn 2018; Bertsch 2017; Jones 2017). The frontier combines rich household heterogeneity with empirically grounded labor market dynamics and policy rules; open questions include identification of redistribution channels in the data and the interaction of monetary and fiscal policy in HANK environments. + +--- + +## 4. Other small improvements + +- **Typos and wording (search-and-replace):** + - "aggegate" → "aggregate" + - "attibutes" → "attributes" + - "responces" → "responses" (all instances) + - "exogeneous" → "exogenous" + - "intermedaite" → "intermediate" + - "procuers" → "producers" + - "autogregressive" → "autoregressive" + - "compenents" → "components" + - "constraines" → "constrained" + - "gaint" → "gains" (welfare gains) + - "wealthies" → "wealthiest" + - "loses" → "losses" + - "fof" → "of" (in "type distribution fof households") + +- **Citation:** + - "Mortensen and Pissaridis" → **Mortensen and Pissarides** (correct spelling) in the "Incomplete Markets and heterogeneity" cell. + - "Krusell et al., 2010" in the same cell is ambiguous; consider replacing with a specific reference (e.g. **Krusell and Smith (1998)** for heterogeneity, or the actual 2010 paper if different). + +- **Structure:** + - The link to the working paper is already in the title; no change needed. + - Optionally add a one-sentence “Key result” under the title (e.g. *Contractionary monetary policy raises welfare for the wealthiest 5% and lowers it for the rest.*) to help scanners. + +- **Consistency:** + - Use **GKN** or **Görnemann, Kuester, and Nakajima (2012)** consistently in the new Prior/Subsequent sections and in the Conclusion. + +- **Citations:** + - If the notebook supports citations (e.g. jupyterlab-citation-manager), add keys for the Prior and Subsequent literature so they appear in the bibliography; otherwise keep the inline “Author (year)” form as in the draft text above. diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/subsequent-literature-analysis.md b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/subsequent-literature-analysis.md new file mode 100644 index 00000000..95cced20 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/subsequent-literature-analysis.md @@ -0,0 +1,22 @@ +# Subsequent Literature Analysis: Monetary Policy with Heterogeneous Agents +(Görnemann, Kuester, Nakajima, 2012) + +## Papers that cite my ballpark paper + +I found 32 papers in LitMaps that cite my ballpark paper. + +## What the subsequent literature tells us + +The subsequent literature expands the analysis of monetary policy in heterogeneous-agent New Keynesian (HANK) models along several key dimensions. A first major research direction focuses on the transmission mechanisms of monetary policy in economies with household heterogeneity, especially through marginal propensities to consume (MPCs), wealth distributions, and labor income risk. Papers such as Herkenhoff (2015), Alves (2019), and Chen (2018) study how incomplete markets and heterogeneity reshape aggregate responses to monetary shocks relative to representative-agent New Keynesian models, highlighting the importance of redistribution and household balance sheets. + +A second strand integrates labor market frictions more deeply into HANK frameworks. Building on the search-and-matching structure emphasized by Görnemann et al. (2012), subsequent work examines unemployment risk, job finding probabilities, and wage rigidity as key channels through which monetary policy affects welfare and inequality. Contributions by Hagedorn (2018), Bertsch (2017), and Jones (2017) show that labor market heterogeneity amplifies distributional effects and can substantially alter optimal policy prescriptions. More recent papers also explore international and empirical dimensions, connecting HANK models to observed cross-country differences and micro data on consumption and income dynamics. + +Overall, the cutting edge of the literature lies in combining rich household heterogeneity with empirically grounded labor market dynamics and policy rules. Open questions remain regarding identification of redistribution channels in the data, the role of firm heterogeneity, and the interaction between monetary and fiscal policy in HANK environments. A researcher aiming to contribute to this field would need strong computational skills, familiarity with heterogeneous-agent DSGE methods, and a clear empirical or policy motivation. + +## Most important subsequent papers + +1. **Herkenhoff (2015)**: Extends heterogeneous-agent models with unemployment risk, clarifying how labor market frictions affect monetary policy transmission. +2. **Chen (2018)**: Provides computational evidence on the distributive effects of monetary policy in incomplete-markets models. +3. **Alves (2019)**: Analyzes the propagation of monetary shocks in HANK models and refines the understanding of key transmission channels. +4. **Hagedorn (2018)**: Emphasizes the interaction between wage rigidity, unemployment, and policy shocks in heterogeneous-agent settings. +5. **Bertsch (2017)**: Studies welfare and stabilization trade-offs in models combining heterogeneity and nominal rigidities. diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/subsequent-literature.bib b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/subsequent-literature.bib new file mode 100644 index 00000000..b3c4f14d --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/subsequent-literature.bib @@ -0,0 +1,196 @@ +% Exported from Litmaps (https://www.litmaps.com) + +@article{look_alves_2019, + title = {A Further Look at the Propagation Mechanism of Monetary Policy Shocks in HANK}, + author = {Alves, F. and Kaplan, Greg and Moll, Benjamin and Violante, G.}, + year = {2019}, + litmapsId = {230193600} +} + + +@article{bsp_cabote_2020, + title = {BSP Distributional Impact of Monetary Policy: Evidence from The Philippines}, + author = {Cabote, Nickson J. and Fernandez, Justin Ray Angelo J.}, + year = {2020}, + litmapsId = {238565918} +} + + +@article{credit_phillips_2016, + title = {How Credit Constraints Impact Job Finding Rates, Sorting & Aggregate Output∗ by Kyle Herkenhoff University of Minnesota}, + author = {Phillips, Gordon and Cohen-Cole, Ethan and Brown, David and Aguiar, Mark and Aizawa, Naoki and Bauducco, Sofia and Drozd, Lukasz and Guvenen, Fatih and Hagedorn, Marcus and Heathcote, Jonathan and Hyatt, Henry and Madeira, Carlos and Manovskii, I. and Mcgrattan, Ellen and Mitman, K. and Ohanian, Lee E and Pena, Fausto and Perri, Fabrizio and Ŕıos-Rull, Victor and Robin, Jean-Marc and Sargent, Thomas and Schulhofer-Wohl, Sam and Shimer, Rob and Spletzer, Jim and Wright, Randy and Xu, Ming}, + year = {2016}, + litmapsId = {266727367} +} + + +@article{estimating_aguiarconraria_2018, + title = {Estimating the Taylor rule in the time-frequency domain}, + doi = {10.1016/j.jmacro.2018.05.008}, + author = {Aguiar‐Conraria, Luís and Martins, M. M. and Soares, M.}, + journal = {Journal of macroeconomics}, + year = {2018}, + litmapsId = {198700426} +} + + +@article{monetary_gornemann_2012, + title = {Monetary Policy with Heterogeneous Agents}, + doi = {10.2139/ssrn.2147841}, + author = {Gornemann, N. and Kuester, Keith and Nakajima, M.}, + year = {2012}, + litmapsId = {275974449} +} + + +@article{monetary_gornemann_2012, + title = {Monetary Policy with Heterogeneous Agents}, + doi = {10.2139/ssrn.2147841}, + author = {Gornemann, N. and Kuester, Keith and Nakajima, M.}, + year = {2012}, + litmapsId = {275974449} +} + + +@article{prices_hagedorn_2018, + title = {Prices and Inflation When Government Bonds are Net Wealth}, + author = {Hagedorn, Marcus}, + year = {2018}, + litmapsId = {281827943} +} + + +@article{monetary_rakviashvili_2020, + title = {Monetary Policy and Inequality}, + doi = {10.17835/2076-6297.2020.12.4.006-017}, + author = {Rakviashvili, Alexander A.}, + journal = {Journal of Institutional Studies}, + year = {2020}, + litmapsId = {83797794} +} + + +@article{labor_mumtaz_2015, + title = {Labor Market Dynamics: A Time-Varying Analysis}, + doi = {10.1111/obes.12096}, + author = {Mumtaz, H. and Zanetti, Francesco}, + year = {2015}, + litmapsId = {114462813} +} + + +@article{unemploymentinflation_richard_2022, + title = {THE UNEMPLOYMENT-INFLATION TRADE-OFF REVISITED: THE PHILLIPS CURVE IN COVID TIMES}, + author = {Richard, and Crump, and Eusepi, Stefano and Giannoni, M.}, + year = {2022}, + litmapsId = {270428830} +} + + +@article{eitc_jones_2017, + title = {THE EITC OVER THE GREAT RECESSION}, + doi = {10.17310/ntj.2017.4.01}, + author = {Jones, Maggie R.}, + journal = {National Tax Journal}, + year = {2017}, + litmapsId = {154121135} +} + + +@article{computational_chen_2018, + title = {Computational evidence on the distributive properties of monetary policy}, + doi = {10.5018/economics-ejournal.ja.2018-62}, + author = {Chen, Siyan and Desiderio, Saul}, + journal = {Economics}, + year = {2018}, + litmapsId = {280396716} +} + + +@article{para_bayrakdar_2025, + title = {Para Politikası ve Gelir Eşitsizliği İlişkisi: Kırılgan Beşli Ülkelerinde Nedensellik Analizi}, + doi = {10.21076/vizyoner.1649187}, + author = {Bayrakdar, Seda}, + journal = {Süleyman Demirel Üniversitesi Vizyoner Dergisi}, + year = {2025}, + litmapsId = {294156372} +} + + +@article{credit_herkenhoff_2015, + title = {How Credit Constraints Impact Job Finding Rates, Sorting & Aggregate Output∗}, + author = {Herkenhoff, Kyle F.}, + year = {2015}, + litmapsId = {266619957} +} + + +@article{monetary_bertsch_2017, + title = {Monetary Normalizations and Consumer Credit: Evidence from Fed Liftoff and Online Lending}, + doi = {10.2139/ssrn.2780418}, + author = {Bertsch, Christoph and Hull, Isaiah and Zhang, Xin}, + year = {2017}, + litmapsId = {232013355} +} + + +@article{optimal_nuo_2016, + title = {Optimal Monetary Policy in a Heterogeneous Monetary Union ∗ Galo}, + author = {Nuño, Galo and España, Banco de and Thomas, Carlos}, + year = {2016}, + litmapsId = {236044600} +} + + +@article{doves_gornemann_2016, + title = {Doves for the Rich, Hawks for the Poor? Distributional Consequences of Monetary Policy}, + doi = {10.17016/ifdp.2016.1167}, + author = {Gornemann, Nils and Kuester, Keith and Nakajima, Makoto}, + journal = {Social Science Research Network}, + year = {2016}, + litmapsId = {35118833} +} + + +@article{born_roantree_2021, + title = {Born under a bad sign: the impact of finishing school when labour markets are weak}, + doi = {10.1920/wp.ifs.2021.2821}, + author = {Roantree, B. and Regan, M.}, + year = {2021}, + litmapsId = {221436092} +} + + +@article{monetary_tchatoka_2016, + title = {Monetary Policy and Indeterminacy after the 2001 Slump}, + doi = {10.2139/ssrn.2714657}, + author = {Tchatoka, F. Doko and Groshenny, Nicolas and Haque, Qazi and Weder, M.}, + year = {2016}, + litmapsId = {276770730} +} + + +@article{credit__2011, + title = {credit, including © notice, is given to the source. Labor Market Flows in the Cross Section and Over Time}, + author = {, }, + year = {2011}, + litmapsId = {268329673} +} + + +@article{income_hardy_2017, + title = {Income Instability and the Response of the Safety Net}, + doi = {10.1111/coep.12187}, + author = {Hardy, B.}, + year = {2017}, + litmapsId = {62235511} +} + + +@article{8_lochner_2016, + title = {CHAPTER 8 Student Loans and Repayment : Theory , Evidence , and Policy}, + author = {Lochner, L. and Monge-Naranjo, A.}, + year = {2016}, + litmapsId = {239001749} +} + From ca9cd91e8046a232c929cf01500e95c3cc218a12 Mon Sep 17 00:00:00 2001 From: Carlos Alba Fajardo Date: Tue, 17 Feb 2026 15:46:10 -0500 Subject: [PATCH 2/6] =?UTF-8?q?Create=20intro=20notebook=20for=20Monetary?= =?UTF-8?q?=20Policy=20with=20Heterogeneous=20Agents=20=E2=80=94=20Carlos?= =?UTF-8?q?=20Alba?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GKNMonetaryPolicyHA_intro.ipynb | 42 +++++++++++++++++++ ...{Gornemann_ballpark.bib => references.bib} | 0 2 files changed, 42 insertions(+) create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_intro.ipynb rename models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/{Gornemann_ballpark.bib => references.bib} (100%) diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_intro.ipynb b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_intro.ipynb new file mode 100644 index 00000000..23225aff --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_intro.ipynb @@ -0,0 +1,42 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d4767a85", + "metadata": {}, + "source": [ + "# Monetary Policy with Heterogeneous Agents\n", + "\n", + "Görnemann, Lukas; Kuester, Keith; Nakajima, Makoto (2012). \n", + "Federal Reserve Bank of Philadelphia Working Paper No. 12-14.\n" + ] + }, + { + "cell_type": "markdown", + "id": "d14d83f6", + "metadata": {}, + "source": [ + "## Original Ballpark Contributor\n", + "\n", + "Notebook created by: Nino Kodua — October 20, 2020\n" + ] + }, + { + "cell_type": "markdown", + "id": "1c20544a", + "metadata": {}, + "source": [ + "## Updated by\n", + "\n", + "Carlos Alba — February 17, 2026\n" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/Gornemann_ballpark.bib b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/references.bib similarity index 100% rename from models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/Gornemann_ballpark.bib rename to models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/references.bib From f447d7a7e4e96db6bd327e44f5134db5b8a39a3d Mon Sep 17 00:00:00 2001 From: Carlos Alba Fajardo Date: Tue, 17 Feb 2026 15:59:12 -0500 Subject: [PATCH 3/6] Add self.bib and prior-literature notebook with citations --- ...GKNMonetaryPolicyHA_prior-literature.ipynb | 47 ++ .../GKNMonetaryPolicyHA_summary.ipynb | 739 ++++++++++++++++++ .../GKNMonetaryPolicyHA/references.bib | 22 - .../GKNMonetaryPolicyHA/self.bib | 7 + 4 files changed, 793 insertions(+), 22 deletions(-) create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_prior-literature.ipynb create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_summary.ipynb create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/self.bib diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_prior-literature.ipynb b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_prior-literature.ipynb new file mode 100644 index 00000000..5ba1bf52 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_prior-literature.ipynb @@ -0,0 +1,47 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8dd62b7a", + "metadata": {}, + "source": [ + "# Prior Literature" + ] + }, + { + "cell_type": "markdown", + "id": "7e085f0b", + "metadata": {}, + "source": [ + "## Overview of the Prior Literature\n", + "\n", + "The paper builds on two central strands of macroeconomic research. The first is the New Keynesian literature on monetary policy with nominal rigidities, in which interest-rate rules govern inflation and output dynamics {cite:t}woodford1998}. This framework established how central banks can stabilize inflation and output in models with sticky prices.\n", + "\n", + "The second strand is heterogeneous-agent macroeconomics with incomplete markets. The canonical incomplete-markets model of precautionary saving under idiosyncratic risk is due to {cite:t}aiyagari1994}, which shows how borrowing constraints and uninsurable income shocks generate wealth inequality. Subsequent work, including {cite:t}heathcote2009}, emphasized the quantitative importance of heterogeneity for aggregate outcomes and welfare.\n" + ] + }, + { + "cell_type": "markdown", + "id": "e91d0806", + "metadata": {}, + "source": [ + "## Key Foundational Papers and Their Contributions\n", + "\n", + "- {cite:t}Clarida1998-sk} — Established the empirical and theoretical foundation for monetary policy rules in New Keynesian models.\n", + "\n", + "- {cite:t}Clarida2000-pd} — Provided a systematic treatment of monetary policy under rational expectations and nominal rigidities.\n", + "\n", + "- {cite:t}Andolfatto1996-gw} — Introduced search-and-matching frictions into real business cycle models, forming the basis for incorporating unemployment dynamics into DSGE frameworks.\n", + "\n", + "- {cite:t}Doepke2006-sm} — Analyzed the redistributional consequences of inflation across heterogeneous households, directly connecting monetary policy to inequality." + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_summary.ipynb b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_summary.ipynb new file mode 100644 index 00000000..7727ebf4 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_summary.ipynb @@ -0,0 +1,739 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Gornemann, Kuester, Nakajima (2012) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [\"Monetary Policy with Heterogeneous Agents\"](https://www.philadelphiafed.org/-/media/research-and-data/publications/working-papers/2012/wp12-21.pdf?la=en)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Notebook created by Nino Kodua\n", + "* October 20, 2020\n", + "* Contributor: Carlos Alba (literature synthesis and revisions)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Summary" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There is an evidence that even with the low interest rates, monetary policy shocks affect the level of aggregate acitivity, and the distribution of income and consumption across households. This paper analyzes the distributional effects of wealth across socioeconomic groups. It incorporates:\n", + "* New Keynesian sticky price framework (aggregate level)\n", + "* Imperfect consumption insurance and household heterogeneity - 3 dimensions:\n", + " * current potential productivity if employed\n", + " * current wealth\n", + " * current employment\n", + "* Search and matching frictions (labor market)\n", + "\n", + "\n", + "Main contributions and attributes of the paper that differentiate it from the existing literature include:\n", + "* Extention of an existing incomplete market general equilibrium models (introduction of nominal frictions)\n", + "* Impact of monetary policy on economic activity even if the redistribution of wealth is absent\n", + "* Distributional consequences of the interaction between monetary policy and unemployment\n", + "* Incomplete asset markets\n", + "* Heterogeneity in income and consumption even under perfect price stability\n", + "* While there is an extensive amount of literature on the redistribution consequences of fiscal policies, the literature on the wealth redistribution consequences of monetary policy is limited\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Overview" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The goal of the paper is to establish the extent to which monetary policy in the US might have distributional effects through the channels included in the model, as well as the impact of monetary policy on inequality." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prior Literature" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The paper combines two strands of macroeconomics. The first is **New Keynesian monetary policy**: nominal rigidities and interest-rate rules as the main transmission mechanism. Woodford (1998) showed that inflation can be analyzed in a “cashless” setup where the central bank sets interest rates rather than the money supply, which is the standard basis for modern DSGE policy analysis. Much of that work used a representative agent and ignored distribution.\n", + "\n", + "The second strand is **heterogeneous-agent macroeconomics** with incomplete markets and labor market frictions. Aiyagari (1994) showed that uninsurable idiosyncratic risk and borrowing limits generate precautionary saving and realistic wealth inequality. Later work (e.g. Heathcote, Storesletten, and Violante 2009) clarified how heterogeneity matters for aggregates and welfare. Search and matching were brought into general equilibrium models of unemployment (e.g. Mortensen and Pissarides 1994; Merz 1995), and combined with nominal rigidities (e.g. Walsh 2005; Krause and Lubik 2007; Blanchard and Galí 2010). The distributional effects of inflation and monetary policy were studied in incomplete-markets settings (e.g. Erosa and Ventura 2002; Doepke and Schneider 2006; Meh and Terajima 2011). GKN’s contribution is to integrate heterogeneous households, incomplete markets, and search frictions into a single New Keynesian model, so that the redistributive and welfare effects of monetary policy can be quantified." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Incomplete Markets and heterogeneity" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to introduce earnings heterogeneity, the model introduces labor market search and matching frictions (Mortensen and Pissarides, 1994) into the heterogeneous agent circumstances (Nakajima, 2012 and Krusell et al., 2010). Producers are monopolistically competitive and face quadratic adjustment costs (Rotemberg 1982)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cashless limit economy and Government" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Government balances budget on a period-by-period basis. Furthermore, assumption is that we have a cashless-limit economy. These two imply that government does not finance its budget through seigniorage. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Mutual Fund and 4 types of firms" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A representative mutual fund manages all assets. The model has 4 types of firms:\n", + "* Capital producers (invest in physical capital - competitive market)\n", + "* Labor agencies (hire households - homogeneous labor service)\n", + "* Intermediate-good producers (produce a differentiated good - adjustment costs)\n", + "* Final good producers (representative competitive firms)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Aggregate State Variables" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Vector of aggregate state variables - X = (K, N, Z, D, $\\mu$)\n", + "* K - aggregate capital stock\n", + "* N - total employment\n", + "* 2 shocks for cyclical fluctuations in the model:\n", + " * Z - the aggregate productivity shock\n", + " * D - the monetary policy shock\n", + " * $\\mu=(e, s, a) \\in \\mathcal{M}$ - type distribution of households" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Heterogeneous Households (e, s, a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Households are heterogeneous in 3 aspects. A household either works full time or does not work, has a skill level and saves for the future in the mutual fund.\n", + "* $e \\in\\{0,1\\}$ - Employment status (0: unemployed, 1: employed)\n", + "* $s \\in S$ - exogenous household skill level\n", + "* $a \\in A \\subseteq \\mathbb{R}^{+}$ - Share holdings of a household in the mutual funds." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Timing assumptions" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. When households start the period the have information about their employment status, skill level and state of economy.\n", + "2. Afterwards, there is a transition - household lose their jobs with exogenous probability $\\lambda$.\n", + "3. Newly employed households - unemployed households search for jobs and are matched to firm vacancies. \n", + "4. Household consumption and saving decision, and the production process.\n", + "5. Aggregate shocks\n", + "\n", + "There are laws of motion outlined in the paper as well.\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The Model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The paper analyzes the New Keynesian model with search and matching frictions and heterogeneity in a nonlinear framework. \n", + "\n", + "* DSGE model incorporating an incomplete asset markets, a frictional labor market and nominal frictions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Households" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* time separable utility\n", + "* Currently employed household keeps its job in the next period with the probability 1-$\\lambda$\n", + "* Households without a job always search for employment\n", + "* The job finding rate depends on the state of the economy \n", + "\n", + "We have 2 types of problems: employed and unemployed household.\n", + "\n", + "1. The problem of a household employed at the 4th stage (production, consumption, saving): e = 1\n", + "\n", + "\\begin{aligned}\n", + "&\\begin{array}{l}\n", + " W(X, 1, s, a)= max _{c, a^{\\prime} \\geq 0}\\left\\{u(c)+\\beta \\mathbb{E}\\left[\\left(1-\\lambda+\\lambda f\\left(\\widetilde{X}^{\\prime}\\right)\\right) W\\left(X^{\\prime}, 1, s^{\\prime}, a^{\\prime}\\right)+\\lambda\\left(1-f\\left(\\tilde{X}^{\\prime}\\right)\\right) W\\left(X^{\\prime}, 0, s^{\\prime}, a^{\\prime}\\right)\\right]\\right\\}\n", + "\\end{array}\\\\\n", + "&\\text { s.t. } \\quad c+p_{a}(X) a^{\\prime}=\\left(p_{a}(X)+d_{a}(X)\\right) a+w(X) s(1-\\tau(X))\n", + "\\end{aligned}\n", + "\n", + "* c: consumption\n", + "* $a^{\\prime}$: number of share holdings\n", + "* $f\\left(\\widetilde{X}^{\\prime}\\right)$: the job finding rate\n", + "* $p_{a}(X)$: the price of share\n", + "* $d_{a}(X)$: dividends\n", + "* $w(X)$: wage\n", + "* $\\tau(X)$: the payroll tax rate. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. The problem of a household unemployed at the 4th stage (production, consumption, saving): e = 0 (same skill & wealth level)\n", + "\n", + "\\begin{array}{l}\n", + "W(X, 0, s, a)=\\max _{c, a^{\\prime} \\geq 0}\\left\\{u(c)+\\beta \\mathbb{E}\\left[f\\left(\\tilde{X}^{\\prime}\\right) W\\left(X^{\\prime}, 1, s^{\\prime}, a^{\\prime}\\right)+\\left(1-f\\left(\\tilde{X}^{\\prime}\\right)\\right) W\\left(X^{\\prime}, 0, s^{\\prime}, a^{\\prime}\\right)\\right]\\right\\} \\\\\n", + "\\text { s.t. } \\quad c+p_{a}(X) a^{\\prime}=\\left(p_{a}(X)+d_{a}(X)\\right) a+b s\n", + "\\end{array}\n", + "\n", + "* b: unemployment insurance benefit per efficiency unity of labor" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Final Good Producer" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Representative competitive final goods sector\n", + "* Final goods - used for consumption, investment and vacancy creation\n", + "* Constant elasticity of substitution production technology\n", + "* differentiated products as inputs\n", + "* each input price of intermediate good taken as given\n", + "* Dixit-Stiglitz demand functions for each intermediate good\n", + "\n", + "Representative final good producer's problem: \n", + "\n", + "\\begin{array}{l}\n", + "\\max _{y, y_{j \\in[0,1]}} &P(X) y-\\int_{0}^{1} P_{j} y_{j} d j \\\\\n", + "\\text { s.t. } \\quad &y=\\left(\\int_{0}^{1} y_{j}^{\\frac{\\epsilon-1}{\\epsilon}} d j\\right)^{\\frac{\\epsilon}{\\epsilon-1}}\n", + "\\end{array}\n", + "\n", + "where $P(X)=\\left(\\int_{0}^{1} P_{j}^{1-\\epsilon} d j\\right)^{\\frac{1}{1-\\epsilon}}$ is the price of the final good .\n", + "\n", + "* $j \\in[0,1]$: type of intermediate goods\n", + "* $y_{j}$: the quantity of intermediate good j" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Intermediate Good Producer" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* buys labor and capital services\n", + "* sells output to final good firms\n", + "* Monopolistic competition\n", + "* Cobb-Douglas Production technology\n", + "* Nominal price is subject to Rotemberg (1982) adjustment costs (Nominal rigidities)\n", + "\n", + "Intermediate good producer's problem:\n", + "\n", + "\\begin{array}{c}\n", + "J_{I}\\left(X, P_{j,-1}\\right)=\\max _{P_{j}, \\ell_{j}, k_{j}} y_{j}\\left(X, P_{j}\\right)\\left(\\frac{P_{j}}{P(X)}-\\frac{\\phi_{\\Pi}}{2}\\left(\\frac{P_{j}}{P_{j,-1}}-\\bar{\\Pi}\\right)^{2}\\right)-r(X) k_{j}-h(X) \\ell_{j}+\\mathbb{E}\\left[Q\\left(X, X^{\\prime}\\right) J_{I}\\left(X^{\\prime}, P_{j}\\right)\\right] \\\\\n", + "\\text { s.t. } \\quad y_{j}\\left(X, P_{j}\\right)=Z k_{j}^{\\theta} \\ell_{j}^{1-\\theta}\n", + "\\end{array}\n", + "\n", + "* h(X): labor services\n", + "* r(X): capital services\n", + "* $P_{j}$: nominal price of intermediate good j\n", + "* $P_{j,-1}$: price of good j in the previous period\n", + "* $y_{j}\\left(X, P_{j}\\right)$: firm's Dixit-Stiglitz demand function\n", + "* $\\bar{\\Pi}$: steady state inflation rate\n", + "* $\\phi_{\\Pi}>0$: size of the quadratic price adjustment\n", + "* Z: total factor productivity (TFP)\n", + " * follows a first-order autoregressive process:\n", + " \\begin{array}\n", + " \\log \\left(Z^{\\prime}\\right)=\\left(1-\\rho_{Z}\\right) \\log (\\bar{Z})+\\rho_{Z} \\log (Z)+\\epsilon_{Z}, \\text { where } \\epsilon_{Z} \\text { is i.i.d. } N\\left(0, \\sigma_{Z}^{2}\\right), \\rho_{Z} \\in[0,1)\n", + " \\end{array}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Capital-Producing Sector" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* produces homogeneous good, capital services\n", + "* sells capital services to the intermediate goods sector\n", + "\n", + "The problem of a representative capital-producing firm: \n", + "\n", + "\\begin{array}{l}\n", + "J_{K}(X, K)=\\max _{v, i, K^{\\prime}}\\left\\{r(X) K v-i+\\mathbb{E}\\left[Q\\left(X, X^{\\prime}\\right) J_{K}\\left(X^{\\prime}, K^{\\prime}\\right)\\right]\\right\\} \\\\\n", + "\\text { s.t. } \\quad K^{\\prime}=(1-\\delta(v)) K+\\zeta\\left(\\frac{i}{K}\\right) K\n", + "\\end{array}\n", + "\n", + "* i: capital investment\n", + "* v: capacity utilization\n", + "* $\\delta(v)$: depreciation of capital stock" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Labor Market" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* produces homogeneous good, labor services\n", + "* sells labor services to the intermediate goods sector\n", + "* labor agencies can only be matched with one household\n", + "* Probability 1-$\\lambda$: match between a labor agency and its household\n", + "* Search and matching frictions\n", + "* Cobb-Douglas Matching function: \n", + "\\begin{array}\n", + "M(\\widetilde{X}, V)=\\gamma(U(\\tilde{X})+\\lambda N(\\tilde{X}))^{\\alpha} V^{1-\\alpha}\n", + "\\end{array}\n", + "* A vacancy cost $\\kappa$: \n", + "\\begin{array}\n", + "\\kappa=\\frac{M(\\tilde{X}, V)}{V} \\int_{\\mathcal{M}} J_{L}(\\hat{G}(\\tilde{X}), s) d \\mu\n", + "\\end{array}\n", + "\n", + "Value of a labor agency employing s skill level household:\n", + "\n", + "\\begin{array}{J}\n", + "J_{L}(X, s)=(h(X)-w(X)) s+\\mathbb{E}\\left[Q\\left(X, X^{\\prime}\\right)(1-\\lambda) J_{L}\\left(X^{\\prime}, s^{\\prime}\\right)\\right]\n", + "\\end{array}\n", + "\n", + "* w(X): wage per efficiency unit\n", + "* $Q\\left(X, X^{\\prime}\\right)$: stochastic discount factor" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Mutual Fund" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Households hold assets in the shares in mutual funds\n", + "* share are traded in a competitive market\n", + "* 5 types of assets\n", + " * Equity associated with intermediate goods producers, final goods producers, capital service producers, and labor service producers\n", + " * Bonds - mutual funds can trade with each other\n", + "* The Central Bank controls rate of return\n", + "* Equilibrium price of bonds:\n", + "\\begin{array}{p}\n", + "p_{b}(X)=\\mathbb{E}\\left[Q\\left(X, X^{\\prime}\\right) \\frac{1}{\\Pi\\left(X^{\\prime}\\right)}\\right]\n", + "\\end{array}\n", + "* Bond investment decision:\n", + "\\begin{array}{1}\n", + "1=\\mathbb{E}\\left[Q\\left(X, X^{\\prime}\\right) \\frac{R(X)}{\\Pi\\left(X^{\\prime}\\right)}\\right]\n", + "\\end{array}\n", + "* Dividends per share: \n", + "\\begin{aligned}\n", + "d_{a}(X)=& \\int_{0}^{1}\\left[y_{j}(X) \\frac{P_{j}(X)}{P(X)}-r(X) k_{j}(X)-h(X) \\ell_{j}(X)\\right] d j + r(X) K(X) v(X)-i(X) +\\int_{\\mathcal{M}}(h(X)-w(X)) s d \\mu-\\kappa V(\\tilde{X})\n", + "\\end{aligned}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The Central Bank" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Monetary policy - Taylor(1993)-type rule:\n", + "\\begin{aligned}\n", + "\\log \\left(\\frac{R(X)}{\\bar{R}}\\right)=\\rho_{\\Pi} \\log \\left(\\frac{\\Pi(X)}{\\bar{\\Pi}}\\right)+\\rho_{y} \\log \\left(\\frac{y}{\\bar{y}}\\right)+D\n", + "\\end{aligned}\n", + "* $\\bar{\\Pi}$: inflation target\n", + "* $\\bar{y}$: output target\n", + "* D: Persistent monetary policy shocks\n", + " * follows a first-order autoregressive process:\n", + " \\begin{aligned}\n", + " \\log \\left(D^{\\prime}\\right)=\\rho_{D} \\log (D)+\\epsilon_{D}, \\text { where } \\epsilon_{D} \\text { is i.i.d. } N\\left(0, \\sigma_{D}^{2}\\right), \\rho_{D} \\in[0,1)\n", + " \\end{aligned}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Market Equilibrium" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model consists of 6 markets: \n", + "* final goods\n", + "* intermediate goods\n", + "* labor services\n", + "* capital services\n", + "* share of mutual funds\n", + "* bonds\n", + "\n", + "The paper describes multiple market clearing conditions and defines a recursive equilibrium. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Computation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model is calibrated for the sample of the time period: 1984Q1 - 2008Q3. One period refers to a quarter. \n", + "\n", + "The following table shows the calibration parameter values. Once calibrated, the model is solved numerically. \n", + "* Computation involves a solution method of an equilibrium with aggregate uncertainty (described in Appendix B)\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to calibrate the model, we also need information about the transition probabilities between different skill levels. Table below describes assigned probabilities.\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Transmission of a Technology Shock (TFP)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Response of the aggregate economy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, the response of the aggregate economy, including output and its components, labor market, prices, and assets, to the TFP shocks is reported. (1% TFP shock in period 1)\n", + "\n", + "Figures present responses in the New Keynesian (NK) model and in the economy without nominal rigidities (RBC). \n", + "\n", + "Output and Components(Consumption, Investment, Capacity Utilization):\n", + "\n", + "* Responses are larger in the NK economy compared to RBC\n", + "* Output, aggregate consumption and investment rise in response to the shock\n", + "* Capacity utilization rises more in the NK model due to the stronger demand effect\n", + "\n", + "Labor Market:\n", + "\n", + "* Demand and price for labor services increases\n", + "* More vacancies are posted\n", + "* The job finding rate rises by 3 %\n", + "* Employment increases due to the TFP shock and unemployment decreases by 0.4 %\n", + "\n", + "Productivity and Prices:\n", + "\n", + "* Despite the increase in productivity, inflation rises\n", + "* The aggregate wage rises less than output\n", + "* The value of household-firm matches increases\n", + "\n", + "Assets:\n", + "\n", + "* The value of firms increases\n", + "* The share prices of the mutual fund increases by 0.6 %\n", + "* During first 10 periods, mutual fund decreases dividend payments\n", + "* Real return on the bond falls initially" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Effect on Inequality" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Second, the impact of a productivity shock on inequality is reported. \n", + "\n", + "* TFP shock increases the standard of living for all households\n", + "* Labor-related income rises for all segments of population\n", + "* Labor earnings of all households are affected proportionally\n", + "* Labor income increases by a different degree for different segments of wealth\n", + "* The lowest percentiles of the wealth distribution show stronger response in terms of all income compared to higher percentiles\n", + "* Consumption response is also heterogeneous\n", + "* The responses of the Gini indexes is mild\n", + " * 1 % TFP shocks results into a fall of the earnings Gini by 0.16 %" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note: Here I will not be be displaying figures related to a TFP shock" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Transmission of a Monetary Policy Shock" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Response of the aggregate economy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The main part of the paper is reported here. More specifically, monetary policy shock allows for a discussion of the impact of monetary policy on inequality. \n", + "Again, first, the responces of the aggregate economy to a contractionary policy shock is reported. \n", + "\n", + "* Monetary shock is chosen in a way that it increases nominal interest rate by 1 %, annual in period 1\n", + "\n", + "Output and Components(Consumption, Investment and Capacity Utilization):\n", + "\n", + "* Expected long real rate of interest rises (by design)\n", + "* Households save more and cut consumption by 0.3 %\n", + "* Markups of intermediate goods firms increases and aggregate demand falls\n", + "* Investment and capacity utilization falls\n", + "\n", + "\n", + "\n", + "Labor Market: \n", + "\n", + "* Monetary policy tightening reduces demand for labor services\n", + "* Hiring, vacancy posting and job finding rates fall \n", + "* Unemployment rate increases by 1.5 %\n", + "* Since households are borrowing-constrained, unemployment decreases aggregate demand even further\n", + "\n", + "\n", + "\n", + "Productivity and Price:\n", + "\n", + "* The rental rates for labor and capital services fall\n", + "* Inflation decreases by 2 %\n", + "* Increase in the long term real rate of interest decreases inflation\n", + "* long term real rate of interest higher than usual\n", + "\n", + "\n", + "\n", + "Assets:\n", + "\n", + "* Share price declines\n", + "* Investment becomes less profitable\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Effect on Inequality" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, the paper reports the impact of a contractionary monetary policy on different segments of households. \n", + "\n", + "* The initial drop in labor income is the biggest for higher wealth percentiles\n", + "* Monetary policy significantly impacts composition of income\n", + "* Income of high-wealth household rises strongly because of an increase in dividends\n", + "* Income of lower-wealth households declines\n", + "* Difference in the responce of income betwee the top 5% and the bottom 5% is very significant, 7% (income heterogeneity)\n", + "* Consumption declines for the lower-wealth households and is stable for the wealthiest\n", + "\n", + "\n", + "\n", + "* As a result of monetary tightening, earnings Gini rises by 0.6 % (persistent)\n", + "* Both the income and consumption Gini rise \n", + "* Conclusion: even short-lived monetary policy intervention has a persistent impact on wealth and consumption inequality\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Welfare effects of Productivity and Monetary Policy Shocks" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The paper reports the same information from a different perspective. In particular, in this section authors analyze welfare gainst and costs measured as consumption. \n", + "\n", + "* Monetary policy shock: 5% richest households gain 0.02% consumption-equivalend from the monetary tightening policy. The rest of the households have welfare losses (monotonic in wealth).\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Subsequent Literature" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Later work has extended the analysis of **monetary policy in heterogeneous-agent New Keynesian (HANK) models**. One line of research focuses on transmission mechanisms: how marginal propensities to consume, wealth distributions, and labor income risk change aggregate and distributional responses to monetary shocks (e.g. Herkenhoff 2015; Chen 2018; Alves 2019). Another line deepens the role of **labor market frictions** in HANK models—unemployment risk, job-finding rates, and wage rigidity—and shows that they amplify distributional effects and matter for optimal policy (e.g. Hagedorn 2018; Bertsch 2017; Jones 2017). The frontier combines rich household heterogeneity with empirically grounded labor market dynamics and policy rules; open questions include identification of redistribution channels in the data and the interaction of monetary and fiscal policy in HANK environments." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Conclusion" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The monetary policy shocks have significantly different implications in terms of the welfare of different segments of households. While households in the top 5% of wealth distribution see benefits from a contractionary monetary policy, the bottom 5% of wealth distribution faces losses. Therefore, monetary policy affects different households differently and increases earnings, income, wealth and consumption heterogeneity.\n", + "\n", + "* The effects are significant even after the impact of monetary policy on aggregate economy has died out\n", + "* TFP shocks affect the population more uniformly\n", + "* Contractionary monetary policy only benefits the wealthiest" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/references.bib b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/references.bib index 2b34f1b0..b3680db5 100644 --- a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/references.bib +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/references.bib @@ -1,25 +1,3 @@ -@ARTICLE{Gornemann2012-jt, - title = "Monetary policy with heterogeneous agents", - author = "Gornemann, Nils and Kuester, Keith and Nakajima, Makoto", - journal = "SSRN Electron. J.", - publisher = "Elsevier BV", - abstract = "We build a New Keynesian model in which heterogeneous workers - differ with regard to their employment status due to search and - matching frictions in the labor market, their potential labor - income, and their amount of savings. We use this laboratory to - quantitatively assess who stands to win or lose from - unanticipated monetary accommodation and who benefits most from - systematic monetary stabilization policy. We find substantial - redistribution effects of monetary policy shocks; a - contractionary monetary policy shock increases income and welfare - of the wealthiest 5 percent, while the remaining 95 percent - experience lower income and welfare. Consequently, the negative - effect of a contractionary monetary policy shock to social - welfare is larger if heterogeneity is taken into account.", - year = 2012, - language = "en" -} - @ARTICLE{Akyol2004-my, title = "Optimal Monetary Policy in an Economy with Incomplete Markets and Id- iosyncratic Risk", diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/self.bib b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/self.bib new file mode 100644 index 00000000..5b0c65c5 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/self.bib @@ -0,0 +1,7 @@ +@techreport{gornemann2012monetary, + author = {G{\"o}rnemann, Lukas and Kuester, Keith and Nakajima, Makoto}, + title = {Monetary Policy with Heterogeneous Agents}, + year = {2012}, + institution = {Federal Reserve Bank of Philadelphia}, + number = {Working Paper No. 12-14} +} \ No newline at end of file From d53e9ebad1921f3ce509e9c54413809a599c9ba2 Mon Sep 17 00:00:00 2001 From: Carlos Alba Fajardo Date: Tue, 17 Feb 2026 16:09:43 -0500 Subject: [PATCH 4/6] Add subsequent-literature notebook with citations --- ...netaryPolicyHA_subsequent-literature.ipynb | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_subsequent-literature.ipynb diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_subsequent-literature.ipynb b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_subsequent-literature.ipynb new file mode 100644 index 00000000..9d819e5e --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_subsequent-literature.ipynb @@ -0,0 +1,49 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "100e0de1", + "metadata": {}, + "source": [ + "# Subsequent Literature" + ] + }, + { + "cell_type": "markdown", + "id": "0129cb23", + "metadata": {}, + "source": [ + "## Overview of How the Paper Has Been Built Upon\n", + "\n", + "Following {cite:t}monetary_gornemann_2012}, a growing literature has developed heterogeneous-agent New Keynesian (HANK) models to study the distributional and aggregate consequences of monetary policy. These models extend the framework of {cite:t}monetary_gornemann_2012} by incorporating richer household heterogeneity, empirical marginal propensities to consume, and more detailed labor market dynamics.\n", + "\n", + "Subsequent research emphasizes how credit constraints, labor market risk, and unemployment interact with monetary transmission. For example, {cite:t}credit_herkenhoff_2015} and {cite:t}monetary_bertsch_2017} examine the role of borrowing constraints and balance sheets in shaping policy effects." + ] + }, + { + "cell_type": "markdown", + "id": "21be8cd0", + "metadata": {}, + "source": [ + "## Key Subsequent Papers and Their Contributions\n", + "\n", + "- {cite:t}prices_hagedorn_2018} — Integrates unemployment risk and wage rigidity into heterogeneous-agent monetary models.\n", + "\n", + "- {cite:t}computational_chen_2018} — Develops computational techniques for solving large-scale heterogeneous-agent DSGE models.\n", + "\n", + "- {cite:t}eitc_jones_2017} — Explores redistribution and policy design in heterogeneous-agent environments.\n", + "\n", + "- {cite:t}look_alves_2019} — Investigates monetary policy transmission in models with wealth heterogeneity and imperfect insurance.\n", + "\n", + "- {cite:t}monetary_rakviashvili_2020} — Studies extensions of HANK models and their quantitative implications." + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From d7f959998ba50313993d406519666ddf55cbaacb Mon Sep 17 00:00:00 2001 From: Carlos Alba Fajardo Date: Tue, 17 Feb 2026 16:43:00 -0500 Subject: [PATCH 5/6] Add four-notebook MyST assembly with citations and TOC --- .../GKNMonetaryPolicyHA/index.md | 15 ++++++++ .../GKNMonetaryPolicyHA/myst.yml | 13 +++++++ pyproject.toml | 1 + uv.lock | 36 ++++++++++++++----- 4 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/index.md create mode 100644 models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/myst.yml diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/index.md b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/index.md new file mode 100644 index 00000000..8a2bfd4d --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/index.md @@ -0,0 +1,15 @@ +--- +title: "Monetary Policy with Heterogeneous Agents — Ballpark Entry" +--- + +```{include} GKNMonetaryPolicyHA_intro.ipynb +``` + +```{include} GKNMonetaryPolicyHA_prior-literature.ipynb +``` + +```{include} GKNMonetaryPolicyHA_summary.ipynb +``` + +```{include} GKNMonetaryPolicyHA_subsequent-literature.ipynb +``` \ No newline at end of file diff --git a/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/myst.yml b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/myst.yml new file mode 100644 index 00000000..df39e685 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/myst.yml @@ -0,0 +1,13 @@ +version: 1 + +project: + title: "Monetary Policy with Heterogeneous Agents — Ballpark Entry" + bibliography: + - self.bib + - references.bib + - subsequent-literature.bib + toc: + - file: index.md + +site: + title: "Monetary Policy with Heterogeneous Agents — Ballpark Entry" \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index b9de4945..31fec465 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,6 +9,7 @@ dependencies = [ "jupyter", "jupyterlab", "jupyterlab-citation-manager", + "mystmd>=1.8.1", ] [project.optional-dependencies] diff --git a/uv.lock b/uv.lock index 6edfd5b0..1bd5a946 100644 --- a/uv.lock +++ b/uv.lock @@ -155,6 +155,7 @@ dependencies = [ { name = "jupyter" }, { name = "jupyterlab" }, { name = "jupyterlab-citation-manager" }, + { name = "mystmd" }, ] [package.metadata] @@ -163,6 +164,7 @@ requires-dist = [ { name = "jupyter" }, { name = "jupyterlab" }, { name = "jupyterlab-citation-manager" }, + { name = "mystmd", specifier = ">=1.8.1" }, ] provides-extras = ["dev"] @@ -759,7 +761,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fe/65/5b235b40581ad75ab97dcd8b4218022ae8e3ab77c13c919f1a1dfe9171fd/greenlet-3.3.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:04bee4775f40ecefcdaa9d115ab44736cd4b9c5fba733575bfe9379419582e13", size = 273723, upload-time = "2026-01-23T15:30:37.521Z" }, { url = "https://files.pythonhosted.org/packages/ce/ad/eb4729b85cba2d29499e0a04ca6fbdd8f540afd7be142fd571eea43d712f/greenlet-3.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50e1457f4fed12a50e427988a07f0f9df53cf0ee8da23fab16e6732c2ec909d4", size = 574874, upload-time = "2026-01-23T16:00:54.551Z" }, { url = "https://files.pythonhosted.org/packages/87/32/57cad7fe4c8b82fdaa098c89498ef85ad92dfbb09d5eb713adedfc2ae1f5/greenlet-3.3.1-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:070472cd156f0656f86f92e954591644e158fd65aa415ffbe2d44ca77656a8f5", size = 586309, upload-time = "2026-01-23T16:05:25.18Z" }, - { url = "https://files.pythonhosted.org/packages/66/66/f041005cb87055e62b0d68680e88ec1a57f4688523d5e2fb305841bc8307/greenlet-3.3.1-cp310-cp310-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1108b61b06b5224656121c3c8ee8876161c491cbe74e5c519e0634c837cf93d5", size = 597461, upload-time = "2026-01-23T16:15:51.943Z" }, { url = "https://files.pythonhosted.org/packages/87/eb/8a1ec2da4d55824f160594a75a9d8354a5fe0a300fb1c48e7944265217e1/greenlet-3.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3a300354f27dd86bae5fbf7002e6dd2b3255cd372e9242c933faf5e859b703fe", size = 586985, upload-time = "2026-01-23T15:32:47.968Z" }, { url = "https://files.pythonhosted.org/packages/15/1c/0621dd4321dd8c351372ee8f9308136acb628600658a49be1b7504208738/greenlet-3.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e84b51cbebf9ae573b5fbd15df88887815e3253fc000a7d0ff95170e8f7e9729", size = 1547271, upload-time = "2026-01-23T16:04:18.977Z" }, { url = "https://files.pythonhosted.org/packages/9d/53/24047f8924c83bea7a59c8678d9571209c6bfe5f4c17c94a78c06024e9f2/greenlet-3.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e0093bd1a06d899892427217f0ff2a3c8f306182b8c754336d32e2d587c131b4", size = 1613427, upload-time = "2026-01-23T15:33:44.428Z" }, @@ -767,7 +768,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/e8/2e1462c8fdbe0f210feb5ac7ad2d9029af8be3bf45bd9fa39765f821642f/greenlet-3.3.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:5fd23b9bc6d37b563211c6abbb1b3cab27db385a4449af5c32e932f93017080c", size = 274974, upload-time = "2026-01-23T15:31:02.891Z" }, { url = "https://files.pythonhosted.org/packages/7e/a8/530a401419a6b302af59f67aaf0b9ba1015855ea7e56c036b5928793c5bd/greenlet-3.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09f51496a0bfbaa9d74d36a52d2580d1ef5ed4fdfcff0a73730abfbbbe1403dd", size = 577175, upload-time = "2026-01-23T16:00:56.213Z" }, { url = "https://files.pythonhosted.org/packages/8e/89/7e812bb9c05e1aaef9b597ac1d0962b9021d2c6269354966451e885c4e6b/greenlet-3.3.1-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb0feb07fe6e6a74615ee62a880007d976cf739b6669cce95daa7373d4fc69c5", size = 590401, upload-time = "2026-01-23T16:05:26.365Z" }, - { url = "https://files.pythonhosted.org/packages/70/ae/e2d5f0e59b94a2269b68a629173263fa40b63da32f5c231307c349315871/greenlet-3.3.1-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:67ea3fc73c8cd92f42467a72b75e8f05ed51a0e9b1d15398c913416f2dafd49f", size = 601161, upload-time = "2026-01-23T16:15:53.456Z" }, { url = "https://files.pythonhosted.org/packages/5c/ae/8d472e1f5ac5efe55c563f3eabb38c98a44b832602e12910750a7c025802/greenlet-3.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:39eda9ba259cc9801da05351eaa8576e9aa83eb9411e8f0c299e05d712a210f2", size = 590272, upload-time = "2026-01-23T15:32:49.411Z" }, { url = "https://files.pythonhosted.org/packages/a8/51/0fde34bebfcadc833550717eade64e35ec8738e6b097d5d248274a01258b/greenlet-3.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e2e7e882f83149f0a71ac822ebf156d902e7a5d22c9045e3e0d1daf59cee2cc9", size = 1550729, upload-time = "2026-01-23T16:04:20.867Z" }, { url = "https://files.pythonhosted.org/packages/16/c9/2fb47bee83b25b119d5a35d580807bb8b92480a54b68fef009a02945629f/greenlet-3.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:80aa4d79eb5564f2e0a6144fcc744b5a37c56c4a92d60920720e99210d88db0f", size = 1615552, upload-time = "2026-01-23T15:33:45.743Z" }, @@ -776,7 +776,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" }, { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" }, { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" }, - { url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" }, { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" }, { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" }, { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" }, @@ -785,7 +784,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/ab/d26750f2b7242c2b90ea2ad71de70cfcd73a948a49513188a0fc0d6fc15a/greenlet-3.3.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:7ab327905cabb0622adca5971e488064e35115430cec2c35a50fd36e72a315b3", size = 275205, upload-time = "2026-01-23T15:30:24.556Z" }, { url = "https://files.pythonhosted.org/packages/10/d3/be7d19e8fad7c5a78eeefb2d896a08cd4643e1e90c605c4be3b46264998f/greenlet-3.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:65be2f026ca6a176f88fb935ee23c18333ccea97048076aef4db1ef5bc0713ac", size = 599284, upload-time = "2026-01-23T16:00:58.584Z" }, { url = "https://files.pythonhosted.org/packages/ae/21/fe703aaa056fdb0f17e5afd4b5c80195bbdab701208918938bd15b00d39b/greenlet-3.3.1-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7a3ae05b3d225b4155bda56b072ceb09d05e974bc74be6c3fc15463cf69f33fd", size = 610274, upload-time = "2026-01-23T16:05:29.312Z" }, - { url = "https://files.pythonhosted.org/packages/06/00/95df0b6a935103c0452dad2203f5be8377e551b8466a29650c4c5a5af6cc/greenlet-3.3.1-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:12184c61e5d64268a160226fb4818af4df02cfead8379d7f8b99a56c3a54ff3e", size = 624375, upload-time = "2026-01-23T16:15:55.915Z" }, { url = "https://files.pythonhosted.org/packages/cb/86/5c6ab23bb3c28c21ed6bebad006515cfe08b04613eb105ca0041fecca852/greenlet-3.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6423481193bbbe871313de5fd06a082f2649e7ce6e08015d2a76c1e9186ca5b3", size = 612904, upload-time = "2026-01-23T15:32:52.317Z" }, { url = "https://files.pythonhosted.org/packages/c2/f3/7949994264e22639e40718c2daf6f6df5169bf48fb038c008a489ec53a50/greenlet-3.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:33a956fe78bbbda82bfc95e128d61129b32d66bcf0a20a1f0c08aa4839ffa951", size = 1567316, upload-time = "2026-01-23T16:04:23.316Z" }, { url = "https://files.pythonhosted.org/packages/8d/6e/d73c94d13b6465e9f7cd6231c68abde838bb22408596c05d9059830b7872/greenlet-3.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b065d3284be43728dd280f6f9a13990b56470b81be20375a207cdc814a983f2", size = 1636549, upload-time = "2026-01-23T15:33:48.643Z" }, @@ -794,7 +792,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ae/fb/011c7c717213182caf78084a9bea51c8590b0afda98001f69d9f853a495b/greenlet-3.3.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:bd59acd8529b372775cd0fcbc5f420ae20681c5b045ce25bd453ed8455ab99b5", size = 275737, upload-time = "2026-01-23T15:32:16.889Z" }, { url = "https://files.pythonhosted.org/packages/41/2e/a3a417d620363fdbb08a48b1dd582956a46a61bf8fd27ee8164f9dfe87c2/greenlet-3.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b31c05dd84ef6871dd47120386aed35323c944d86c3d91a17c4b8d23df62f15b", size = 646422, upload-time = "2026-01-23T16:01:00.354Z" }, { url = "https://files.pythonhosted.org/packages/b4/09/c6c4a0db47defafd2d6bab8ddfe47ad19963b4e30f5bed84d75328059f8c/greenlet-3.3.1-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:02925a0bfffc41e542c70aa14c7eda3593e4d7e274bfcccca1827e6c0875902e", size = 658219, upload-time = "2026-01-23T16:05:30.956Z" }, - { url = "https://files.pythonhosted.org/packages/e2/89/b95f2ddcc5f3c2bc09c8ee8d77be312df7f9e7175703ab780f2014a0e781/greenlet-3.3.1-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3e0f3878ca3a3ff63ab4ea478585942b53df66ddde327b59ecb191b19dbbd62d", size = 671455, upload-time = "2026-01-23T16:15:57.232Z" }, { url = "https://files.pythonhosted.org/packages/80/38/9d42d60dffb04b45f03dbab9430898352dba277758640751dc5cc316c521/greenlet-3.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34a729e2e4e4ffe9ae2408d5ecaf12f944853f40ad724929b7585bca808a9d6f", size = 660237, upload-time = "2026-01-23T15:32:53.967Z" }, { url = "https://files.pythonhosted.org/packages/96/61/373c30b7197f9e756e4c81ae90a8d55dc3598c17673f91f4d31c3c689c3f/greenlet-3.3.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:aec9ab04e82918e623415947921dea15851b152b822661cce3f8e4393c3df683", size = 1615261, upload-time = "2026-01-23T16:04:25.066Z" }, { url = "https://files.pythonhosted.org/packages/fd/d3/ca534310343f5945316f9451e953dcd89b36fe7a19de652a1dc5a0eeef3f/greenlet-3.3.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:71c767cf281a80d02b6c1bdc41c9468e1f5a494fb11bc8688c360524e273d7b1", size = 1683719, upload-time = "2026-01-23T15:33:50.61Z" }, @@ -803,7 +800,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/28/24/cbbec49bacdcc9ec652a81d3efef7b59f326697e7edf6ed775a5e08e54c2/greenlet-3.3.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:3e63252943c921b90abb035ebe9de832c436401d9c45f262d80e2d06cc659242", size = 282706, upload-time = "2026-01-23T15:33:05.525Z" }, { url = "https://files.pythonhosted.org/packages/86/2e/4f2b9323c144c4fe8842a4e0d92121465485c3c2c5b9e9b30a52e80f523f/greenlet-3.3.1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:76e39058e68eb125de10c92524573924e827927df5d3891fbc97bd55764a8774", size = 651209, upload-time = "2026-01-23T16:01:01.517Z" }, { url = "https://files.pythonhosted.org/packages/d9/87/50ca60e515f5bb55a2fbc5f0c9b5b156de7d2fc51a0a69abc9d23914a237/greenlet-3.3.1-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c9f9d5e7a9310b7a2f416dd13d2e3fd8b42d803968ea580b7c0f322ccb389b97", size = 654300, upload-time = "2026-01-23T16:05:32.199Z" }, - { url = "https://files.pythonhosted.org/packages/7c/25/c51a63f3f463171e09cb586eb64db0861eb06667ab01a7968371a24c4f3b/greenlet-3.3.1-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b9721549a95db96689458a1e0ae32412ca18776ed004463df3a9299c1b257ab", size = 662574, upload-time = "2026-01-23T16:15:58.364Z" }, { url = "https://files.pythonhosted.org/packages/1d/94/74310866dfa2b73dd08659a3d18762f83985ad3281901ba0ee9a815194fb/greenlet-3.3.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92497c78adf3ac703b57f1e3813c2d874f27f71a178f9ea5887855da413cd6d2", size = 653842, upload-time = "2026-01-23T15:32:55.671Z" }, { url = "https://files.pythonhosted.org/packages/97/43/8bf0ffa3d498eeee4c58c212a3905dd6146c01c8dc0b0a046481ca29b18c/greenlet-3.3.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ed6b402bc74d6557a705e197d47f9063733091ed6357b3de33619d8a8d93ac53", size = 1614917, upload-time = "2026-01-23T16:04:26.276Z" }, { url = "https://files.pythonhosted.org/packages/89/90/a3be7a5f378fc6e84abe4dcfb2ba32b07786861172e502388b4c90000d1b/greenlet-3.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:59913f1e5ada20fde795ba906916aea25d442abcc0593fba7e26c92b7ad76249", size = 1676092, upload-time = "2026-01-23T15:33:52.176Z" }, @@ -1655,6 +1651,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, ] +[[package]] +name = "mystmd" +version = "1.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nodeenv" }, + { name = "platformdirs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3b/27/98af31e70e24c7336909b9a00bc77d3cf4678136218b2383ec8eadfb3f11/mystmd-1.8.1.tar.gz", hash = "sha256:2c2254020484b0af60890736f39eff973384c323d4c3afee5d5aa204f1145ead", size = 2783357, upload-time = "2026-02-13T22:49:03.58Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/81/8266bf0bb65c6bd4d6c831f622007a827ad6fc3cdc8272b048ec4d89fd6c/mystmd-1.8.1-py3-none-any.whl", hash = "sha256:2995d866fb6ae3143421a6eb41e2257db5b5b929b58e1534be84b1ff25b1b528", size = 2814510, upload-time = "2026-02-13T22:49:02.05Z" }, +] + [[package]] name = "narwhals" version = "2.16.0" @@ -1760,6 +1769,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, ] +[[package]] +name = "nodeenv" +version = "1.9.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", size = 47437, upload-time = "2024-06-04T18:44:11.171Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314, upload-time = "2024-06-04T18:44:08.352Z" }, +] + [[package]] name = "notebook" version = "7.5.3" @@ -2298,11 +2316,11 @@ wheels = [ [[package]] name = "platformdirs" -version = "4.5.1" +version = "4.2.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f5/52/0763d1d976d5c262df53ddda8d8d4719eedf9594d046f117c25a27261a19/platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3", size = 20916, upload-time = "2024-05-15T03:18:23.372Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, + { url = "https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee", size = 18146, upload-time = "2024-05-15T03:18:21.209Z" }, ] [[package]] From 25b7e2c3ac50b527eb67b2f6bbb39d83822cac4e Mon Sep 17 00:00:00 2001 From: Carlos Alba Fajardo Date: Mon, 23 Feb 2026 09:39:24 -0500 Subject: [PATCH 6/6] Add mystmd dependency --- .gitignore | 7 + ...21-02Z-old-repository-update-assessment.md | 3611 ----------------- .../Benhabib_et_al_2019/.gitignore | 1 + .../Benhabib_et_al_2019_intro.ipynb | 30 + ...Benhabib_et_al_2019_prior-literature.ipynb | 63 + ...bib_et_al_2019_subsequent-literature.ipynb | 73 + .../Benhabib_et_al_2019_summary.ipynb | 152 + .../Benhabib_et_al_2019/index.md | 15 + .../Benhabib_et_al_2019/myst.yml | 13 + .../Benhabib_et_al_2019/references.bib | 180 + .../Benhabib_et_al_2019/self.bib | 10 + .../subsequent-literature.bib | 209 + uv.lock | 188 +- 13 files changed, 847 insertions(+), 3705 deletions(-) delete mode 100644 .specstory/history/2026-02-02_21-02Z-old-repository-update-assessment.md create mode 100644 models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/.gitignore create mode 100644 models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_intro.ipynb create mode 100644 models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_prior-literature.ipynb create mode 100644 models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_subsequent-literature.ipynb create mode 100644 models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_summary.ipynb create mode 100644 models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/index.md create mode 100644 models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/myst.yml create mode 100644 models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/references.bib create mode 100644 models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/self.bib create mode 100644 models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/subsequent-literature.bib diff --git a/.gitignore b/.gitignore index 89d6ff5f..76a59ec4 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,9 @@ instance/ # Sphinx documentation docs/_build/ +# MyST Markdown build output +_build/ + # PyBuilder target/ @@ -112,3 +115,7 @@ env-*/ # Mac .DS_Store + +# Cursor / SpecStory +.cursor* +.specstory*/ diff --git a/.specstory/history/2026-02-02_21-02Z-old-repository-update-assessment.md b/.specstory/history/2026-02-02_21-02Z-old-repository-update-assessment.md deleted file mode 100644 index 707cdc9c..00000000 --- a/.specstory/history/2026-02-02_21-02Z-old-repository-update-assessment.md +++ /dev/null @@ -1,3611 +0,0 @@ - - - - -# Old repository update assessment (2026-02-02 21:02Z) - -_**User**_ - -This repo has not been updated in a long time. - -Please examine its contents and determine whether and how it should be updated, with particular attention to whether the description of the environment suffices for all of the content to work. - ---- - -_**Agent (model default, mode Agent)**_ - - - - - ---- - - -
-Tool use: **list_dir_v2** - - -Parameters: - -```json -{ - "targetDirectory": "/Volumes/Sync/GitHub/econ-ark/ballpark" -} -``` -Result: - -```json -{ - "directoryTreeRoot": { - "absPath": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "childrenFiles": [ - { - "name": ".gitignore" - }, - { - "name": "README.md" - } - ], - "childrenWereProcessed": true - } -} -``` -Status: **completed** - - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/README.md - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/.gitignore - -
-
- ---- - - - - - ---- - - -
-Tool use: **glob_file_search** • Searched codebase "undefined" • **223** results in **1** directory - -Directory: **/Volumes/Sync/GitHub/econ-ark/ballpark** (223 files) - -| File | -|------| -| `.git/config` | -| `.specstory/.gitignore` | -| `.cursorindexingignore` | -| `.specstory/.project.json` | -| `.specstory/.what-is-this.md` | -| `tools/That-We-Would-Like-To-Add/Gauss-Hermite.md` | -| `tools/Already-Partway-In-Econ-ARK/blSolving/blSolving.ipynb` | -| `tools/Already-Partway-In-Econ-ARK/blSolving/SharedFunc3.py` | -| `tools/Already-Partway-In-Econ-ARK/blSolving.md` | -| `tools/Already-Partway-In-Econ-ARK/GanongNoelUI.md` | -| `tools.md` | -| `models/We-Would-Like-In-Econ-ARK/TaxingWomen/TaxingWomen.slides.html` | -| `models/We-Would-Like-In-Econ-ARK/TaxingWomen/TaxingWomen.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/SSJ_2021/Qingyuan_SSJ.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/Reiter_2009/WDu-Reiter 2009 Slides.slides.html` | -| `models/We-Would-Like-In-Econ-ARK/Ravn_Sterk_2021/Ravn_Sterk_2021.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/PopAgingMPtransmission/PopAgingMPtransmission.slides.html` | -| `models/We-Would-Like-In-Econ-ARK/PopAgingMPtransmission/PopAgingMPtransmission.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/OptimumDebt/README.md` | -| `models/We-Would-Like-In-Econ-ARK/OptimumDebt/OptimumDebt.slides.html` | -| `models/We-Would-Like-In-Econ-ARK/OptimumDebt/OptimumDebt.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/web2c/texmf.cnf` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/titlesec.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/tex4htMakeCFG.sh` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/tex4ht/svg-set-size-to-1p0.mk4` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/tex4ht/svg-math-and-subfigures.cfg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/tex4ht/svg-math-and-subfigures-README.md` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/tex4ht/pictureenv.4ht` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/snapshot.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/printvrb.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/makePostHandoutsStart.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/handoutShortcuts.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/handoutSetup.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/handoutBibMake.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/handout.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/handout.cls` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/econtexShortcuts.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/econtexSetup.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/econtexBibMake.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/econtex.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/econtex.cls` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/cvBibMake.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/bibMake.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/articleNoRefHead.cls` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/ReadMe.texmf` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/ls-R` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/bibtex/bst/unsrtnatTitlesFirst.bst` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/bibtex/bst/handout.bst` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/bibtex/bst/econtex.bst` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/econtexRoot.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/Resources/owner.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/Resources/PoweredByEconARK.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/Resources/Powered-by-Econ--ARK.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/Resources/.git-source-commit` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/Resources/.git-public-commit` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/OptimalTaxHeight.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/web2c/texmf.cnf` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/titlesec.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/tex4htMakeCFG.sh` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/tex4ht/svg-set-size-to-1p0.mk4` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/tex4ht/svg-math-and-subfigures.cfg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/tex4ht/svg-math-and-subfigures-README.md` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/tex4ht/pictureenv.4ht` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/snapshot.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/printvrb.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/makePostHandoutsStart.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/handoutShortcuts.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/handoutSetup.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/handoutBibMake.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/handout.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/handout.cls` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/econtexShortcuts.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/econtexSetup.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/econtexBibMake.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/econtex.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/econtex.cls` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/cvBibMake.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/bibMake.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/articleNoRefHead.cls` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/ReadMe.texmf` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/ls-R` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/bibtex/bst/unsrtnatTitlesFirst.bst` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/bibtex/bst/handout.bst` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/bibtex/bst/econtex.bst` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/onlyinsubfile2.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/onlyinsubfile.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/econtexRoot.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/econtexPaths.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Tables/econtexRoot.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Tables/Required.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Tables/Parameters.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Tables/LiqConstrScenarios.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Tables/Comparison.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Tables/Comparison-subfile.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Tables/Calibration.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Tables/All-Tables.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/README.md` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/econtexRoot.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/cRatTargetFig.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/cGroTargetFig.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/cGroTargetFig.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/cFuncsConverge.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/cFuncsConverge.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/cFuncBounds.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/cFuncBounds.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/SimRevolution.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/SimCDFsConverge.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/README.md` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/PFGICHoldsFHWCFailsRICFails.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/PFGICHoldsFHWCFailsRICFails.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/PFGIC-vs-RIC-vs-FHWC.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/PFGIC-vs-RIC-vs-FHWC-vs-FVAC.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/MPCLimits.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/MPCLimits.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/FVACnotGIC.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/FVACnotGIC.svg` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/All-Figures.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/veqn.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/tShkDef.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/supfn.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/mGrowthPF.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/README.md` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/PatPGroAdj.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/PatGAdj.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/PGroAdj.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/GIC.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/FVIC.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/FVC.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/FVAC.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/FGVAlt.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/FGV.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Equations/DBCparts.tex` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Comparison-subfile.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Calibration/README.md` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory.title` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory.sty` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory.bib` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory-Slides.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory-Slides.bib` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory-Self.bib` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory-NoAppendix.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory-NoAppendix.bib` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory-Appendix.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory-Appendix.bib` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxSolnMethTermFunc.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxSolnMethEndogGpts.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxSolnMethEndogGpts.bib` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxMPCLimits.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxLiqConstrAsLimit.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxLiqConstrAsLimit.bib` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxLiqConstr.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxLiqConstr.bib` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxEuclidian.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxConditionDiagrams_Mateo.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxConditionDiagrams.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxConcaveCFunc.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxConcaveCFunc.bib` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/ApndxCGroIsPGro.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/All.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/All-Tables.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/All-Figures.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/All-Appendices.pdftotext-nofirstline` | -| `models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/All-Appendices.bib` | -| `models/We-Would-Like-In-Econ-ARK/OpenHA/Shin_ARSS.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/MK3TagTax/MK3TagTax_Slides.slides.html` | -| `models/We-Would-Like-In-Econ-ARK/MK3TagTax/MK3TagTax_Slides.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/MK3TagTax/MK3TagTax - Syareza Tobing.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/Kumhof_et_al_2015/WDu-Kumhof_Ranciere_Winant_2015.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/KMVBoomBust/AcalinJ-Notes/Acalin_KMV_slides.slides.html` | -| `models/We-Would-Like-In-Econ-ARK/KMVBoomBust/AcalinJ-Notes/Acalin_KMV_slides.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/KMVBoomBust/AcalinJ-Notes/Acalin_KMV_RISE_final.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/HKSWealthDistribution/Acalin_HKS.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/HKMOHousingChannelMP/HKMOHousingChannelMP.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/HKMOHousingChannelMP/HKMOHousingChannelMP.html` | -| `models/We-Would-Like-In-Econ-ARK/Guerrieri_Lorenzoni2017/Guerrieri_Lorenzoni2017.slides.html` | -| `models/We-Would-Like-In-Econ-ARK/Guerrieri_Lorenzoni2017/Guerrieri_Lorenzoni2017.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_Slides.slides.html` | -| `models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_Slides.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/GKKOCWealthTax/GKKOC_summary.py` | -| `models/We-Would-Like-In-Econ-ARK/GKKOCWealthTax/GKKOC_summary.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/Fujiwara_Teranishi/KoduaNino_FujiwaraTeranishi2007_summary.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/BBL_summary.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/ARMonetaryPolicyHABC/ToramanSY_AlganRagot2009_Summary.ipynb` | -| `models/We-Would-Like-In-Econ-ARK/AHLifeCycleExpenditure/WangT-AHLifeCycleExpenditure.ipynb` | -| `models/We-Would-Like-In-Econ-ARK.md` | -| `models/We-Would-Like-In-Econ-ARK.ipynb` | -| `models.md` | -| `flymd.md` | -| `empirical/Results-That-Beg-For-A-Model/dpFamilyLaborAssets/WangTao_dpFamilyLaborAssets.ipynb` | -| `empirical/Results-That-Beg-For-A-Model.ipynb` | -| `empirical.md` | -| `binder/runtime.txt` | -| `binder/requirements.txt` | -| `binder/postBuild.bat` | -| `binder/postBuild` | -| `binder.md` | -| `README.md` | -| `.gitignore` | -| `.git/logs/refs/heads/master` | -| `.git/logs/HEAD` | -| `.git/refs/heads/master` | -| `.git/HEAD` | -| `.git/logs/refs/remotes/origin/HEAD` | -| `.git/refs/remotes/origin/HEAD` | -| `.git/packed-refs` | -| `.git/hooks/push-to-checkout.sample` | -| `.git/hooks/update.sample` | -| `.git/hooks/pre-push.sample` | -| `.git/hooks/pre-applypatch.sample` | -| `.git/hooks/pre-merge-commit.sample` | -| `.git/hooks/post-update.sample` | -| `.git/hooks/prepare-commit-msg.sample` | -| `.git/hooks/pre-receive.sample` | -| `.git/hooks/fsmonitor-watchman.sample` | -| `.git/hooks/applypatch-msg.sample` | -| `.git/hooks/pre-commit.sample` | -| `.git/hooks/sendemail-validate.sample` | -| `.git/hooks/pre-rebase.sample` | -| `.git/hooks/commit-msg.sample` | -| `.git/description` | -| `.git/info/exclude` | - -
-
- ---- - - -
-Tool use: **ripgrep_raw_search** - - -Parameters: - -```json -{ - "pattern": "models|empirical", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "caseInsensitive": false -} -``` -Result: - -```json -{ - "success": { - "pattern": "models|empirical", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "outputMode": "content", - "workspaceResults": { - "/Volumes/Sync/GitHub/econ-ark/ballpark": { - "content": { - "matches": [ - { - "file": "./tools/Already-Partway-In-Econ-ARK/blSolving/blSolving.ipynb", - "matches": [ - { - "lineNumber": 7, - "content": " \"# \\\"[Solving heterogeneous agent models in discrete time with many idiosyncratic states by perturbation methods](https://cepr.org/active/publications/discussion_papers/dp.php?dpno=13071)\\\"\\n\"," - }, - { - "lineNumber": 1558, - "content": " \"title\": \"Solving heterogeneous-agent models by projection and perturbation\"," - }, - { - "lineNumber": 1579, - "content": " \"title\": \"Solving heterogeneous agent models in discrete time with many idiosyncratic states by perturbation methods\"," - } - ] - }, - { - "file": "./tools/Already-Partway-In-Econ-ARK/blSolving.md", - "matches": [ - { - "lineNumber": 1, - "content": "# \"[Solving heterogeneous agent models in discrete time with many idiosyncratic states by perturbation methods](https://cepr.org/active/publications/discussion_papers/dp.php?dpno=13071)\"" - }, - { - "lineNumber": 5, - "content": "Heterogeneous Agent macro models." - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/TaxingWomen/TaxingWomen.ipynb", - "matches": [ - { - "lineNumber": 1283, - "content": " \"abstract\": \"I quantify the extent to which deterioration of bank balance sheets explains the large contraction in housing prices and consumption experienced by the U.S. during the last recession. I introduce a Banking Sector with balance sheet frictions into a model of long-term collateralized debt with risk of default. Credit supply is endogenously determined and depends on the capitalization of the entire banking sector. Mortgage spreads and endogenous down payments increase in periods when banks are poorly capitalized. I simulate an increase in the stock of housing and a negative income shock to match the decline in house prices between 2006-2009. The model generates changes in consumption, foreclosures and refinance rates similar to those observed in the U.S. between 2006 and 2009. Changes in financial intermediaries’ cost of funding explain, respectively, 38, 22 and 29 percent of the changes in housing prices, foreclosures and consumption generated by the model. These result [... omitted end of long line]" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/SSJ_2021/Qingyuan_SSJ.ipynb", - "matches": [ - { - "lineNumber": 23, - "content": " \"This paper proposes a fast, efficient algorithm to solve heterogeneous-agent (HA) models in GE with aggregate shocks. The algorithm consists of three steps:\\n\"," - }, - { - "lineNumber": 36, - "content": " \"<u>Restrictions</u>: Agents in the model can only interact via **limited set of aggregate variables**. SSJ doesn't apply to models where the behavior of HA depends on the anticipated future disctribution through the value function.\"" - }, - { - "lineNumber": 216, - "content": " \"Certainty equivalence implies that $d\\\\mathbf{K}$ is also the $M A(\\\\infty)$ representation in models with aggregate shocks:\\n\"," - }, - { - "lineNumber": 369, - "content": " \"1. Auclert, Adrien, et al. \\\"Using the sequence‐space Jacobian to solve and estimate heterogeneous‐agent models.\\\" Econometrica 89.5 (2021): 2375-2408.\\n\"," - }, - { - "lineNumber": 371, - "content": " \"3. Reiter, Michael. \\\"Solving heterogeneous-agent models by projection and perturbation.\\\" Journal of Economic Dynamics and Control 33.3 (2009): 649-665.\"" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/Reiter_2009/WDu-Reiter 2009 Slides.slides.html", - "matches": [ - { - "lineNumber": 14744, - "content": "<h2 id=\"References\">References<a class=\"anchor-link\" href=\"#References\">&#182;</a></h2><p>Reiter, Michael, 2009. \"Solving heterogeneous-agent models by projection and perturbation,\" Journal of Economic Dynamics and Control, Elsevier, vol. 33(3), pages 649-665, March.</p>" - }, - { - "lineNumber": 14745, - "content": "<p>Sims, C.A., 2001. Solving linear rational expectations models. Computational Economics 20(1–2),1–20.</p>" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/Ravn_Sterk_2021/Ravn_Sterk_2021.ipynb", - "matches": [ - { - "lineNumber": 21, - "content": " \"This paper studies a heterogeneous-agent New Keynesian (HANK) model incorporating Diamond-Mortensen-Pissarides search and matching (SAM) from an analytical point of view. Due to the SAM structure, the model features an endogenous idiosyncratic earnings risk, which is empirically plausible to be countercyclical, and consequently, it induces a precautionary savings motive that results in downward pressure on real interest rates during recessions. In this setting, \\n\"," - }, - { - "lineNumber": 251, - "content": " \"demand. This interaction is missing in NK models and in HANK models without\\n\"," - }, - { - "lineNumber": 261, - "content": " \"variables tend to be amplified, relative to the standard NK model, or to models with\\n\"," - }, - { - "lineNumber": 282, - "content": " \"* While the qualitative nature of empirically-plausible counter cyclical earnings risk has been clarified through analytical studies, numerical examination of how large the impact of this risk is is still awaited.\"" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimumDebt/README.md", - "matches": [ - { - "lineNumber": 3, - "content": "means papers or models that are closely related enough to be of interest to the kinds of people who are interested in the Econ-ARK." - }, - { - "lineNumber": 8, - "content": "1. Have serious structural models that produce interesting results" - }, - { - "lineNumber": 9, - "content": " * In the \"models\" directory" - }, - { - "lineNumber": 11, - "content": "1. Have strong empirical evidence that begs for a model" - }, - { - "lineNumber": 12, - "content": " * In the \"empirical\" directory" - }, - { - "lineNumber": 33, - "content": "Iskhakov, F., Jørgensen, T.H., Rust, J., Schjerning, B., others, 2017. The endogenous grid method for discrete-continuous dynamic choice models with (or without) taste shocks. Quantitative Economics 8, 317–365." - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimumDebt/OptimumDebt.slides.html", - "matches": [ - { - "lineNumber": 14417, - "content": "<li>It employs two models; <ul>" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimumDebt/OptimumDebt.ipynb", - "matches": [ - { - "lineNumber": 53, - "content": " \"* It employs two models; \\n\"," - }, - { - "lineNumber": 1243, - "content": " \"abstract\": \"I quantify the extent to which deterioration of bank balance sheets explains the large contraction in housing prices and consumption experienced by the U.S. during the last recession. I introduce a Banking Sector with balance sheet frictions into a model of long-term collateralized debt with risk of default. Credit supply is endogenously determined and depends on the capitalization of the entire banking sector. Mortgage spreads and endogenous down payments increase in periods when banks are poorly capitalized. I simulate an increase in the stock of housing and a negative income shock to match the decline in house prices between 2006-2009. The model generates changes in consumption, foreclosures and refinance rates similar to those observed in the U.S. between 2006 and 2009. Changes in financial intermediaries’ cost of funding explain, respectively, 38, 22 and 29 percent of the changes in housing prices, foreclosures and consumption generated by the model. These result [... omitted end of long line]" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory.pdftotext-nofirstline", - "matches": [ - { - "lineNumber": 10, - "content": "stock’ saving models, pairing each theoretical result with a quantitative exploration. After" - }, - { - "lineNumber": 16, - "content": "analytical results constitute a comprehensive toolkit for understanding buffer stock models." - }, - { - "lineNumber": 54, - "content": "In the presence of empirically realistic transitory and permanent shocks to income a la" - }, - { - "lineNumber": 59, - "content": "of such models have quantitative predictions that can match microeconomic evidence" - }, - { - "lineNumber": 62, - "content": "good approximations to limiting “true” mathematical solutions – but only for models" - }, - { - "lineNumber": 115, - "content": "general than models previously considered in the literature. The conditions required" - }, - { - "lineNumber": 120, - "content": "problem defines a contraction mapping. Finally, a related class of commonly-used models" - }, - { - "lineNumber": 231, - "content": "income, which a large empirical literature finds are quantitatively important in micro" - }, - { - "lineNumber": 252, - "content": "to reach zero.12 Finally, it differs from models found in Stokey et. al. (1989) because" - }, - { - "lineNumber": 2013, - "content": "incorporate a constant positive probability of death in their models, following Blanchard" - }, - { - "lineNumber": 2025, - "content": "saving models that have heretofore been observed in numerical solutions but not" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory-NoAppendix.pdftotext-nofirstline", - "matches": [ - { - "lineNumber": 10, - "content": "stock’ saving models, pairing each theoretical result with a quantitative exploration. After" - }, - { - "lineNumber": 16, - "content": "analytical results constitute a comprehensive toolkit for understanding buffer stock models." - }, - { - "lineNumber": 54, - "content": "In the presence of empirically realistic transitory and permanent shocks to income a la" - }, - { - "lineNumber": 59, - "content": "of such models have quantitative predictions that can match microeconomic evidence" - }, - { - "lineNumber": 62, - "content": "good approximations to limiting “true” mathematical solutions – but only for models" - }, - { - "lineNumber": 115, - "content": "general than models previously considered in the literature. The conditions required" - }, - { - "lineNumber": 120, - "content": "problem defines a contraction mapping. Finally, a related class of commonly-used models" - }, - { - "lineNumber": 231, - "content": "income, which a large empirical literature finds are quantitatively important in micro" - }, - { - "lineNumber": 252, - "content": "to reach zero.12 Finally, it differs from models found in Stokey et. al. (1989) because" - }, - { - "lineNumber": 2012, - "content": "incorporate a constant positive probability of death in their models, following Blanchard" - }, - { - "lineNumber": 2024, - "content": "saving models that have heretofore been observed in numerical solutions but not" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OpenHA/Shin_ARSS.ipynb", - "matches": [ - { - "lineNumber": 435, - "content": " \"Assume $\\\\sigma=1$, and consider an arbitrary first-order monetary policy shock $d\\\\mathbf{r}$. If $\\\\chi=2-\\\\alpha$, all aggregate quantities and prices are identical in heterogeneous and representativeagent models. Moreover, provided that $\\\\mathbf{M}>0$, for an accommodative shock $d \\\\mathbf{r} \\\\leq 0$,\\n\"," - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/MK3TagTax/MK3TagTax_Slides.ipynb", - "matches": [ - { - "lineNumber": 1489, - "content": " \"abstract\": \"I quantify the extent to which deterioration of bank balance sheets explains the large contraction in housing prices and consumption experienced by the U.S. during the last recession. I introduce a Banking Sector with balance sheet frictions into a model of long-term collateralized debt with risk of default. Credit supply is endogenously determined and depends on the capitalization of the entire banking sector. Mortgage spreads and endogenous down payments increase in periods when banks are poorly capitalized. I simulate an increase in the stock of housing and a negative income shock to match the decline in house prices between 2006-2009. The model generates changes in consumption, foreclosures and refinance rates similar to those observed in the U.S. between 2006 and 2009. Changes in financial intermediaries’ cost of funding explain, respectively, 38, 22 and 29 percent of the changes in housing prices, foreclosures and consumption generated by the model. These result [... omitted end of long line]" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_Slides.slides.html", - "matches": [ - { - "lineNumber": 13297, - "content": "<li><strong>empirical evidence (Coibion et al., 2012)</strong><ul>" - }, - { - "lineNumber": 13346, - "content": "<li><strong>Extention of an existing incomplete market general equilibrium models</strong> <ul>" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA_Slides.ipynb", - "matches": [ - { - "lineNumber": 79, - "content": " \" * **empirical evidence (Coibion et al., 2012)**\\n\"," - }, - { - "lineNumber": 133, - "content": " \"* **Extention of an existing incomplete market general equilibrium models** \\n\"," - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/GKNMonetaryPolicyHA/GKNMonetaryPolicyHA.ipynb", - "matches": [ - { - "lineNumber": 46, - "content": " \"* Extention of an existing incomplete market general equilibrium models (introduction of nominal frictions)\\n\"," - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/GKKOCWealthTax/GKKOC_summary.py", - "matches": [ - { - "lineNumber": 43, - "content": "# The recent empirical literature (e.g. Fagereng, Guiso, Malacrino and Pistaferri (2016a)) has found evidence that there is persistent heterogeneity on the risk-adjusted rates of return that households face on their assets. This is important because:" - }, - { - "lineNumber": 45, - "content": "# * The empirical distribution of wealth has a thick tail that is not easily matched by models without rate-of-return heterogeneity." - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/GKKOCWealthTax/GKKOC_summary.ipynb", - "matches": [ - { - "lineNumber": 43, - "content": " \"The recent empirical literature (e.g. Fagereng, Guiso, Malacrino and Pistaferri (2016a)) has found evidence that there is persistent heterogeneity on the risk-adjusted rates of return that households face on their assets. This is important because:\\n\"," - }, - { - "lineNumber": 45, - "content": " \"* The empirical distribution of wealth has a thick tail that is not easily matched by models without rate-of-return heterogeneity.\\n\"," - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/BBL_summary.ipynb", - "matches": [ - { - "lineNumber": 24, - "content": " \"- The model developed matches empirical data well, and counterfactuals provide insights into the relative importance of the above factors in driving the wealth accumulation and distribution in the US.\"" - }, - { - "lineNumber": 129, - "content": " \"Lastly, paper describes transitional dynamics of the wealth distribution within the confines of the model. In particular, paper conducted an analysis using the SCF 1962–1963 wealth distribution as a starting point, estimating model parameters to match with the 2007 SCF distribution and previously used transition matrices. The findings highlight a significant rise in wealth inequality during this period, with the top 1% share increasing from 24.2% to 33.6%. The updated estimates reveal that this surge in inequality can be traced through enhanced capital income risk and differential savings, resulting in a skewed wealth distribution that closely matches empirical data, especially at the higher end. However, this model overestimates social mobility across wealth brackets. \\n\"," - }, - { - "lineNumber": 141, - "content": " \"The authors of the paper developed a standard macroeconomic model to explore the distribution of wealth in the United States, with a specific focus on the distribution's tail. The model is notable for its ability to closely fit the observed data across the entire wealth spectrum and accurately capturing the social mobility trends. Through their analysis, the authors successfully identified three key factors contributing to wealth accumulation: skewed and persistent earnings distribution, differential saving and bequest rates across wealth levels, and capital income risk associated with entrepreneurship. Each factor plays a distinct and empirically validated role in shaping both the wealth distribution and mobility. The paper also delves into the transitional dynamics of wealth distribution, with preliminary findings suggesting rapid changes over time, indicating promising areas for future research.\"" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/ARMonetaryPolicyHABC/ToramanSY_AlganRagot2009_Summary.ipynb", - "matches": [ - { - "lineNumber": 14, - "content": " \"- The paper discusses the disappearance of the long-run neutrality of inflation on capital accumulation when heterogeneity with respect to borrowing constraints are considered.They introduce a rationale for a new channel in an incomplete market model through which they can explain the hump-shaped relationship between inflation and capital accumulation observed in empirical literature.\\n\"," - }, - { - "lineNumber": 166, - "content": " \"They further add that the presence of incomplete markets and borrowing constraints not only explains the non-neutrality of inflation, but they also have an intensifying effect on the other channels of inflation relative to the complete market models.\\n\"," - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK.ipynb", - "matches": [ - { - "lineNumber": 317, - "content": " \"* Study the theoretical response of consumption to house prices in quantitative heterogeneous agent models.\\n\"," - }, - { - "lineNumber": 323, - "content": " \" * Their rule-of-thumb formula measures the strength of the causal effect between house prices and consumption and how it changes with economic conditions or across models.\\n\"," - }, - { - "lineNumber": 326, - "content": " \"Heterogeneous agent equilibrium models with endogenous house prices -- Huo and Rios-Rull (2013) and Kaplan et al. (2016).\\n\"," - }, - { - "lineNumber": 364, - "content": " \" * Larger than PIH models.\\n\"," - }, - { - "lineNumber": 524, - "content": " \" * Responses indistinguishable from the empirical estimates.\\n\"," - }, - { - "lineNumber": 607, - "content": " \" * The source of balance sheet heterogeneity helps to account for the empirically observed link between leverage and HHs' heterogeneous consumption responses to wealth changes.\\n\"," - }, - { - "lineNumber": 772, - "content": " \"abstract\": \"The goal of this chapter is study how, and by how much household income, wealth and preference heterogeneity amplifies and propagates a macroeconomic shock. We focus on the U.S. Great Recession of 2007-2009 and proceed in two steps. First, using data from the Panel Study of Income Dynamics, we document the patterns of household income, consumption and wealth inequality before and during the Great Recession. We then investigate how households in different segments of the wealth distribution were affected by income declines, and how they changed their expenditures differentially during the aggregate downturn. Motivated by this evidence we study several variants of a standard heterogeneous household model with aggregate shocks and an endogenous cross-sectional wealth distribution. Our key model finding is that wealth inequality can significantly amplify the impact of an aggregate shock, but it does so if (and only if) the distribution features a sufficiently large fraction o [... omitted end of long line]" - } - ] - }, - { - "file": "./models.md", - "matches": [ - { - "lineNumber": 6, - "content": " * It contains brief summaries of some features of a set of interesting models" - }, - { - "lineNumber": 9, - "content": " * Contains slide presentations of the models, organized by the creator of the slides" - } - ] - }, - { - "file": "./flymd.md", - "matches": [ - { - "lineNumber": 3, - "content": "means papers or models that are closely related enough to be of interest to the kinds of people who are interested in the Econ-ARK." - }, - { - "lineNumber": 8, - "content": "1. Have serious structural models that produce interesting results" - }, - { - "lineNumber": 9, - "content": " * In the \"models\" directory" - }, - { - "lineNumber": 11, - "content": "1. Have strong empirical evidence that begs for a model" - }, - { - "lineNumber": 12, - "content": " * In the \"empirical\" directory" - }, - { - "lineNumber": 33, - "content": "Iskhakov, F., Jørgensen, T.H., Rust, J., Schjerning, B., others, 2017. The endogenous grid method for discrete-continuous dynamic choice models with (or without) taste shocks. Quantitative Economics 8, 317–365." - } - ] - }, - { - "file": "./empirical/Results-That-Beg-For-A-Model.ipynb", - "matches": [ - { - "lineNumber": 22, - "content": " \"* Main contribution is to provide a new set of empirical findings about the heterogeneous effects of monetary policy and use these results to assess different theoretical channels of monetary transmission.\\n\"," - }, - { - "lineNumber": 147, - "content": " \"* According to Mian and Sufi, the weight of the empirical evidence sugggests that house prices are a ***response*** to credit supply expansion rather than a ***cause***.\\n\"," - }, - { - "lineNumber": 165, - "content": " \"* Quantitative macroeconomic models that show how changes in credit affect house prices --- Favilukis et al. (2017), Justiniano et al. (2015), Landvoigt (2016).\\n\"," - }, - { - "lineNumber": 184, - "content": " \" * ***There is little theoretical or empirical research to help answer this question.***\\n\"," - } - ] - }, - { - "file": "./empirical.md", - "matches": [ - { - "lineNumber": 3, - "content": "The 'empirical' directory contains notes about some papers that Have strong empirical evidence that begs for a model" - } - ] - }, - { - "file": "./README.md", - "matches": [ - { - "lineNumber": 3, - "content": "means papers or models that are closely related enough to be of interest to the kinds of people who are interested in the Econ-ARK." - }, - { - "lineNumber": 8, - "content": "1. Have serious structural models that produce interesting results" - }, - { - "lineNumber": 9, - "content": " * In the \"models\" directory" - }, - { - "lineNumber": 11, - "content": "1. Have strong empirical evidence that begs for a model" - }, - { - "lineNumber": 12, - "content": " * In the \"empirical\" directory" - }, - { - "lineNumber": 33, - "content": "Iskhakov, F., Jørgensen, T.H., Rust, J., Schjerning, B., others, 2017. The endogenous grid method for discrete-continuous dynamic choice models with (or without) taste shocks. Quantitative Economics 8, 317–365." - } - ] - } - ], - "totalLines": 90, - "totalMatchedLines": 90 - } - } - } - } -} -``` -Status: **completed** - - -
-
- ---- - - - - - ---- - - -
-Tool use: **list_dir_v2** - - -Parameters: - -```json -{ - "targetDirectory": "/Volumes/Sync/GitHub/econ-ark/ballpark" -} -``` -Result: - -```json -{ - "directoryTreeRoot": { - "absPath": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "childrenFiles": [ - { - "name": ".gitignore" - }, - { - "name": "README.md" - } - ], - "childrenWereProcessed": true - } -} -``` -Status: **completed** - - -
-
- ---- - - -
-Tool use: **glob_file_search** • Searched codebase "undefined" • **1** result in **1** directory - -Directory: **/Volumes/Sync/GitHub/econ-ark/ballpark** (1 file) - -| File | -|------| -| `binder/requirements.txt` | - -
-
- ---- - - -
-Tool use: **glob_file_search** • Searched codebase "undefined" • **0** result in **1** directory - -Directory: **/Volumes/Sync/GitHub/econ-ark/ballpark** (0 file) - -
-
- ---- - - -
-Tool use: **list_dir_v2** - - -Parameters: - -```json -{ - "targetDirectory": "/Volumes/Sync/GitHub/econ-ark/ballpark/models" -} -``` -Result: - -```json -{ - "directoryTreeRoot": { - "absPath": "/Volumes/Sync/GitHub/econ-ark/ballpark/models", - "childrenWereProcessed": true - } -} -``` -Status: **completed** - - -
-
- ---- - - -
-Tool use: **list_dir_v2** - - -Parameters: - -```json -{ - "targetDirectory": "/Volumes/Sync/GitHub/econ-ark/ballpark/tools" -} -``` -Result: - -```json -{ - "directoryTreeRoot": { - "absPath": "/Volumes/Sync/GitHub/econ-ark/ballpark/tools", - "childrenWereProcessed": true - } -} -``` -Status: **completed** - - -
-
- ---- - - - - - ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/.cursorindexingignore - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/requirements.txt - -
-
- ---- - - -
-Tool use: **list_dir_v2** - - -Parameters: - -```json -{ - "targetDirectory": "/Volumes/Sync/GitHub/econ-ark/ballpark/binder" -} -``` -Result: - -```json -{ - "directoryTreeRoot": { - "absPath": "/Volumes/Sync/GitHub/econ-ark/ballpark/binder", - "childrenWereProcessed": true - } -} -``` -Status: **completed** - - -
-
- ---- - - -
-Tool use: **ripgrep_raw_search** - - -Parameters: - -```json -{ - "pattern": "import |from ", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "glob": "*.ipynb", - "outputMode": "content", - "caseInsensitive": false -} -``` -Result: - -```json -{ - "success": { - "pattern": "import |from ", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "outputMode": "content", - "workspaceResults": { - "/Volumes/Sync/GitHub/econ-ark/ballpark": { - "content": { - "matches": [ - { - "file": "./tools/Already-Partway-In-Econ-ARK/blSolving/blSolving.ipynb", - "matches": [ - { - "lineNumber": 10, - "content": " \"- Notebook created by Seungcheol Lee from slides by <cite data-cite=\\\"6202365/ECL3ZAR7\\\"></cite>\\n\"," - }, - { - "lineNumber": 19, - "content": " \"Bayer-Luetticke depart from the Reiter (2009) perturbation method and prodvide an accessible algorithm that can deal with high-dimensional heterogeneity. <cite data-cite=\\\"6202365/44QWDL5Y\\\"></cite>\\n\"," - }, - { - "lineNumber": 23, - "content": " \" * Extracts from the StE the important basis functions to represent individual policies (akin to image compression)\\n\"," - }, - { - "lineNumber": 103, - "content": " \" holds for optimal policy $h_t$ (which results from $v_{t+1}$ and $P_t$)\\n\"," - }, - { - "lineNumber": 124, - "content": " \"import os\\n\"," - }, - { - "lineNumber": 125, - "content": " \"import pickle\\n\"," - }, - { - "lineNumber": 182, - "content": " \" * Write fluctuations as differences from this reference frame\\n\"," - }, - { - "lineNumber": 183, - "content": " \" * Assume all coefficients of the DCT from the StE close to zero do not change after shock\\n\"," - }, - { - "lineNumber": 188, - "content": " \" * Use fixed Copula to calculate an approximate joint distribution from marginals\\n\"," - }, - { - "lineNumber": 204, - "content": " \"from __future__ import print_function\\n\"," - }, - { - "lineNumber": 205, - "content": " \"import sys \\n\"," - }, - { - "lineNumber": 208, - "content": " \"import numpy as np\\n\"," - }, - { - "lineNumber": 209, - "content": " \"from numpy.linalg import matrix_rank\\n\"," - }, - { - "lineNumber": 210, - "content": " \"import scipy as sc\\n\"," - }, - { - "lineNumber": 211, - "content": " \"from scipy.stats import norm \\n\"," - }, - { - "lineNumber": 212, - "content": " \"from scipy.interpolate import interp1d, interp2d, griddata, RegularGridInterpolator, interpn\\n\"," - }, - { - "lineNumber": 213, - "content": " \"import multiprocessing as mp\\n\"," - }, - { - "lineNumber": 214, - "content": " \"from multiprocessing import Pool, cpu_count, Process\\n\"," - }, - { - "lineNumber": 215, - "content": " \"from math import ceil\\n\"," - }, - { - "lineNumber": 216, - "content": " \"import math as mt\\n\"," - }, - { - "lineNumber": 217, - "content": " \"from scipy import sparse as sp\\n\"," - }, - { - "lineNumber": 218, - "content": " \"from scipy import linalg\\n\"," - }, - { - "lineNumber": 219, - "content": " \"from math import log, cos, pi, sqrt\\n\"," - }, - { - "lineNumber": 220, - "content": " \"import time\\n\"," - }, - { - "lineNumber": 221, - "content": " \"from SharedFunc3 import Transition, ExTransitions, GenWeight, MakeGridkm, Tauchen, Fastroot\\n\"," - }, - { - "lineNumber": 222, - "content": " \"import matplotlib.pyplot as plt\\n\"," - }, - { - "lineNumber": 223, - "content": " \"import matplotlib.patches as mpatches\\n\"," - }, - { - "lineNumber": 224, - "content": " \"import scipy.io\\n\"," - }, - { - "lineNumber": 225, - "content": " \"import scipy.fftpack as sf\"" - }, - { - "lineNumber": 234, - "content": " \" * Let $\\\\bar{\\\\Theta} = dct(\\\\bar{v})$ be the coefficients obtained from the DCT of the value function in StE\\n\"," - }, - { - "lineNumber": 235, - "content": " \" * Define an index set $\\\\mathop{I}$ that contains the x percent largest (i.e. most important) elements from $\\\\bar{\\\\Theta}$\\n\"," - }, - { - "lineNumber": 368, - "content": " \" * Yet, it allows to reduce the number of derivatives that need to be calculated from the outset.\\n\"," - }, - { - "lineNumber": 878, - "content": " \" # Calculate initial money position from the budget constraint,\\n\"," - }, - { - "lineNumber": 961, - "content": " \" # Use consumption at k'=0 from constrained problem, when m' is on grid\\n\"," - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/TaxingWomen/TaxingWomen.ipynb", - "matches": [ - { - "lineNumber": 334, - "content": " \"title\": \"Is housing the business cycle? Evidence from US cities\"," - }, - { - "lineNumber": 398, - "content": " \"abstract\": \"We present a model of credit cycles arising from diagnostic expectations—a belief formation mechanism based on Kahneman and Tversky's representativeness heuristic. Diagnostic expectations overweight future outcomes that become more likely in light of incoming data. The expectations formation rule is forward looking and depends on the underlying stochastic process, and thus is immune to the Lucas critique. Diagnostic expectations reconcile extrapolation and neglect of risk in a unified framework. In our model, credit spreads are excessively volatile, overreact to news, and are subject to predictable reversals. These dynamics can account for several features of credit cycles and macroeconomic volatility.\"," - }, - { - "lineNumber": 499, - "content": " \"abstract\": \"Shared Appreciation Mortgages (SAMs) feature mortgage payments that adjust with house prices. These mortgage contracts are designed to stave off home owner default by providing payment relief in the wake of a large house price shock. SAMs have been hailed as an innovative solution that could prevent the next foreclosure crisis, act as a work-out tool during a crisis, and alleviate fiscal pressure during a downturn. They have inspired Fintech companies to offer home equity contracts. However, the home owner's gains are the mortgage lender's losses. A general equilibrium model with financial intermediaries who channel savings from saver households to borrower households shows that indexation of mortgage payments to aggregate house prices increases financial fragility, reduces risk sharing, and leads to expensive financial sector bailouts. In contrast, indexation to local house prices reduces financial fragility and improves risk-sharing. The two types of indexation have [... omitted end of long line]" - }, - { - "lineNumber": 650, - "content": " \"abstract\": \"Of the components of GDP, residential investment offers by far the best early warning sign of an oncoming recession. Since World War II we have had eight recessions preceded by substantial problems in housing and consumer durables. Housing did not give an early warning of the Department of Defense Downturn after the Korean Armistice in 1953 or the Internet Comeuppance in 2001, nor should it have. By virtue of its prominence in our recessions, it makes sense for housing to play a prominent role in the conduct of monetary policy. A modified Taylor Rule would depend on a long-term measure of inflation having little to do with the phase in the cycle, and, in place of Taylor's output gap, housing starts and the change in housing starts, which together form the best forward-looking indicator of the cycle of which I am aware. This would create pre-emptive anti-inflation policy in the middle of the expansions when housing is not so sensitive to interest rates, making it less [... omitted end of long line]" - }, - { - "lineNumber": 759, - "content": " \"abstract\": \"This paper studies temporary policy incentives designed to address capital overhang by inducing asset demand from buyers in the private market. Using variation across local geographies in ex ante program exposure and a difference-in-differences design, we find that the First-Time Homebuyer Credit induced a cumulative increase in home sales of 397 to 546 thousand, or 7.8 to 10.7 percent, nationally. We find little evidence of a sharp reversal of the policy response; instead, demand comes from several years in the future. The program likely sped the process of reallocating homes from distressed sellers to high value buyers, which stabilized house prices. The response is concentrated in the existing home sales market, implying the stimulative effects of the program were less important than its role in accelerating reallocation.\"," - }, - { - "lineNumber": 931, - "content": " \"title\": \"Quantifying the Lasting Harm to the US Economy from the Financial Crisis\"," - }, - { - "lineNumber": 937, - "content": " \"abstract\": \"This paper looks for evidence of a bubble in U.S. housing prices. It analyzes quarterly state-level data over 1985-2002, focusing on the relationship between home prices and selected fundamental variables. Income per capita alone largely explains price changes in all but eight states; in the latter, large price movements are observed unrelated to the fundamentals. Results from a new survey of recent homebuyers in the Los Angeles, San Francisco, Boston, and Milwaukee metropolitan areas are reported. This survey replicates an almost identical 1988 survey and finds, as before, that buyers in most of these markets perceive little risk in their housing investment, have unrealistic expectations about future price increases, and hold economically implausible beliefs about home price behavior—findings consistent with a bubble. Prices in such markets could stall or decline, but only if such declines are simultaneous or spread to other markets are significant effects on the nat [... omitted end of long line]" - }, - { - "lineNumber": 960, - "content": " \"abstract\": \"There has been, in recent years, a renewed interest in and a growing recognition of the role played by uncertainty shocks in driving fluctuations in the economy and in asset markets. We create new text-based indicators of both general economic and policy specific uncertainty from New York Times and use them first, to chart changes in the level of uncertainty in the US for the period 1985–2007, second, to determine the role of policy in these swings, and, third to assess their impact on the economy, equity markets, and business cycles. Overall, our results indicate that uncertainty shocks – both general and policy related – depress the level of economic activity, significantly increase stock market volatility, and decrease market returns.\"," - }, - { - "lineNumber": 995, - "content": " \"abstract\": \"Residential foreclosures in the United States have been rising very rapidly since 2006. In the second quarter of 2007, the share of outstanding mortgages in some stage of foreclosure stood at 1.4 percent, near historic highs and up from less than 1 percent a year earlier. The number of mortgages entering the foreclosure process reached an all-time high in mid-2007, suggesting that the foreclosure surge is likely to get worse before it gets better. ; The foreclosure surge was created by a perfect storm of events. First, in recent years the share of subprime mortgage originations increased substantially. Second, foreclosure rates for adjustable-rate mortgages (ARMs) have increased considerably, especially for subprime ARMs. This increase is largely due to rising short-term interest rates and to payment resets for many nontraditional mortgages. Finally, high loan-to-value originations in recent years, coupled with stagnant or falling home prices, have left many people wi [... omitted end of long line]" - }, - { - "lineNumber": 1166, - "content": " \"abstract\": \"This paper extends the benchmark New-Keynesian model with a representative agent and rational expectations by introducing two key frictions: (1) agent heterogeneity with incomplete markets, uninsurable idiosyncratic risk, and occasionally-binding borrowing constraints; and (2) bounded rationality in the form of level-k thinking. Compared to the benchmark model, we show that the interaction of these two frictions leads to a powerful mitigation of the effects of monetary policy, which is much more pronounced at long horizons, and offers a potential rationalization of the “forward guidance puzzle”. Each of these frictions, in isolation, would lead to no or much smaller departures from the benchmark model. We conclude that the interaction of bounded rationality and market frictions improves the ability of the model to account for the effects of monetary policy.\"," - }, - { - "lineNumber": 1310, - "content": " \"abstract\": \"We revisit La Porta’s (1996) finding that returns on stocks with the most optimistic analyst long term earnings growth forecasts are substantially lower than those for stocks with the most pessimistic forecasts. We document that this finding still holds, and present several further facts about the joint dynamics of fundamentals, expectations, and returns for these portfolios. We explain these facts using a new model of belief formation based on a portable formalization of the representativeness heuristic. In this model, analysts forecast future fundamentals from the history of earnings growth, but they over-react to news by exaggerating the probability of states that have become objectively more likely. Intuitively, fast earnings growth predicts future Googles but not as many as analysts believe. We test predictions that distinguish this mechanism from both Bayesian learning and adaptive expectations, and find supportive evidence. A calibration of the model offers a s [... omitted end of long line]" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/SSJ_2021/Qingyuan_SSJ.ipynb", - "matches": [ - { - "lineNumber": 13, - "content": " \"(Materials borrow heavily from the authors' slides)\\n\"," - }, - { - "lineNumber": 50, - "content": " \"### Block: Mapping from sequence of inputs to sequence of outputs\"" - }, - { - "lineNumber": 116, - "content": " \"Combining the three \\\"blocks\\\" from the previous subsection, we can obtain the following DAG:\\n\"," - }, - { - "lineNumber": 261, - "content": " \"5. compute $\\\\mathcal{J}$ from $\\\\mathcal{J}_{t, s} \\\\equiv\\\\left(C_{t}^{s}-C\\\\right) / \\\\epsilon$\\n\"," - }, - { - "lineNumber": 311, - "content": " \"We can recover $\\\\mathcal{J}$ from $\\\\mathcal{F}$ by adding elements from top left diagonal. <br />\\n\"," - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/Ravn_Sterk_2021/Ravn_Sterk_2021.ipynb", - "matches": [ - { - "lineNumber": 21, - "content": " \"This paper studies a heterogeneous-agent New Keynesian (HANK) model incorporating Diamond-Mortensen-Pissarides search and matching (SAM) from an analytical point of view. Due to the SAM structure, the model features an endogenous idiosyncratic earnings risk, which is empirically plausible to be countercyclical, and consequently, it induces a precautionary savings motive that results in downward pressure on real interest rates during recessions. In this setting, \\n\"," - }, - { - "lineNumber": 89, - "content": " \"(3) Non-working capitalists ($z_i=0, n_{i,s}=0, \\\\tau_i=0$) living on home production and capital income from investing in firm equity:\\n\"," - }, - { - "lineNumber": 155, - "content": " \"The Euler equation in this model differs from the one in the standard complete-markets model in that we have the **endogenous earnings risk wedge** (the term in squared brackets) that features the precautionary savings motive. \\n\"," - }, - { - "lineNumber": 159, - "content": " \"Studying a 10% sample of all US working-age males, *Guvenen, Ozkan, and Song (2014)* show that the countercyclicality of earnings risk derives from increased left-skewness in recessions (i.e. higher likelihood of large earnings losses and lower likelihood of large gains) rather than from a countercylical variance.\\n\"," - }, - { - "lineNumber": 235, - "content": " \"* In a HANK-SAM economy, inflation may increase in response to a positive productivity shock when the earnings risk wedge is sufficiently countercyclical because the demand stimulus from higher productivity may be so strong that the lower marginal cost effect is dominated.\\n\"," - }, - { - "lineNumber": 250, - "content": " \"earnings risk, which derives from an interaction between goods demand and labor\\n\"," - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/PopAgingMPtransmission/PopAgingMPtransmission.ipynb", - "matches": [ - { - "lineNumber": 76, - "content": " \"* **$S_t$ - uncertainty from aggregate state variables**\\n\"," - }, - { - "lineNumber": 77, - "content": " \"* **$y_{j a t}$ - uncertainty from idiosyncratic labor income**\"" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimumDebt/OptimumDebt.ipynb", - "matches": [ - { - "lineNumber": 294, - "content": " \"title\": \"Is housing the business cycle? Evidence from US cities\"," - }, - { - "lineNumber": 358, - "content": " \"abstract\": \"We present a model of credit cycles arising from diagnostic expectations—a belief formation mechanism based on Kahneman and Tversky's representativeness heuristic. Diagnostic expectations overweight future outcomes that become more likely in light of incoming data. The expectations formation rule is forward looking and depends on the underlying stochastic process, and thus is immune to the Lucas critique. Diagnostic expectations reconcile extrapolation and neglect of risk in a unified framework. In our model, credit spreads are excessively volatile, overreact to news, and are subject to predictable reversals. These dynamics can account for several features of credit cycles and macroeconomic volatility.\"," - }, - { - "lineNumber": 459, - "content": " \"abstract\": \"Shared Appreciation Mortgages (SAMs) feature mortgage payments that adjust with house prices. These mortgage contracts are designed to stave off home owner default by providing payment relief in the wake of a large house price shock. SAMs have been hailed as an innovative solution that could prevent the next foreclosure crisis, act as a work-out tool during a crisis, and alleviate fiscal pressure during a downturn. They have inspired Fintech companies to offer home equity contracts. However, the home owner's gains are the mortgage lender's losses. A general equilibrium model with financial intermediaries who channel savings from saver households to borrower households shows that indexation of mortgage payments to aggregate house prices increases financial fragility, reduces risk sharing, and leads to expensive financial sector bailouts. In contrast, indexation to local house prices reduces financial fragility and improves risk-sharing. The two types of indexation have [... omitted end of long line]" - }, - { - "lineNumber": 610, - "content": " \"abstract\": \"Of the components of GDP, residential investment offers by far the best early warning sign of an oncoming recession. Since World War II we have had eight recessions preceded by substantial problems in housing and consumer durables. Housing did not give an early warning of the Department of Defense Downturn after the Korean Armistice in 1953 or the Internet Comeuppance in 2001, nor should it have. By virtue of its prominence in our recessions, it makes sense for housing to play a prominent role in the conduct of monetary policy. A modified Taylor Rule would depend on a long-term measure of inflation having little to do with the phase in the cycle, and, in place of Taylor's output gap, housing starts and the change in housing starts, which together form the best forward-looking indicator of the cycle of which I am aware. This would create pre-emptive anti-inflation policy in the middle of the expansions when housing is not so sensitive to interest rates, making it less [... omitted end of long line]" - }, - { - "lineNumber": 719, - "content": " \"abstract\": \"This paper studies temporary policy incentives designed to address capital overhang by inducing asset demand from buyers in the private market. Using variation across local geographies in ex ante program exposure and a difference-in-differences design, we find that the First-Time Homebuyer Credit induced a cumulative increase in home sales of 397 to 546 thousand, or 7.8 to 10.7 percent, nationally. We find little evidence of a sharp reversal of the policy response; instead, demand comes from several years in the future. The program likely sped the process of reallocating homes from distressed sellers to high value buyers, which stabilized house prices. The response is concentrated in the existing home sales market, implying the stimulative effects of the program were less important than its role in accelerating reallocation.\"," - }, - { - "lineNumber": 891, - "content": " \"title\": \"Quantifying the Lasting Harm to the US Economy from the Financial Crisis\"," - }, - { - "lineNumber": 897, - "content": " \"abstract\": \"This paper looks for evidence of a bubble in U.S. housing prices. It analyzes quarterly state-level data over 1985-2002, focusing on the relationship between home prices and selected fundamental variables. Income per capita alone largely explains price changes in all but eight states; in the latter, large price movements are observed unrelated to the fundamentals. Results from a new survey of recent homebuyers in the Los Angeles, San Francisco, Boston, and Milwaukee metropolitan areas are reported. This survey replicates an almost identical 1988 survey and finds, as before, that buyers in most of these markets perceive little risk in their housing investment, have unrealistic expectations about future price increases, and hold economically implausible beliefs about home price behavior—findings consistent with a bubble. Prices in such markets could stall or decline, but only if such declines are simultaneous or spread to other markets are significant effects on the nat [... omitted end of long line]" - }, - { - "lineNumber": 920, - "content": " \"abstract\": \"There has been, in recent years, a renewed interest in and a growing recognition of the role played by uncertainty shocks in driving fluctuations in the economy and in asset markets. We create new text-based indicators of both general economic and policy specific uncertainty from New York Times and use them first, to chart changes in the level of uncertainty in the US for the period 1985–2007, second, to determine the role of policy in these swings, and, third to assess their impact on the economy, equity markets, and business cycles. Overall, our results indicate that uncertainty shocks – both general and policy related – depress the level of economic activity, significantly increase stock market volatility, and decrease market returns.\"," - }, - { - "lineNumber": 955, - "content": " \"abstract\": \"Residential foreclosures in the United States have been rising very rapidly since 2006. In the second quarter of 2007, the share of outstanding mortgages in some stage of foreclosure stood at 1.4 percent, near historic highs and up from less than 1 percent a year earlier. The number of mortgages entering the foreclosure process reached an all-time high in mid-2007, suggesting that the foreclosure surge is likely to get worse before it gets better. ; The foreclosure surge was created by a perfect storm of events. First, in recent years the share of subprime mortgage originations increased substantially. Second, foreclosure rates for adjustable-rate mortgages (ARMs) have increased considerably, especially for subprime ARMs. This increase is largely due to rising short-term interest rates and to payment resets for many nontraditional mortgages. Finally, high loan-to-value originations in recent years, coupled with stagnant or falling home prices, have left many people wi [... omitted end of long line]" - }, - { - "lineNumber": 1126, - "content": " \"abstract\": \"This paper extends the benchmark New-Keynesian model with a representative agent and rational expectations by introducing two key frictions: (1) agent heterogeneity with incomplete markets, uninsurable idiosyncratic risk, and occasionally-binding borrowing constraints; and (2) bounded rationality in the form of level-k thinking. Compared to the benchmark model, we show that the interaction of these two frictions leads to a powerful mitigation of the effects of monetary policy, which is much more pronounced at long horizons, and offers a potential rationalization of the “forward guidance puzzle”. Each of these frictions, in isolation, would lead to no or much smaller departures from the benchmark model. We conclude that the interaction of bounded rationality and market frictions improves the ability of the model to account for the effects of monetary policy.\"," - }, - { - "lineNumber": 1270, - "content": " \"abstract\": \"We revisit La Porta’s (1996) finding that returns on stocks with the most optimistic analyst long term earnings growth forecasts are substantially lower than those for stocks with the most pessimistic forecasts. We document that this finding still holds, and present several further facts about the joint dynamics of fundamentals, expectations, and returns for these portfolios. We explain these facts using a new model of belief formation based on a portable formalization of the representativeness heuristic. In this model, analysts forecast future fundamentals from the history of earnings growth, but they over-react to news by exaggerating the probability of states that have become objectively more likely. Intuitively, fast earnings growth predicts future Googles but not as many as analysts believe. We test predictions that distinguish this mechanism from both Bayesian learning and adaptive expectations, and find supportive evidence. A calibration of the model offers a s [... omitted end of long line]" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OpenHA/Shin_ARSS.ipynb", - "matches": [ - { - "lineNumber": 162, - "content": " \"Home goods are produced from domestic labor with constant returns,\\n\"," - }, - { - "lineNumber": 188, - "content": " \"A continuum of monopolistically competitive firms produce home goods with elasticity of substitution between goods from various firms $\\\\epsilon$.\\n\"," - }, - { - "lineNumber": 210, - "content": " \"Expected returns from different assets are equal, resulting in following real UIP condition.\\n\"," - }, - { - "lineNumber": 304, - "content": " \"the linearized deviations of consumption from steady state consumption over output $dC_t$ and output $dY_t$ in response to the\\n\"," - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/MK3TagTax/MK3TagTax_Slides.ipynb", - "matches": [ - { - "lineNumber": 125, - "content": " \"The economy is populated by a continuum of households consisting of a male (m) and female (f) member with the same age and a total of J overlapping generation. Each household obtains utility from consumption and leisure. They are endowned with a unit of productive time which they split between work $h^m$ and leisure $h^f$. Households members also face an exogenous probability of losing their jobs denoted by $\\\\lambda^m$ and $\\\\lambda^f$ for male and female members respectively. Working members also pay a fixed cost $FC_j$ to work every period, which is expressed in utility terms and depends on age. Nonemployed members also have to pay an extra cost to work, which is rationalized as a search cost $sc_j$\"" - }, - { - "lineNumber": 540, - "content": " \"title\": \"Is housing the business cycle? Evidence from US cities\"," - }, - { - "lineNumber": 604, - "content": " \"abstract\": \"We present a model of credit cycles arising from diagnostic expectations—a belief formation mechanism based on Kahneman and Tversky's representativeness heuristic. Diagnostic expectations overweight future outcomes that become more likely in light of incoming data. The expectations formation rule is forward looking and depends on the underlying stochastic process, and thus is immune to the Lucas critique. Diagnostic expectations reconcile extrapolation and neglect of risk in a unified framework. In our model, credit spreads are excessively volatile, overreact to news, and are subject to predictable reversals. These dynamics can account for several features of credit cycles and macroeconomic volatility.\"," - }, - { - "lineNumber": 705, - "content": " \"abstract\": \"Shared Appreciation Mortgages (SAMs) feature mortgage payments that adjust with house prices. These mortgage contracts are designed to stave off home owner default by providing payment relief in the wake of a large house price shock. SAMs have been hailed as an innovative solution that could prevent the next foreclosure crisis, act as a work-out tool during a crisis, and alleviate fiscal pressure during a downturn. They have inspired Fintech companies to offer home equity contracts. However, the home owner's gains are the mortgage lender's losses. A general equilibrium model with financial intermediaries who channel savings from saver households to borrower households shows that indexation of mortgage payments to aggregate house prices increases financial fragility, reduces risk sharing, and leads to expensive financial sector bailouts. In contrast, indexation to local house prices reduces financial fragility and improves risk-sharing. The two types of indexation have [... omitted end of long line]" - }, - { - "lineNumber": 856, - "content": " \"abstract\": \"Of the components of GDP, residential investment offers by far the best early warning sign of an oncoming recession. Since World War II we have had eight recessions preceded by substantial problems in housing and consumer durables. Housing did not give an early warning of the Department of Defense Downturn after the Korean Armistice in 1953 or the Internet Comeuppance in 2001, nor should it have. By virtue of its prominence in our recessions, it makes sense for housing to play a prominent role in the conduct of monetary policy. A modified Taylor Rule would depend on a long-term measure of inflation having little to do with the phase in the cycle, and, in place of Taylor's output gap, housing starts and the change in housing starts, which together form the best forward-looking indicator of the cycle of which I am aware. This would create pre-emptive anti-inflation policy in the middle of the expansions when housing is not so sensitive to interest rates, making it less [... omitted end of long line]" - }, - { - "lineNumber": 965, - "content": " \"abstract\": \"This paper studies temporary policy incentives designed to address capital overhang by inducing asset demand from buyers in the private market. Using variation across local geographies in ex ante program exposure and a difference-in-differences design, we find that the First-Time Homebuyer Credit induced a cumulative increase in home sales of 397 to 546 thousand, or 7.8 to 10.7 percent, nationally. We find little evidence of a sharp reversal of the policy response; instead, demand comes from several years in the future. The program likely sped the process of reallocating homes from distressed sellers to high value buyers, which stabilized house prices. The response is concentrated in the existing home sales market, implying the stimulative effects of the program were less important than its role in accelerating reallocation.\"," - }, - { - "lineNumber": 1137, - "content": " \"title\": \"Quantifying the Lasting Harm to the US Economy from the Financial Crisis\"," - } - ] - } - ], - "totalLines": 80, - "totalMatchedLines": 80 - } - } - } - } -} -``` -Status: **completed** - - -
-
- ---- - - - - - ---- - - -
-Tool use: **glob_file_search** • Searched codebase "undefined" • **2** results in **1** directory - -Directory: **/Volumes/Sync/GitHub/econ-ark/ballpark** (2 files) - -| File | -|------| -| `empirical/Results-That-Beg-For-A-Model/dpFamilyLaborAssets/WangTao_dpFamilyLaborAssets.ipynb` | -| `empirical/Results-That-Beg-For-A-Model.ipynb` | - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/tools/Already-Partway-In-Econ-ARK/blSolving/blSolving.ipynb - -
-
- ---- - - -
-Tool use: **ripgrep_raw_search** - - -Parameters: - -```json -{ - "pattern": "HARK|econ-ark|econark", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "caseInsensitive": false -} -``` -Result: - -```json -{ - "success": { - "pattern": "HARK|econ-ark|econark", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "outputMode": "content", - "workspaceResults": { - "/Volumes/Sync/GitHub/econ-ark/ballpark": { - "content": { - "matches": [ - { - "file": "./tools/That-We-Would-Like-To-Add/Gauss-Hermite.md", - "matches": [ - { - "lineNumber": 3, - "content": "The default method for discretizing the lognormal distributon in HARK is to construct and equiprobable set of bins. This has two advantages over other methods:" - } - ] - }, - { - "file": "./tools/Already-Partway-In-Econ-ARK/blSolving.md", - "matches": [ - { - "lineNumber": 7, - "content": "At this writing (2019-04-06), python code for solving the model is [on the \"BayerLuetticke\" branch](https://github.com/econ-ark/HARK/tree/BayerLuetticke/HARK/BayerLuetticke) of HARK." - }, - { - "lineNumber": 9, - "content": "For current status, see the [README.md](https://github.com/econ-ark/HARK/tree/BayerLuetticke/HARK/BayerLuetticke/README.md) there." - } - ] - }, - { - "file": "./tools/Already-Partway-In-Econ-ARK/GanongNoelUI.md", - "matches": [ - { - "lineNumber": 4, - "content": "This paper is already instantiated in a [REMARK](https://github.com/econ-ark/REMARK/master/blob/REMARKs/GanongNoelUI.md)." - }, - { - "lineNumber": 7, - "content": "in HARK. For example, there is a naive hyperbolic discounting tool. " - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimumDebt/README.md", - "matches": [ - { - "lineNumber": 16, - "content": " * The [REMARK](https://github.com/econ-ark/REMARK) repo " - }, - { - "lineNumber": 18, - "content": " * The [DemARK](https://github.com/econ-ark/DemARK) repo" - }, - { - "lineNumber": 27, - "content": " * `from HARK.DCEGM import *`" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/handoutShortcuts.sty", - "matches": [ - { - "lineNumber": 166, - "content": "\\providecommand{\\HARKcore}{\\texttt{HARKcore}}" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/texmf-local/tex/latex/econtexShortcuts.sty", - "matches": [ - { - "lineNumber": 165, - "content": "\\providecommand{\\HARKcore}{\\texttt{HARKcore}}" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/Resources/owner.tex", - "matches": [ - { - "lineNumber": 3, - "content": "% econ-ark is the Econ-ARK/REMARK version" - }, - { - "lineNumber": 5, - "content": "\\providecommand{\\owner}{econ-ark}" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/OptimalTaxHeight.tex", - "matches": [ - { - "lineNumber": 28, - "content": " \\href{https://econ-ark.org}{\\includegraphics{\\ResourcesDir/PoweredByEconARK}}" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/handoutShortcuts.sty", - "matches": [ - { - "lineNumber": 166, - "content": "\\providecommand{\\HARKcore}{\\texttt{HARKcore}}" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/texmf-local/tex/latex/econtexShortcuts.sty", - "matches": [ - { - "lineNumber": 165, - "content": "\\providecommand{\\HARKcore}{\\texttt{HARKcore}}" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/Figures/README.md", - "matches": [ - { - "lineNumber": 1, - "content": "# Figures for the paper can be generated using either the HARK toolkit and ipython, " - }, - { - "lineNumber": 4, - "content": "## Python and HARK" - }, - { - "lineNumber": 9, - "content": "See [Econ-ARK/HARK](https://hark.readthedocs.io/en/latest/readme.html#Installing-HARK) for instructions for installing the " - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory.pdftotext-nofirstline", - "matches": [ - { - "lineNumber": 36, - "content": "https://econ-ark.org/materials/BufferStockTheory?dashboard" - }, - { - "lineNumber": 37, - "content": "https://econ-ark.github.io/BufferStockTheory/BufferStockTheory.pdf" - }, - { - "lineNumber": 38, - "content": "https://econ-ark.github.io/BufferStockTheory/BufferStockTheory-Slides.pdf" - }, - { - "lineNumber": 39, - "content": "https://econ-ark.github.io/BufferStockTheory" - }, - { - "lineNumber": 40, - "content": "https://econ-ark.github.io/BufferStockTheory#Appendices" - }, - { - "lineNumber": 41, - "content": "https://econ-ark.github.io/BufferStockTheory/LaTeX/BufferStockTheory-Self.bib" - }, - { - "lineNumber": 42, - "content": "https://github.com/econ-ark/BufferStockTheory" - }, - { - "lineNumber": 44, - "content": "The dashboard will launch a live interactive Jupyter Notebook that uses the Econ-ARK/HARK" - }, - { - "lineNumber": 51, - "content": "All figures and numerical results can be automatically reproduced using the Econ-ARK/HARK toolkit, which can" - }, - { - "lineNumber": 3792, - "content": "HARK: Open Source Tools for Computational Economics,” in Proceedings of the 17th" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimalTaxHeight/LaTeX/BufferStockTheory-NoAppendix.pdftotext-nofirstline", - "matches": [ - { - "lineNumber": 36, - "content": "https://econ-ark.org/materials/BufferStockTheory?dashboard" - }, - { - "lineNumber": 37, - "content": "https://econ-ark.github.io/BufferStockTheory/BufferStockTheory.pdf" - }, - { - "lineNumber": 38, - "content": "https://econ-ark.github.io/BufferStockTheory/BufferStockTheory-Slides.pdf" - }, - { - "lineNumber": 39, - "content": "https://econ-ark.github.io/BufferStockTheory" - }, - { - "lineNumber": 40, - "content": "https://econ-ark.github.io/BufferStockTheory#Appendices" - }, - { - "lineNumber": 41, - "content": "https://econ-ark.github.io/BufferStockTheory/LaTeX/BufferStockTheory-Self.bib" - }, - { - "lineNumber": 42, - "content": "https://github.com/econ-ark/BufferStockTheory" - }, - { - "lineNumber": 44, - "content": "The dashboard will launch a live interactive Jupyter Notebook that uses the Econ-ARK/HARK" - }, - { - "lineNumber": 51, - "content": "All figures and numerical results can be automatically reproduced using the Econ-ARK/HARK toolkit, which can" - }, - { - "lineNumber": 2201, - "content": "HARK: Open Source Tools for Computational Economics,” in Proceedings of the 17th" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/AHLifeCycleExpenditure/WangT-AHLifeCycleExpenditure.ipynb", - "matches": [ - { - "lineNumber": 73, - "content": " \"### How is it related to and can be implemented in HARK?\\n\"," - }, - { - "lineNumber": 75, - "content": " \"- The existing toolkit of HARK solves life-cycle model of consumption choices with separable utility. \\n\"," - }, - { - "lineNumber": 76, - "content": " \"- In order to implement this paper's idea, labor supply decision and non-seperable utility needs to be added to the existing toolkit, which is in line with HARK team's agenda\\n\"," - } - ] - }, - { - "file": "./models.md", - "matches": [ - { - "lineNumber": 3, - "content": "There are many that we would like to have implemented using the HARK; this directory contains a very incomplete list. " - }, - { - "lineNumber": 5, - "content": "1. There is a notebook [We-Would-Like-In-HARK.ipynb](https://github.com/econ-ark/ballpark/blob/master/Models-We-Would-Like-In-HARK.ipynb)" - }, - { - "lineNumber": 7, - "content": "1. There is a directory [We-Would-Like-In-HARK](https://github.com/econ-ark/ballpark/blob/master/Models-We-Would-Like-In-HARK)" - }, - { - "lineNumber": 10, - "content": "1. There is a directory [Already-Partway-In-Econ-ARK](https://github.com/econ-ark/ballpark/blob/master/Models-We-Would-Like-In-HARK)" - } - ] - }, - { - "file": "./flymd.md", - "matches": [ - { - "lineNumber": 16, - "content": " * The [REMARK](https://github.com/econ-ark/REMARK) repo " - }, - { - "lineNumber": 18, - "content": " * The [DemARK](https://github.com/econ-ark/DemARK) repofLyMd-mAkEr" - }, - { - "lineNumber": 27, - "content": " * `from HARK.DCEGM import *`" - } - ] - }, - { - "file": "./empirical.md", - "matches": [ - { - "lineNumber": 5, - "content": "The objective: Have someone construct a model using HARK that speaks to the results" - } - ] - }, - { - "file": "./binder/requirements.txt", - "matches": [ - { - "lineNumber": 7, - "content": "econ-ark" - } - ] - }, - { - "file": "./binder/postBuild", - "matches": [ - { - "lineNumber": 8, - "content": "cm.update('cite2c', {'zotero':{\"user_id\": \"5043554\",\"username\": \"econ-ark\",\"access_token\": \"XZpH9NsoAZmDMmjLKiy8xMXX\"}})" - } - ] - }, - { - "file": "./README.md", - "matches": [ - { - "lineNumber": 16, - "content": " * The [REMARK](https://github.com/econ-ark/REMARK) repo " - }, - { - "lineNumber": 18, - "content": " * The [DemARK](https://github.com/econ-ark/DemARK) repo" - }, - { - "lineNumber": 27, - "content": " * `from HARK.DCEGM import *`" - } - ] - } - ], - "totalLines": 54, - "totalMatchedLines": 54 - } - } - } - } -} -``` -Status: **completed** - - -
-
- ---- - - -
- Tool use: **web_search** • Searched web `undefined` • **1** results - -| Title | URL | Chunk | -|-------|-----|-------| -| Web search results for query: econ-ark HARK Python package PyPI 2024 | | Links:
1. [Econ-ARK documentation – HARK #](https://docs.econ-ark.org/index.html)
2. [econ-ark 0.17.0](https://pypi.org/project/econ-ark/0.17.0/)
3. [Search code, repositories, users, issues, pull requests...](https://github.com/econ-ark)
4. [HARK installation guide — HARK latest documentation](https://docs.econ-ark.org/docs/guides/installation.html)
5. [Search code, repositories, users, issues, pull requests...](https://github.com/econ-ark/HARK)

# HARK (econ-ark) Python Package Summary

**HARK** (Heterogeneous Agents Resources & toolKit) is a Python toolkit for structural modeling of economic choices by optimizing and non-optimizing heterogeneous agents.[1]

## Latest Version
Version 0.17.0 was released on January 5, 2026.[2] The package requires Python ≥3.10 and supports Python 3.10, 3.11, 3.12, and 3.13.[2]

## Installation
HARK is available on PyPI and can be installed via pip: `pip install econ-ark`[4]

## Key Details
- **License:** Apache-2.0[2]
- **Repository:** GitHub at econ-ark/HARK with 371 stars and 205 forks[5]
- **Maintainers:** Multiple contributors including EconArk, mgerring, mnwhite, MridulS, and sbenthall[2]
- **Documentation:** Available at docs.econ-ark.org[1]
- **Fiscal Sponsorship:** NumFOCUS[2]

## Use Cases
The toolkit is intended for computational researchers and software developers building economic models. It targets developers in financial/insurance industries and the science/research community.[2] | - -
-
- ---- - - - - - ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/postBuild - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/tools/Already-Partway-In-Econ-ARK/blSolving/SharedFunc3.py - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/empirical/Results-That-Beg-For-A-Model.ipynb - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/models.md - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/tools.md - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/empirical.md - -
-
- ---- - - - - - ---- - - -
-Tool use: **glob_file_search** • Searched codebase "undefined" • **1** result in **1** directory - -Directory: **/Volumes/Sync/GitHub/econ-ark/ballpark** (1 file) - -| File | -|------| -| `binder.md` | - -
-
- ---- - - -
-Tool use: **ripgrep_raw_search** - - -Parameters: - -```json -{ - "pattern": "We-Would-Like-In-HARK|Models-We-Would-Like", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "caseInsensitive": false -} -``` -Result: - -```json -{ - "success": { - "pattern": "We-Would-Like-In-HARK|Models-We-Would-Like", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "outputMode": "content", - "workspaceResults": { - "/Volumes/Sync/GitHub/econ-ark/ballpark": { - "content": { - "matches": [ - { - "file": "./models.md", - "matches": [ - { - "lineNumber": 5, - "content": "1. There is a notebook [We-Would-Like-In-HARK.ipynb](https://github.com/econ-ark/ballpark/blob/master/Models-We-Would-Like-In-HARK.ipynb)" - }, - { - "lineNumber": 7, - "content": "1. There is a directory [We-Would-Like-In-HARK](https://github.com/econ-ark/ballpark/blob/master/Models-We-Would-Like-In-HARK)" - }, - { - "lineNumber": 10, - "content": "1. There is a directory [Already-Partway-In-Econ-ARK](https://github.com/econ-ark/ballpark/blob/master/Models-We-Would-Like-In-HARK)" - } - ] - } - ], - "totalLines": 3, - "totalMatchedLines": 3 - } - } - } - } -} -``` -Status: **completed** - - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/models/We-Would-Like-In-Econ-ARK.ipynb - -
-
- ---- - - -
-Tool use: **web_fetch** - - -Parameters: - -```json -{ - "url": "https://pypi.org/pypi/econ-ark/json" -} -``` -Result: - -```json -{ - "url": "https://pypi.org/pypi/econ-ark/json", - "markdown": "{\"info\":{\"author\":null,\"author_email\":\"Econ-ARK team \",\"bugtrack_url\":null,\"classifiers\":[\"Development Status :: 3 - Alpha\",\"Environment :: Console\",\"Intended Audience :: Developers\",\"Intended Audience :: Financial and Insurance Industry\",\"Intended Audience :: Science/Research\",\"Natural Language :: English\",\"Operating System :: OS Independent\",\"Programming Language :: Python :: 3\",\"Programming Language :: Python :: 3.10\",\"Programming Language :: Python :: 3.11\",\"Programming Language :: Python :: 3.12\",\"Programming Language :: Python :: 3.13\",\"Topic :: Other/Nonlisted Topic\",\"Topic :: Scientific/Engineering\",\"Topic :: Scientific/Engineering :: Mathematics\"],\"description\":\" \\n \\n \\n \\n \\n \\n\\n[![Anaconda Cloud](https://anaconda.org/conda-forge/econ-ark/badges/version.svg?style=flat)](https://anaconda.org/conda-forge/econ-ark)\\n[![PyPi](https://img.shields.io/pypi/v/econ-ark.png?style=flat)](https://pypi.org/project/econ-ark/)\\n[![Documentation Status](https://readthedocs.org/projects/hark/badge/?style=flat&version=latest)](https://docs.econ-ark.org/?badge=latest)\\n[![Code Coverage](./docs/images/coverage.svg)](https://remote-unzip.deno.dev/econ-ark/HARK/main)\\n[![GitHub Good First Issues](https://img.shields.io/github/issues/econ-ark/HARK/good%20first%20issue.svg)](https://github.com/econ-ark/HARK/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)\\n[![DOI](https://zenodo.org/badge/50448254.svg)](https://zenodo.org/badge/latestdoi/50448254)\\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\\n[![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org/)\\n[![Donate](https://img.shields.io/badge/donate-$2-brightgreen.svg)](https://numfocus.org/donate-to-econ-ark)\\n[![Actions Status](https://github.com/econ-ark/hark/workflows/HARK%20build%20on%20MacOS%2C%20Ubuntu%20and%20Windows/badge.svg)](https://github.com/econ-ark/hark/actions)\\n[![badge](https://img.shields.io/badge/HARK-DemARK-579ACA.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAABZCAMAAABi1XidAAAB8lBMVEX///9XmsrmZYH1olJXmsr1olJXmsrmZYH1olJXmsr1olJXmsrmZYH1olL1olJXmsr1olJXmsrmZYH1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olJXmsrmZYH1olL1olL0nFf1olJXmsrmZYH1olJXmsq8dZb1olJXmsrmZYH1olJXmspXmspXmsr1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olLeaIVXmsrmZYH1olL1olL1olJXmsrmZYH1olLna31Xmsr1olJXmsr1olJXmsrmZYH1olLqoVr1olJXmsr1olJXmsrmZYH1olL1olKkfaPobXvviGabgadXmsqThKuofKHmZ4Dobnr1olJXmsr1olJXmspXmsr1olJXmsrfZ4TuhWn1olL1olJXmsqBi7X1olJXmspZmslbmMhbmsdemsVfl8ZgmsNim8Jpk8F0m7R4m7F5nLB6jbh7jbiDirOEibOGnKaMhq+PnaCVg6qWg6qegKaff6WhnpKofKGtnomxeZy3noG6dZi+n3vCcpPDcpPGn3bLb4/Mb47UbIrVa4rYoGjdaIbeaIXhoWHmZYHobXvpcHjqdHXreHLroVrsfG/uhGnuh2bwj2Hxk17yl1vzmljzm1j0nlX1olL3AJXWAAAAbXRSTlMAEBAQHx8gICAuLjAwMDw9PUBAQEpQUFBXV1hgYGBkcHBwcXl8gICAgoiIkJCQlJicnJ2goKCmqK+wsLC4usDAwMjP0NDQ1NbW3Nzg4ODi5+3v8PDw8/T09PX29vb39/f5+fr7+/z8/Pz9/v7+zczCxgAABC5JREFUeAHN1ul3k0UUBvCb1CTVpmpaitAGSLSpSuKCLWpbTKNJFGlcSMAFF63iUmRccNG6gLbuxkXU66JAUef/9LSpmXnyLr3T5AO/rzl5zj137p136BISy44fKJXuGN/d19PUfYeO67Znqtf2KH33Id1psXoFdW30sPZ1sMvs2D060AHqws4FHeJojLZqnw53cmfvg+XR8mC0OEjuxrXEkX5ydeVJLVIlV0e10PXk5k7dYeHu7Cj1j+49uKg7uLU61tGLw1lq27ugQYlclHC4bgv7VQ+TAyj5Zc/UjsPvs1sd5cWryWObtvWT2EPa4rtnWW3JkpjggEpbOsPr7F7EyNewtpBIslA7p43HCsnwooXTEc3UmPmCNn5lrqTJxy6nRmcavGZVt/3Da2pD5NHvsOHJCrdc1G2r3DITpU7yic7w/7Rxnjc0kt5GC4djiv2Sz3Fb2iEZg41/ddsFDoyuYrIkmFehz0HR2thPgQqMyQYb2OtB0WxsZ3BeG3+wpRb1vzl2UYBog8FfGhttFKjtAclnZYrRo9ryG9uG/FZQU4AEg8ZE9LjGMzTmqKXPLnlWVnIlQQTvxJf8ip7VgjZjyVPrjw1te5otM7RmP7xm+sK2Gv9I8Gi++BRbEkR9EBw8zRUcKxwp73xkaLiqQb+kGduJTNHG72zcW9LoJgqQxpP3/Tj//c3yB0tqzaml05/+orHLksVO+95kX7/7qgJvnjlrfr2Ggsyx0eoy9uPzN5SPd86aXggOsEKW2Prz7du3VID3/tzs/sSRs2w7ovVHKtjrX2pd7ZMlTxAYfBAL9jiDwfLkq55Tm7ifhMlTGPyCAs7RFRhn47JnlcB9RM5T97ASuZXIcVNuUDIndpDbdsfrqsOppeXl5Y+XVKdjFCTh+zGaVuj0d9zy05PPK3QzBamxdwtTCrzyg/2Rvf2EstUjordGwa/kx9mSJLr8mLLtCW8HHGJc2R5hS219IiF6PnTusOqcMl57gm0Z8kanKMAQg0qSyuZfn7zItsbGyO9QlnxY0eCuD1XL2ys/MsrQhltE7Ug0uFOzufJFE2PxBo/YAx8XPPdDwWN0MrDRYIZF0mSMKCNHgaIVFoBbNoLJ7tEQDKxGF0kcLQimojCZopv0OkNOyWCCg9XMVAi7ARJzQdM2QUh0gmBozjc3Skg6dSBRqDGYSUOu66Zg+I2fNZs/M3/f/Grl/XnyF1Gw3VKCez0PN5IUfFLqvgUN4C0qNqYs5YhPL+aVZYDE4IpUk57oSFnJm4FyCqqOE0jhY2SMyLFoo56zyo6becOS5UVDdj7Vih0zp+tcMhwRpBeLyqtIjlJKAIZSbI8SGSF3k0pA3mR5tHuwPFoa7N7reoq2bqCsAk1HqCu5uvI1n6JuRXI+S1Mco54YmYTwcn6Aeic+kssXi8XpXC4V3t7/ADuTNKaQJdScAAAAAElFTkSuQmCC)](https://mybinder.org/v2/gh/econ-ark/DemARK/main?filepath=notebooks)\\n[![badge](https://img.shields.io/badge/HARK-examples-579ACA.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAABZCAMAAABi1XidAAAB8lBMVEX///9XmsrmZYH1olJXmsr1olJXmsrmZYH1olJXmsr1olJXmsrmZYH1olL1olJXmsr1olJXmsrmZYH1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olJXmsrmZYH1olL1olL0nFf1olJXmsrmZYH1olJXmsq8dZb1olJXmsrmZYH1olJXmspXmspXmsr1olL1olJXmsrmZYH1olJXmsr1olL1olJXmsrmZYH1olL1olLeaIVXmsrmZYH1olL1olL1olJXmsrmZYH1olLna31Xmsr1olJXmsr1olJXmsrmZYH1olLqoVr1olJXmsr1olJXmsrmZYH1olL1olKkfaPobXvviGabgadXmsqThKuofKHmZ4Dobnr1olJXmsr1olJXmspXmsr1olJXmsrfZ4TuhWn1olL1olJXmsqBi7X1olJXmspZmslbmMhbmsdemsVfl8ZgmsNim8Jpk8F0m7R4m7F5nLB6jbh7jbiDirOEibOGnKaMhq+PnaCVg6qWg6qegKaff6WhnpKofKGtnomxeZy3noG6dZi+n3vCcpPDcpPGn3bLb4/Mb47UbIrVa4rYoGjdaIbeaIXhoWHmZYHobXvpcHjqdHXreHLroVrsfG/uhGnuh2bwj2Hxk17yl1vzmljzm1j0nlX1olL3AJXWAAAAbXRSTlMAEBAQHx8gICAuLjAwMDw9PUBAQEpQUFBXV1hgYGBkcHBwcXl8gICAgoiIkJCQlJicnJ2goKCmqK+wsLC4usDAwMjP0NDQ1NbW3Nzg4ODi5+3v8PDw8/T09PX29vb39/f5+fr7+/z8/Pz9/v7+zczCxgAABC5JREFUeAHN1ul3k0UUBvCb1CTVpmpaitAGSLSpSuKCLWpbTKNJFGlcSMAFF63iUmRccNG6gLbuxkXU66JAUef/9LSpmXnyLr3T5AO/rzl5zj137p136BISy44fKJXuGN/d19PUfYeO67Znqtf2KH33Id1psXoFdW30sPZ1sMvs2D060AHqws4FHeJojLZqnw53cmfvg+XR8mC0OEjuxrXEkX5ydeVJLVIlV0e10PXk5k7dYeHu7Cj1j+49uKg7uLU61tGLw1lq27ugQYlclHC4bgv7VQ+TAyj5Zc/UjsPvs1sd5cWryWObtvWT2EPa4rtnWW3JkpjggEpbOsPr7F7EyNewtpBIslA7p43HCsnwooXTEc3UmPmCNn5lrqTJxy6nRmcavGZVt/3Da2pD5NHvsOHJCrdc1G2r3DITpU7yic7w/7Rxnjc0kt5GC4djiv2Sz3Fb2iEZg41/ddsFDoyuYrIkmFehz0HR2thPgQqMyQYb2OtB0WxsZ3BeG3+wpRb1vzl2UYBog8FfGhttFKjtAclnZYrRo9ryG9uG/FZQU4AEg8ZE9LjGMzTmqKXPLnlWVnIlQQTvxJf8ip7VgjZjyVPrjw1te5otM7RmP7xm+sK2Gv9I8Gi++BRbEkR9EBw8zRUcKxwp73xkaLiqQb+kGduJTNHG72zcW9LoJgqQxpP3/Tj//c3yB0tqzaml05/+orHLksVO+95kX7/7qgJvnjlrfr2Ggsyx0eoy9uPzN5SPd86aXggOsEKW2Prz7du3VID3/tzs/sSRs2w7ovVHKtjrX2pd7ZMlTxAYfBAL9jiDwfLkq55Tm7ifhMlTGPyCAs7RFRhn47JnlcB9RM5T97ASuZXIcVNuUDIndpDbdsfrqsOppeXl5Y+XVKdjFCTh+zGaVuj0d9zy05PPK3QzBamxdwtTCrzyg/2Rvf2EstUjordGwa/kx9mSJLr8mLLtCW8HHGJc2R5hS219IiF6PnTusOqcMl57gm0Z8kanKMAQg0qSyuZfn7zItsbGyO9QlnxY0eCuD1XL2ys/MsrQhltE7Ug0uFOzufJFE2PxBo/YAx8XPPdDwWN0MrDRYIZF0mSMKCNHgaIVFoBbNoLJ7tEQDKxGF0kcLQimojCZopv0OkNOyWCCg9XMVAi7ARJzQdM2QUh0gmBozjc3Skg6dSBRqDGYSUOu66Zg+I2fNZs/M3/f/Grl/XnyF1Gw3VKCez0PN5IUfFLqvgUN4C0qNqYs5YhPL+aVZYDE4IpUk57oSFnJm4FyCqqOE0jhY2SMyLFoo56zyo6becOS5UVDdj7Vih0zp+tcMhwRpBeLyqtIjlJKAIZSbI8SGSF3k0pA3mR5tHuwPFoa7N7reoq2bqCsAk1HqCu5uvI1n6JuRXI+S1Mco54YmYTwcn6Aeic+kssXi8XpXC4V3t7/ADuTNKaQJdScAAAAAElFTkSuQmCC)](https://mybinder.org/v2/gh/econ-ark/HARK/main?filepath=examples)\\n\\n \\n\\n \\n\\n# Heterogeneous Agents Resources and toolKit (HARK)\\n\\nHARK is a toolkit for the structural modeling of economic choices of optimizing and non-optimizing heterogeneous agents. For more information on using HARK, see the [Econ-ARK Website](https://econ-ark.org).\\n\\nThe Econ-ARK project is fiscally sponsored by [NumFOCUS](https://numfocus.org/). Consider making a [tax-deductible donation](https://numfocus.org/donate-to-econ-ark) to help the project pay for developer time, professional services, travel, workshops, and a variety of other needs.\\n\\n \\n \\n \\n \\n \\n \\n\\n**This project is bound by a [Code of Conduct](/.github/CODE_OF_CONDUCT.md).**\\n\\n# Questions/Comments/Help\\n\\nWe have a [Gitter](https://gitter.im) Econ-ARK [community](https://gitter.im/econ-ark/community).\\n\\n# Table of Contents\\n\\n- [Install](#install)\\n- [Usage](#usage)\\n- [Citation](#citation)\\n- [Support](#support)\\n- [Release Types](#release-types)\\n- [Documentation](#Documentation)\\n- [Introduction](#introduction)\\n - [For Students: A Gentle Introduction to Hark](#for-students-a-gentle-introduction-to-hark)\\n - [For Economists: Structural Modeling with Hark](#for-economists-structural-modeling-with-hark)\\n - [For Computational Economics Developers](#for-computational-economics-developers)\\n- [Contributing to HARK](#contributing-to-hark)\\n- [Disclaimer](#disclaimer)\\n\\n## Install\\n\\nInstall from [Anaconda Cloud](https://docs.anaconda.com/anaconda/install/) by running:\\n\\n`conda install -c conda-forge econ-ark`\\n\\nInstall from [PyPi](https://pypi.org/) by running:\\n\\n`pip install econ-ark`\\n\\nOnce HARK is installed, you can copy its example notebooks into a local working directory of your choice from within a Python environment:\\n\\n```python\\nfrom HARK import install_examples\\n\\ninstall_examples()\\n```\\n\\nFollow the simple prompts to make an examples subdirectory inside the directory you specify. We recommend starting with /examples/Gentle-Intro/Gentle-Intro-to-HARK.ipynb.\\n\\n## Usage\\n\\nWe start with almost the simplest possible consumption model: A consumer with CRRA utility\\n\\n \\n \\n \\n\\nhas perfect foresight about everything except the (stochastic) date of death.\\n\\nThe agent's problem can be written in [Bellman form](https://en.wikipedia.org/wiki/Bellman_equation) as:\\n\\n \\n \\n \\n\\n \\n\\nTo model the above problem, start by importing the `PerfForesightConsumerType` model from the appropriate `HARK` module then create an agent instance using the appropriate parameters:\\n\\n```python\\nfrom HARK.models import PerfForesightConsumerType\\n\\n# Create an instance of a Perfect Foresight agent with otherwise default parameters\\nPFexample = PerfForesightConsumerType(cycles=0)\\n```\\nWith `cycles=0`, the default parameters yield a single period cycle that repeats forever.\\n\\nOnce the model is created, ask the the agent to solve the problem with its `solve()` method:\\n\\n```python\\n# Tell the agent to solve the problem\\nPFexample.solve()\\n```\\n\\nSolving the problem populates the agent's `solution` list attribute with solutions to each period of the problem. In the case of an infinite horizon model, there is just one element in the list, at **index-zero**.\\n\\nYou can retrieve the solution's consumption function from the `cFunc` attribute:\\n\\n```python\\n# Retrieve the consumption function of the solution\\nPFexample.solution[0].cFunc\\n```\\n\\nOr you can retrieve the solved value for human wealth normalized by permanent income from the solution's `.hNrm` attribute:\\n\\n```python\\n# Retrieve the solved value for human wealth normalized by permanent income\\nPFexample.solution[0].hNrm\\n```\\n\\nFor a detailed explanation of the above example please see the demo notebook [_A Gentle Introduction to HARK_](https://docs.econ-ark.org/examples/Gentle-Intro/Gentle-Intro-To-HARK.html).\\n\\nFor more examples please visit the [examples](https://docs.econ-ark.org/docs/overview/index.html) section of the [documentation](https://docs.econ-ark.org/index.html), or the [econ-ark/DemARK](https://github.com/econ-ark/DemARK) repository.\\n\\nThe examples can also be copied to a local working directory for you to run and investigate; see the Install section above.\\n\\n## Citation\\n\\nIf using Econ-ARK in your work or research please [cite our Digital Object Identifier](https://doi.org/10.5281/zenodo.1332015) or copy the BibTex below.\\n\\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1332015.svg)](https://doi.org/10.5281/zenodo.1332015)\\n\\n[1] Carroll, Christopher D, Palmer, Nathan, White, Matthew N., Kazil, Jacqueline, Low, David C, & Kaufman, Alexander. (2017, October 3). _econ-ark/HARK_\\n\\n**BibText**\\n\\n```\\n@InProceedings{carroll_et_al-proc-scipy-2018,\\n author = { {C}hristopher {D}. {C}arroll and {A}lexander {M}. {K}aufman and {J}acqueline {L}. {K}azil and {N}athan {M}. {P}almer and {M}atthew {N}. {W}hite },\\n title = { {T}he {E}con-{A}{R}{K} and {H}{A}{R}{K}: {O}pen {S}ource {T}ools for {C}omputational {E}conomics },\\n booktitle = { {P}roceedings of the 17th {P}ython in {S}cience {C}onference },\\n pages = { 25 - 30 },\\n year = { 2018 },\\n editor = { {F}atih {A}kici and {D}avid {L}ippa and {D}illon {N}iederhut and {M} {P}acer },\\n doi = { 10.25080/Majora-4af1f417-004 }\\n}\\n```\\n\\nFor more on acknowledging Econ-ARK [visit our website](https://econ-ark.org/acknowledging).\\n\\n## Support\\n\\nLooking for help? Please open a [GitHub issue](https://github.com/econ-ark/HARK/issues/new) or reach out to us through the gitter [community](https://gitter.im/econ-ark/community).\\n\\n## Release Types\\n\\n- **Current**: Under active development. Code for the Current release is in the branch for its major version number (for example, v0.10.x).\\n- **Development**: Under active development. Code for the Current release is in the development.\\n\\nCurrent releases follow [Semantic Versioning](https://semver.org/). For more information please see the [Release documentation](https://github.com/econ-ark/OverARK/wiki/Release-Management).\\n\\n## Documentation\\n\\nDocumentation for the latest release is at [docs.econ-ark.org](https://docs.econ-ark.org/).\\n\\n## Introduction\\n\\n### For Students: A Gentle Introduction to HARK\\n\\nMost of what economists have done so far with 'big data' has been like what Kepler did with astronomical data: Organizing the data, and finding patterns and regularities and interconnections.\\n\\nAn alternative approach called 'structural modeling' aims to do, for economic data, what Newton did for astronomical data: Provide a deep and rigorous mathematical (or computational) framework that distills the essence of the underlying behavior that produces the 'big data.'\\n\\nThe notebook [_A Gentle Introduction to HARK_](https://mybinder.org/v2/gh/econ-ark/DemARK/main?filepath=notebooks/Gentle-Intro-To-HARK-PerfForesightCRRA.ipynb) details how you can easily utilize our toolkit for structural modeling. Starting with a simple [Perfect Foresight Model](https://en.wikipedia.org/wiki/Rational_expectations) we solve an agent problem, then experiment with adding [income shocks]() and changing constructed attributes.\\n\\n### For Economists: Structural Modeling with HARK\\n\\nDissatisfaction with the ability of Representative Agent models to answer important questions raised by the Great Recession has led to a strong movement in the macroeconomics literature toward 'Heterogeneous Agent' models, in which microeconomic agents (consumers; firms) solve a structural problem calibrated to match microeconomic data; aggregate outcomes are derived by explicitly simulating the equilibrium behavior of populations solving such models.\\n\\nThe same kinds of modeling techniques are also gaining popularity among microeconomists, in areas ranging from labor economics to industrial organization. In both macroeconomics and structural micro, the chief barrier to the wide adoption of these techniques has been that programming a structural model has, until now, required a great deal of specialized knowledge and custom software development.\\n\\nHARK provides a robust, well-designed, open-source toolkit for building such models much more efficiently than has been possible in the past.\\n\\nOur [_DCEGM Upper Envelope_](https://mybinder.org/v2/gh/econ-ark/DemARK/main?filepath=notebooks%2FDCEGM-Upper-Envelope.ipynb) notebook illustrates using HARK to replicate the [Iskhakov, Jørgensen, Rust, and Schjerning paper](https://onlinelibrary.wiley.com/doi/abs/10.3982/QE643) for solving the discrete-continuous retirement saving problem.\\n\\nThe notebook [_Making Structural Estimates From Empirical Results_](https://mybinder.org/v2/gh/econ-ark/DemARK/main?filepath=notebooks%2FStructural-Estimates-From-Empirical-MPCs-Fagereng-et-al.ipynb) is another demonstration of using HARK to conduct a quick structural estimation based on Table 9 of [_MPC Heterogeneity and Household Balance Sheets_ by Fagereng, Holm, and Natvik](https://www.ssb.no/en/forskning/discussion-papers/_attachment/286054?_ts=158af859c98).\\n\\n### For Computational Economics Developers\\n\\nHARK provides a modular and extensible open-source toolkit for solving heterogeneous-agent partial-and general-equilibrium structural models. The code for such models has always been handcrafted, idiosyncratic, poorly documented, and sometimes not generously shared from leading researchers to outsiders. The result being that it can take years for a new researcher to become proficient. By building an integrated system from the bottom up using object-oriented programming techniques and other tools, we aim to provide a platform that will become a focal point for people using such models.\\n\\nHARK is written in Python, making significant use of libraries such as numpy and scipy which offer a wide array of mathematical and statistical functions and tools. Our modules are generally categorized into Tools (mathematical functions and techniques), Models (particular economic models and solvers) and Applications (use of tools to simulate an economic phenomenon).\\n\\nFor more information on how you can create your own Models or use Tools and Model to create Applications please see the [documentation](https://docs.econ-ark.org/docs/guides/quick_start.html#for-other-developers-of-software-for-computational-economics)\\n\\n### Contributing to HARK\\n\\n**We want contributing to Econ-ARK to be fun, enjoyable, and educational for anyone, and everyone.**\\n\\nContributions go far beyond pull requests and commits. Although we love giving you the opportunity to put your stamp on HARK, we are also thrilled to receive a variety of other contributions including:\\n\\n- Documentation updates, enhancements, designs, or bugfixes\\n- Spelling or grammar fixes\\n- REAME.md corrections or redesigns\\n- Adding unit, or functional tests\\n- [Triaging GitHub issues](https://github.com/econ-ark/HARK/issues?utf8=%E2%9C%93&q=label%3A%E2%80%9DTag%3A+Triage+Needed%E2%80%9D+) -- e.g. pointing out the relevant files, checking for reproducibility\\n- [Searching for #econ-ark on twitter](https://twitter.com/search?q=econ-ark) and helping someone else who needs help\\n- Answering questions from StackOverflow tagged with [econ-ark](https://stackoverflow.com/questions/tagged/econ-ark)\\n- Teaching others how to contribute to HARK\\n- Blogging, speaking about, or creating tutorials about HARK\\n- Helping others in our mailing list\\n\\nIf you are worried or don’t know how to start, you can always reach out to us through the gitter [community](https://gitter.im/econ-ark/community)(#tsc-technical-steering-committee) or simply submit [an issue](https://github.com/econ-ark/HARK/issues/new) and a member can help give you guidance!\\n\\nTo install for development see the [Quickstart Guide](https://docs.econ-ark.org/docs/guides/installation.html).\\n\\nFor more information on contributing to HARK please see [the contributing guide](https://docs.econ-ark.org/docs/guides/contributing.html).\\nThis is the guide that collaborators follow in maintaining the Econ-ARK project.\\n\\n## Disclaimer\\n\\nThis is a beta version of HARK. The code has not been extensively tested as it should be. We hope it is useful, but there are absolutely no guarantees (expressed or implied) that it works or will do what you want. Use at your own risk. And please, let us know if you find bugs by posting an issue to [the GitHub page](https://github.com/econ-ark/HARK)!\\n\\n## Detailed Explanations and Examples\\n\\nTo help users understand the purpose and features of the repository, we have provided detailed explanations and examples in various sections of the documentation. Here are some key resources:\\n\\n- [Overview and Examples](https://docs.econ-ark.org/docs/overview/index.html): This section provides an introduction to HARK and includes various examples to help users understand how to use the toolkit.\\n- [Guides](https://docs.econ-ark.org/docs/guides/index.html): This section includes guides on installation, quick start, and contributing to HARK.\\n- [Reference](https://docs.econ-ark.org/docs/reference/index.html): This section provides detailed explanations and examples of the various tools and models available in the repository.\\n\\nFor more information and resources, please visit the [Econ-ARK documentation](https://docs.econ-ark.org/).\\n\",\"description_content_type\":\"text/markdown\",\"docs_url\":null,\"download_url\":null,\"downloads\":{\"last_day\":-1,\"last_month\":-1,\"last_week\":-1},\"dynamic\":[\"License-File\"],\"home_page\":null,\"keywords\":\"economics, modelling, modeling, heterogeneity\",\"license\":null,\"license_expression\":\"Apache-2.0\",\"license_files\":[\"LICENSE\"],\"maintainer\":null,\"maintainer_email\":null,\"name\":\"econ-ark\",\"package_url\":\"https://pypi.org/project/econ-ark/\",\"platform\":null,\"project_url\":\"https://pypi.org/project/econ-ark/\",\"project_urls\":{\"Bug Reports\":\"https://github.com/econ-ark/HARK/issues\",\"Documentation\":\"https://econ-ark.github.io/HARK\",\"Homepage\":\"https://github.com/econ-ark/HARK\"},\"provides_extra\":[\"dev\",\"doc\"],\"release_url\":\"https://pypi.org/project/econ-ark/0.17.0/\",\"requires_dist\":[\"interpolation>=2.2.3\",\"joblib>=1.2\",\"legacy-cgi; python_version >= \\\"3.13\\\"\",\"matplotlib>=3.6\",\"networkx>=3\",\"numba\",\"numpy\",\"optimagic\",\"pandas>=1.5\",\"pyyaml>=6.0\",\"quantecon\",\"scipy>=1.10\",\"seaborn>=0.12\",\"sequence-jacobian\",\"statsmodels>=0.14.2\",\"xarray>=2023\",\"nbval; extra == \\\"dev\\\"\",\"pre-commit; extra == \\\"dev\\\"\",\"pytest; extra == \\\"dev\\\"\",\"pytest-cov; extra == \\\"dev\\\"\",\"pytest-xdist; extra == \\\"dev\\\"\",\"ruff; extra == \\\"dev\\\"\",\"ipython; extra == \\\"doc\\\"\",\"myst-parser>=2; extra == \\\"doc\\\"\",\"nbsphinx>=0.8; extra == \\\"doc\\\"\",\"pydata-sphinx-theme; extra == \\\"doc\\\"\",\"sphinx>=6.1; extra == \\\"doc\\\"\",\"sphinx-copybutton; extra == \\\"doc\\\"\",\"sphinx-design; extra == \\\"doc\\\"\"],\"requires_python\":\">=3.10\",\"summary\":\"Heterogenous Agents Resources & toolKit\",\"version\":\"0.17.0\",\"yanked\":false,\"yanked_reason\":null},\"last_serial\":33363606,\"releases\":{\"0.10.0.dev1\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"50195b0b90a95e7b4e2b98e72cf7ca9b585c4e78e1996e9a8b1406659655edb2\",\"md5\":\"1e17b6e400f9b6e8a6fdbfbad9db477e\",\"sha256\":\"d6748a9dbafcf79622467319cb49e57e784ed4edabc8a2b53b56a4521144253b\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.0.dev1.tar.gz\",\"has_sig\":false,\"md5_digest\":\"1e17b6e400f9b6e8a6fdbfbad9db477e\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":219377,\"upload_time\":\"2019-04-12T18:10:13\",\"upload_time_iso_8601\":\"2019-04-12T18:10:13.685988Z\",\"url\":\"https://files.pythonhosted.org/packages/50/19/5b0b90a95e7b4e2b98e72cf7ca9b585c4e78e1996e9a8b1406659655edb2/econ-ark-0.10.0.dev1.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.0.dev2\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"e8259a8dc8111afccbd75d0f85b33233a3825c437a55f0b79ac3f44eff33146e\",\"md5\":\"443b2034f08670eb51330815f260f93e\",\"sha256\":\"d14170e9a70d95c9380bc1bc16b73876d88a0c86d37e293ae84c6d052148d8f2\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.0.dev2.tar.gz\",\"has_sig\":false,\"md5_digest\":\"443b2034f08670eb51330815f260f93e\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":219436,\"upload_time\":\"2019-04-18T17:32:46\",\"upload_time_iso_8601\":\"2019-04-18T17:32:46.127842Z\",\"url\":\"https://files.pythonhosted.org/packages/e8/25/9a8dc8111afccbd75d0f85b33233a3825c437a55f0b79ac3f44eff33146e/econ-ark-0.10.0.dev2.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.0.dev3\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"56dd54d08d625fbfdbcd93118a9718e1f9ef71935b4e7df6091245c328647735\",\"md5\":\"a99c56137efaa5c4729dc0fcf144ba19\",\"sha256\":\"2e8b049a2d6b2c10df17e026f83dfac04430b1423e504590c1daecef41bd6642\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.0.dev3.tar.gz\",\"has_sig\":false,\"md5_digest\":\"a99c56137efaa5c4729dc0fcf144ba19\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":234876,\"upload_time\":\"2019-05-18T23:42:32\",\"upload_time_iso_8601\":\"2019-05-18T23:42:32.034167Z\",\"url\":\"https://files.pythonhosted.org/packages/56/dd/54d08d625fbfdbcd93118a9718e1f9ef71935b4e7df6091245c328647735/econ-ark-0.10.0.dev3.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.1\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"571bb87229c727fb1731dc2a1a3ac45299668dfe7e0349c2c053091451a7e38a\",\"md5\":\"916bcdd20062c434f61852ef21492ff1\",\"sha256\":\"3cad9a2dd17f56e05ffed95668a02c1b8dd3d1c3583872424098ad643c1484bf\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.1.tar.gz\",\"has_sig\":false,\"md5_digest\":\"916bcdd20062c434f61852ef21492ff1\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":237045,\"upload_time\":\"2019-05-30T15:52:14\",\"upload_time_iso_8601\":\"2019-05-30T15:52:14.492571Z\",\"url\":\"https://files.pythonhosted.org/packages/57/1b/b87229c727fb1731dc2a1a3ac45299668dfe7e0349c2c053091451a7e38a/econ-ark-0.10.1.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.1.dev1\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"40dabdd4568add35a20b3c70b18d00d430df4f0dc8d3a577b15131b561f6f4a2\",\"md5\":\"a667e6b654453f5316190a0f5af3f8c9\",\"sha256\":\"4bea4e31765b5d9e44348da2a2a757b97ee1dee073d56d667ae65a782b5e57f3\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.1.dev1.tar.gz\",\"has_sig\":false,\"md5_digest\":\"a667e6b654453f5316190a0f5af3f8c9\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":428724,\"upload_time\":\"2019-07-20T15:40:32\",\"upload_time_iso_8601\":\"2019-07-20T15:40:32.133571Z\",\"url\":\"https://files.pythonhosted.org/packages/40/da/bdd4568add35a20b3c70b18d00d430df4f0dc8d3a577b15131b561f6f4a2/econ-ark-0.10.1.dev1.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.1.dev2\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"33f39d5c45134cdc9ab3df50dc73713f0e75692bd4a57bcfd25f09dae8b4eb26\",\"md5\":\"84bff82c5a654ec72d47c698fa54d1e3\",\"sha256\":\"66cb1d26803c3eccd6d11e71fda909ce6b5b01b671314289a15a0009997c5b89\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.1.dev2.tar.gz\",\"has_sig\":false,\"md5_digest\":\"84bff82c5a654ec72d47c698fa54d1e3\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":429022,\"upload_time\":\"2019-07-22T23:11:56\",\"upload_time_iso_8601\":\"2019-07-22T23:11:56.121002Z\",\"url\":\"https://files.pythonhosted.org/packages/33/f3/9d5c45134cdc9ab3df50dc73713f0e75692bd4a57bcfd25f09dae8b4eb26/econ-ark-0.10.1.dev2.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.1.dev3\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"b66abf17dbab86e377ca4e51027909007bd318cb6c103438162280d1d91005c1\",\"md5\":\"9c1158a61eddc6f088a7dd9fb94c8093\",\"sha256\":\"b09754e2b427e22f90b9c4c8efd6d17f5e21b13ced080bd687f20773125d461f\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.1.dev3.tar.gz\",\"has_sig\":false,\"md5_digest\":\"9c1158a61eddc6f088a7dd9fb94c8093\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":429051,\"upload_time\":\"2019-07-23T18:25:43\",\"upload_time_iso_8601\":\"2019-07-23T18:25:43.016342Z\",\"url\":\"https://files.pythonhosted.org/packages/b6/6a/bf17dbab86e377ca4e51027909007bd318cb6c103438162280d1d91005c1/econ-ark-0.10.1.dev3.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.1.dev4\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"694ff138ce63f8a6d0c705125043a6c40ee78b5a39e34785f78927c49b81ee06\",\"md5\":\"c16f267fdb9ed3f1e25e04cdf173d43d\",\"sha256\":\"5da833c66a42f6fcbed3528e5c172ceec3f931dfbba592b19ec23cc6317ab971\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.1.dev4.tar.gz\",\"has_sig\":false,\"md5_digest\":\"c16f267fdb9ed3f1e25e04cdf173d43d\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":415969,\"upload_time\":\"2019-09-19T20:04:38\",\"upload_time_iso_8601\":\"2019-09-19T20:04:38.109484Z\",\"url\":\"https://files.pythonhosted.org/packages/69/4f/f138ce63f8a6d0c705125043a6c40ee78b5a39e34785f78927c49b81ee06/econ-ark-0.10.1.dev4.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.1.dev5\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"c65ec6d57197a8856ed034c42f1ed4601e2f309ec58fd457bd3f975e25398b90\",\"md5\":\"28d6992a44aff9b57b428173e5884150\",\"sha256\":\"27aaac4c2d829f59ff75e5ee07a4e27715ae6437fab101689c2c3e9d3794c6fd\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.1.dev5.tar.gz\",\"has_sig\":false,\"md5_digest\":\"28d6992a44aff9b57b428173e5884150\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":426647,\"upload_time\":\"2019-09-25T15:43:58\",\"upload_time_iso_8601\":\"2019-09-25T15:43:58.338780Z\",\"url\":\"https://files.pythonhosted.org/packages/c6/5e/c6d57197a8856ed034c42f1ed4601e2f309ec58fd457bd3f975e25398b90/econ-ark-0.10.1.dev5.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.2\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"177084b6f0e5a9b388aa9852e9c9af49fa477342dbde007d00c2f72da04cd460\",\"md5\":\"ad4b874333b470bc51deb1373a41ac54\",\"sha256\":\"0e6596ac3b5f6777fc84fd2a3e6fdfa99972427b2e207be7ebe32c8139867a6c\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.2.tar.gz\",\"has_sig\":false,\"md5_digest\":\"ad4b874333b470bc51deb1373a41ac54\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":427072,\"upload_time\":\"2019-10-03T22:25:43\",\"upload_time_iso_8601\":\"2019-10-03T22:25:43.997117Z\",\"url\":\"https://files.pythonhosted.org/packages/17/70/84b6f0e5a9b388aa9852e9c9af49fa477342dbde007d00c2f72da04cd460/econ-ark-0.10.2.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.3\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"68a40083edf58aa245165c2c31c7d27743433d2f716559f288764fd18058ada6\",\"md5\":\"3d4c940f02a764f0ab88b515e4c49274\",\"sha256\":\"d80fbd162f568e17abf9ea938cf548e7c9629800d8d3ab89aa3e4e0da1533425\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.3.tar.gz\",\"has_sig\":false,\"md5_digest\":\"3d4c940f02a764f0ab88b515e4c49274\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":432569,\"upload_time\":\"2019-12-19T15:22:54\",\"upload_time_iso_8601\":\"2019-12-19T15:22:54.234072Z\",\"url\":\"https://files.pythonhosted.org/packages/68/a4/0083edf58aa245165c2c31c7d27743433d2f716559f288764fd18058ada6/econ-ark-0.10.3.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.4\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"5d30ff81d44e75ab67836913a3e48ba92986223fe8d3442156201a342d711b75\",\"md5\":\"20a0ff84b52550c031f48f8d7193d039\",\"sha256\":\"9563d8e62cde22bf849de046ed1f7717e6820fa80ed09ca62ef52e63ab90124f\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.4.tar.gz\",\"has_sig\":false,\"md5_digest\":\"20a0ff84b52550c031f48f8d7193d039\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":240856,\"upload_time\":\"2020-03-05T17:46:47\",\"upload_time_iso_8601\":\"2020-03-05T17:46:47.321976Z\",\"url\":\"https://files.pythonhosted.org/packages/5d/30/ff81d44e75ab67836913a3e48ba92986223fe8d3442156201a342d711b75/econ-ark-0.10.4.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.4rc1\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"abfd60107790d124662bf2753735e40bbb711453528380b08776a50faf337f19\",\"md5\":\"bd2e65b5c113885b51de111b281d508d\",\"sha256\":\"7f56d37c9479ce8a8929a6cafa0edf8cac3e6e7a4b62aedce2293c63124ac514\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.4rc1.tar.gz\",\"has_sig\":false,\"md5_digest\":\"bd2e65b5c113885b51de111b281d508d\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":233374,\"upload_time\":\"2020-02-26T10:42:00\",\"upload_time_iso_8601\":\"2020-02-26T10:42:00.930224Z\",\"url\":\"https://files.pythonhosted.org/packages/ab/fd/60107790d124662bf2753735e40bbb711453528380b08776a50faf337f19/econ-ark-0.10.4rc1.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.5\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"0b27355f61b1c2abb96e16518ecfcecb307bd35e30c3ffd7eeba8dbdce4fd63b\",\"md5\":\"6c2c18b8f56e9bfc440c75b6e1e10a0e\",\"sha256\":\"bbc05923eaeb86c1911f74e64eb35a94191b74ec1428e0ee424f4f37df64537e\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.5.tar.gz\",\"has_sig\":false,\"md5_digest\":\"6c2c18b8f56e9bfc440c75b6e1e10a0e\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.6\",\"size\":237330,\"upload_time\":\"2020-03-23T23:45:52\",\"upload_time_iso_8601\":\"2020-03-23T23:45:52.601535Z\",\"url\":\"https://files.pythonhosted.org/packages/0b/27/355f61b1c2abb96e16518ecfcecb307bd35e30c3ffd7eeba8dbdce4fd63b/econ-ark-0.10.5.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.6\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"55ad67c0890e6a82270f77694a4dd65398be6bf3d65449cbe47436447a60642c\",\"md5\":\"907f015223b18e40860de9db15fe57e6\",\"sha256\":\"30d4a9a478ff93e7762dbae8231bf35eb0a34d7c8b54bad8322099a55ce41e21\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.6.tar.gz\",\"has_sig\":false,\"md5_digest\":\"907f015223b18e40860de9db15fe57e6\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.6\",\"size\":238588,\"upload_time\":\"2020-04-17T21:16:59\",\"upload_time_iso_8601\":\"2020-04-17T21:16:59.673090Z\",\"url\":\"https://files.pythonhosted.org/packages/55/ad/67c0890e6a82270f77694a4dd65398be6bf3d65449cbe47436447a60642c/econ-ark-0.10.6.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.7\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"73353fc0d840b4f7ffdc380005c3849c07ed8c4025f9762c490c69f9e25848ef\",\"md5\":\"b13b26fa9a849752a4560811189e1d70\",\"sha256\":\"2e528c003e0ae2c70661ed2f0d1288b4b87414e6ecae387b7e5ecbc9048746bb\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.7.tar.gz\",\"has_sig\":false,\"md5_digest\":\"b13b26fa9a849752a4560811189e1d70\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.6\",\"size\":224635,\"upload_time\":\"2020-08-07T19:47:46\",\"upload_time_iso_8601\":\"2020-08-07T19:47:46.693471Z\",\"url\":\"https://files.pythonhosted.org/packages/73/35/3fc0d840b4f7ffdc380005c3849c07ed8c4025f9762c490c69f9e25848ef/econ-ark-0.10.7.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.10.8\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"13f38ec5fb5918e0682abf58c09410163124ec0c2b4cf302b79bfa6467b32a0c\",\"md5\":\"2f50c151a836e06c5d482fc890dc453d\",\"sha256\":\"f15bfd3a1a423f175cfaaabcb415f83182c844553cd9b6bfd45c816c8a242923\"},\"downloads\":-1,\"filename\":\"econ-ark-0.10.8.tar.gz\",\"has_sig\":false,\"md5_digest\":\"2f50c151a836e06c5d482fc890dc453d\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.6\",\"size\":247797,\"upload_time\":\"2020-11-05T16:52:32\",\"upload_time_iso_8601\":\"2020-11-05T16:52:32.690797Z\",\"url\":\"https://files.pythonhosted.org/packages/13/f3/8ec5fb5918e0682abf58c09410163124ec0c2b4cf302b79bfa6467b32a0c/econ-ark-0.10.8.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.11.0\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"8d1bf71e9465451eea8c700bb72bfe7e4272e0e7932fb63204e8062886a6a711\",\"md5\":\"c431cd1320e2322e52972b546f4afe73\",\"sha256\":\"58a6b9d291d25e5ba3aef0a554c8bfeb6b247c464a18016e3a32df08a71e5681\"},\"downloads\":-1,\"filename\":\"econ-ark-0.11.0.tar.gz\",\"has_sig\":false,\"md5_digest\":\"c431cd1320e2322e52972b546f4afe73\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.7\",\"size\":1991010,\"upload_time\":\"2021-03-04T17:31:45\",\"upload_time_iso_8601\":\"2021-03-04T17:31:45.775714Z\",\"url\":\"https://files.pythonhosted.org/packages/8d/1b/f71e9465451eea8c700bb72bfe7e4272e0e7932fb63204e8062886a6a711/econ-ark-0.11.0.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.12.0\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"5011e5f21858d6525d25a7c19a3b1d14dd42e25a41a114734c022cb7a32623ab\",\"md5\":\"cee52b2bccfabe2509e024e5607ee8ca\",\"sha256\":\"3915dd3899481856203d671e64298fb4eda961ccdcf7adcb0dfd494d180f6f46\"},\"downloads\":-1,\"filename\":\"econ-ark-0.12.0.tar.gz\",\"has_sig\":false,\"md5_digest\":\"cee52b2bccfabe2509e024e5607ee8ca\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.7\",\"size\":8416070,\"upload_time\":\"2021-12-14T16:50:58\",\"upload_time_iso_8601\":\"2021-12-14T16:50:58.768888Z\",\"url\":\"https://files.pythonhosted.org/packages/50/11/e5f21858d6525d25a7c19a3b1d14dd42e25a41a114734c022cb7a32623ab/econ-ark-0.12.0.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.13.0\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"4af53460b507c53136608976c5cee68ab4593a516bdc00e7d3df968f54b783eb\",\"md5\":\"2ff1dd82c075d10cca99c61c9ea0a6a1\",\"sha256\":\"9d06014cd2a636773d77f83007b1746e77f23d6cd940cb7f94cff8fff2b7ab5b\"},\"downloads\":-1,\"filename\":\"econ-ark-0.13.0.tar.gz\",\"has_sig\":false,\"md5_digest\":\"2ff1dd82c075d10cca99c61c9ea0a6a1\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.8\",\"size\":10121515,\"upload_time\":\"2023-02-16T15:24:29\",\"upload_time_iso_8601\":\"2023-02-16T15:24:29.389976Z\",\"url\":\"https://files.pythonhosted.org/packages/4a/f5/3460b507c53136608976c5cee68ab4593a516bdc00e7d3df968f54b783eb/econ-ark-0.13.0.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.14.0\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"489f79aafafea2e4cf7fda7c8813dbe38d1cf3d3f24f2dc698d75c2a1d846388\",\"md5\":\"80ce78eb48b0299ca55fb6f15065c46c\",\"sha256\":\"f8b630187f12511b677d22260fffef6a18904eb4e5c067ca775f3d4f91ee8335\"},\"downloads\":-1,\"filename\":\"econ_ark-0.14.0-py2.py3-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"80ce78eb48b0299ca55fb6f15065c46c\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py2.py3\",\"requires_python\":\">=3.8\",\"size\":2146488,\"upload_time\":\"2024-02-12T19:56:34\",\"upload_time_iso_8601\":\"2024-02-12T19:56:34.271473Z\",\"url\":\"https://files.pythonhosted.org/packages/48/9f/79aafafea2e4cf7fda7c8813dbe38d1cf3d3f24f2dc698d75c2a1d846388/econ_ark-0.14.0-py2.py3-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"2575274ac1a312c639a97845a56857dfc4e6ec12b36028d7ad3e179f6f1b43d7\",\"md5\":\"f108a4ee2b006478addf00ab94dc6412\",\"sha256\":\"bf90f4b4b741b504efa85c5f4bff5c4cc86292cadb89406fc02e2a2fec67a282\"},\"downloads\":-1,\"filename\":\"econ-ark-0.14.0.tar.gz\",\"has_sig\":false,\"md5_digest\":\"f108a4ee2b006478addf00ab94dc6412\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.8\",\"size\":12349273,\"upload_time\":\"2024-02-12T19:56:44\",\"upload_time_iso_8601\":\"2024-02-12T19:56:44.983702Z\",\"url\":\"https://files.pythonhosted.org/packages/25/75/274ac1a312c639a97845a56857dfc4e6ec12b36028d7ad3e179f6f1b43d7/econ-ark-0.14.0.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.14.1\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"e4c0950730a75c7e57c18db715dd36bf5dbfc5a39e8205c19b6eb40820432b72\",\"md5\":\"881bf241dfd2b4d7c1a0e326c8a35b38\",\"sha256\":\"51be1a60376c46b0c4ad57692daaecc4949931fd149d82a1147e1a302e64a77b\"},\"downloads\":-1,\"filename\":\"econ_ark-0.14.1-py2.py3-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"881bf241dfd2b4d7c1a0e326c8a35b38\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py2.py3\",\"requires_python\":\">=3.8\",\"size\":2146622,\"upload_time\":\"2024-02-28T17:10:26\",\"upload_time_iso_8601\":\"2024-02-28T17:10:26.065465Z\",\"url\":\"https://files.pythonhosted.org/packages/e4/c0/950730a75c7e57c18db715dd36bf5dbfc5a39e8205c19b6eb40820432b72/econ_ark-0.14.1-py2.py3-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"d44662fbc49c261ef215ea5b47d618a8ce6cacad955943bc49d9962877346956\",\"md5\":\"87059331135e7efd8f17861873e687ca\",\"sha256\":\"5d2264d3fc1281055faf252407230fd4aa75bad7f9e868cca50917dff17da24d\"},\"downloads\":-1,\"filename\":\"econ-ark-0.14.1.tar.gz\",\"has_sig\":false,\"md5_digest\":\"87059331135e7efd8f17861873e687ca\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.8\",\"size\":12349558,\"upload_time\":\"2024-02-28T17:10:37\",\"upload_time_iso_8601\":\"2024-02-28T17:10:37.768174Z\",\"url\":\"https://files.pythonhosted.org/packages/d4/46/62fbc49c261ef215ea5b47d618a8ce6cacad955943bc49d9962877346956/econ-ark-0.14.1.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.15.0\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"4cff83d985a437c6bc8d95ed207e675646638b5b309d99b6e877c920a394664f\",\"md5\":\"f46f093f44b09923a060fdbd95f6f2c2\",\"sha256\":\"1789d0e5f14d5c1b2f7dfe18cfc0b6a6cfad8aee6cfb2b7cf32378d69f346f53\"},\"downloads\":-1,\"filename\":\"econ_ark-0.15.0-py2.py3-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"f46f093f44b09923a060fdbd95f6f2c2\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py2.py3\",\"requires_python\":\">=3.10\",\"size\":2219155,\"upload_time\":\"2024-06-04T13:21:52\",\"upload_time_iso_8601\":\"2024-06-04T13:21:52.192940Z\",\"url\":\"https://files.pythonhosted.org/packages/4c/ff/83d985a437c6bc8d95ed207e675646638b5b309d99b6e877c920a394664f/econ_ark-0.15.0-py2.py3-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"f737d448118f7739e145aafce6683f509f44b7333b15ad472f9a25d13c585660\",\"md5\":\"6690bb40c68d7759718d668e90fad1af\",\"sha256\":\"7f8cf84f145b075831981e81ae8297bdd5a5bebd18278f39a6d19064371834fc\"},\"downloads\":-1,\"filename\":\"econ_ark-0.15.0.tar.gz\",\"has_sig\":false,\"md5_digest\":\"6690bb40c68d7759718d668e90fad1af\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.10\",\"size\":10920747,\"upload_time\":\"2024-06-04T13:21:58\",\"upload_time_iso_8601\":\"2024-06-04T13:21:58.402423Z\",\"url\":\"https://files.pythonhosted.org/packages/f7/37/d448118f7739e145aafce6683f509f44b7333b15ad472f9a25d13c585660/econ_ark-0.15.0.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.15.1\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"52e1f0c7ca5cd9d6b42e3886558ade15673a78390f41a1f1443220340df2b235\",\"md5\":\"c7bd27d404a42af77fdbf989a6f0dd8c\",\"sha256\":\"5de57b9473523bd430f7cfaa923051b3e239b71d3a34847f77acad1a73804d81\"},\"downloads\":-1,\"filename\":\"econ_ark-0.15.1-py2.py3-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"c7bd27d404a42af77fdbf989a6f0dd8c\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py2.py3\",\"requires_python\":\">=3.10\",\"size\":2221966,\"upload_time\":\"2024-06-15T16:41:55\",\"upload_time_iso_8601\":\"2024-06-15T16:41:55.068961Z\",\"url\":\"https://files.pythonhosted.org/packages/52/e1/f0c7ca5cd9d6b42e3886558ade15673a78390f41a1f1443220340df2b235/econ_ark-0.15.1-py2.py3-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"a94a4eec946031ad7e745cbe97ecde1af39b587af8b82d20ac183fee79045071\",\"md5\":\"43cd062901be6c274f1e1ca2ad7e0b7d\",\"sha256\":\"e63b85b295d012c3ed5f34beb4aefc6ec81b0ab0b4285c091c1874d3f1bfc0dc\"},\"downloads\":-1,\"filename\":\"econ_ark-0.15.1.tar.gz\",\"has_sig\":false,\"md5_digest\":\"43cd062901be6c274f1e1ca2ad7e0b7d\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.10\",\"size\":12201402,\"upload_time\":\"2024-06-15T16:42:01\",\"upload_time_iso_8601\":\"2024-06-15T16:42:01.572141Z\",\"url\":\"https://files.pythonhosted.org/packages/a9/4a/4eec946031ad7e745cbe97ecde1af39b587af8b82d20ac183fee79045071/econ_ark-0.15.1.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.16.0\":[{\"comment_text\":null,\"digests\":{\"blake2b_256\":\"86185f5dce00d03a14c3efdf3a269aa20f062db3fc95e7f7e2a42e041f0c17aa\",\"md5\":\"c7688777fad674b7f28a674c121dafb9\",\"sha256\":\"2b4a55be2f3a4e4ee6dbadc346a1969d48aa5225b2caf689d09f6e74eee9816e\"},\"downloads\":-1,\"filename\":\"econ_ark-0.16.0-py2.py3-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"c7688777fad674b7f28a674c121dafb9\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py2.py3\",\"requires_python\":\">=3.10\",\"size\":2248917,\"upload_time\":\"2025-06-09T14:51:50\",\"upload_time_iso_8601\":\"2025-06-09T14:51:50.262522Z\",\"url\":\"https://files.pythonhosted.org/packages/86/18/5f5dce00d03a14c3efdf3a269aa20f062db3fc95e7f7e2a42e041f0c17aa/econ_ark-0.16.0-py2.py3-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":null,\"digests\":{\"blake2b_256\":\"e8faa5a844a5350727cef5e28b243b4b699b32d8325f835b0475c99b18da6208\",\"md5\":\"ded287b80c23b56aed624d7b480e9d44\",\"sha256\":\"9d5999e5e890de98b096e18b984348b5ee7fb3fd837093ca61b693696c91a05f\"},\"downloads\":-1,\"filename\":\"econ_ark-0.16.0.tar.gz\",\"has_sig\":false,\"md5_digest\":\"ded287b80c23b56aed624d7b480e9d44\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.10\",\"size\":13934644,\"upload_time\":\"2025-06-09T14:51:55\",\"upload_time_iso_8601\":\"2025-06-09T14:51:55.723879Z\",\"url\":\"https://files.pythonhosted.org/packages/e8/fa/a5a844a5350727cef5e28b243b4b699b32d8325f835b0475c99b18da6208/econ_ark-0.16.0.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.16.1\":[{\"comment_text\":null,\"digests\":{\"blake2b_256\":\"e2e1b156995f4f0e138fa639f3e09fb1a6bef384070a3431eaf14c06e569d3c3\",\"md5\":\"645ea0d9a6aaceeca60a9b7137aca815\",\"sha256\":\"2395448ed919ea490b131537c9ecde2626bc3d9bed170103efa31dabba18f981\"},\"downloads\":-1,\"filename\":\"econ_ark-0.16.1-py2.py3-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"645ea0d9a6aaceeca60a9b7137aca815\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py2.py3\",\"requires_python\":\">=3.10\",\"size\":2293013,\"upload_time\":\"2025-07-25T01:54:09\",\"upload_time_iso_8601\":\"2025-07-25T01:54:09.863561Z\",\"url\":\"https://files.pythonhosted.org/packages/e2/e1/b156995f4f0e138fa639f3e09fb1a6bef384070a3431eaf14c06e569d3c3/econ_ark-0.16.1-py2.py3-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":null,\"digests\":{\"blake2b_256\":\"951d45f9f0fd7f44628370fbe42c52cba25dfbdca89362fa84c3ee9ef7bed028\",\"md5\":\"a3233b83079d4186c1dbc6914ea7a167\",\"sha256\":\"bd9a82d263df90e7dc6226b6caeb1fc935da89bd83c504578036db4f3bf8d300\"},\"downloads\":-1,\"filename\":\"econ_ark-0.16.1.tar.gz\",\"has_sig\":false,\"md5_digest\":\"a3233b83079d4186c1dbc6914ea7a167\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.10\",\"size\":15933577,\"upload_time\":\"2025-07-25T01:54:17\",\"upload_time_iso_8601\":\"2025-07-25T01:54:17.741108Z\",\"url\":\"https://files.pythonhosted.org/packages/95/1d/45f9f0fd7f44628370fbe42c52cba25dfbdca89362fa84c3ee9ef7bed028/econ_ark-0.16.1.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.17.0\":[{\"comment_text\":null,\"digests\":{\"blake2b_256\":\"ec44f1dc5e1827ad388255aa7fb1249c91b25be914087fa46d9ffecd0f6c7af5\",\"md5\":\"92d8cc7c5f9ac7ae5f11bd2e0942b771\",\"sha256\":\"bcb4f441f98807b8d5d003e119808cdcff800b2d8c50248bf8ad8114346563a9\"},\"downloads\":-1,\"filename\":\"econ_ark-0.17.0-py3-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"92d8cc7c5f9ac7ae5f11bd2e0942b771\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py3\",\"requires_python\":\">=3.10\",\"size\":2258310,\"upload_time\":\"2026-01-05T18:44:56\",\"upload_time_iso_8601\":\"2026-01-05T18:44:56.263433Z\",\"url\":\"https://files.pythonhosted.org/packages/ec/44/f1dc5e1827ad388255aa7fb1249c91b25be914087fa46d9ffecd0f6c7af5/econ_ark-0.17.0-py3-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":null,\"digests\":{\"blake2b_256\":\"e7e7c330a15890c2f9dde43e3371bdd39a01f749242bf9fbb625e82b23be7907\",\"md5\":\"94efa45ada9ded9a094d4ea70cf22231\",\"sha256\":\"7578307d38508f7afb976023832d1aa7217e25ed58355073c982f6b0ff1fd97e\"},\"downloads\":-1,\"filename\":\"econ_ark-0.17.0.tar.gz\",\"has_sig\":false,\"md5_digest\":\"94efa45ada9ded9a094d4ea70cf22231\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.10\",\"size\":17423480,\"upload_time\":\"2026-01-05T18:44:58\",\"upload_time_iso_8601\":\"2026-01-05T18:44:58.975098Z\",\"url\":\"https://files.pythonhosted.org/packages/e7/e7/c330a15890c2f9dde43e3371bdd39a01f749242bf9fbb625e82b23be7907/econ_ark-0.17.0.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.8.0.dev1\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"39c7a4936f853edf1da06c1c1c1872cf87b8e97e9e497a17f5879ef95b1db8cf\",\"md5\":\"e0d66febf838bb9595043d5645728089\",\"sha256\":\"2e57af2d57697db5edfab0a9312e311a9cb09d4c3c625ab9fe83e1cab3225d38\"},\"downloads\":-1,\"filename\":\"econ-ark-0.8.0.dev1.tar.gz\",\"has_sig\":false,\"md5_digest\":\"e0d66febf838bb9595043d5645728089\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7, !=3.*\",\"size\":10778686,\"upload_time\":\"2018-05-19T20:55:17\",\"upload_time_iso_8601\":\"2018-05-19T20:55:17.973245Z\",\"url\":\"https://files.pythonhosted.org/packages/39/c7/a4936f853edf1da06c1c1c1872cf87b8e97e9e497a17f5879ef95b1db8cf/econ-ark-0.8.0.dev1.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.8.0.dev2\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"2e24a055ecb2790dae8914341e01a6045af7138c3ee628bd44e82e1c388d39de\",\"md5\":\"fd10203672c8dcf524edac9c2bb2fcb8\",\"sha256\":\"e8dfb0dcc4d660c1138c8fc4f8493cebd04f10040534a3f4ca6716010255eb95\"},\"downloads\":-1,\"filename\":\"econ-ark-0.8.0.dev2.tar.gz\",\"has_sig\":false,\"md5_digest\":\"fd10203672c8dcf524edac9c2bb2fcb8\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7, !=3.*\",\"size\":10779305,\"upload_time\":\"2018-05-20T01:35:47\",\"upload_time_iso_8601\":\"2018-05-20T01:35:47.519275Z\",\"url\":\"https://files.pythonhosted.org/packages/2e/24/a055ecb2790dae8914341e01a6045af7138c3ee628bd44e82e1c388d39de/econ-ark-0.8.0.dev2.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.8.0.dev3\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"40e2fd0ba9890096ee839583e378fdff408363a040c117bac89b8867e46ea9aa\",\"md5\":\"f948389e6cc8eb47601d8f6f26c7195b\",\"sha256\":\"567ab71fa18ba52373cce10c868d015c652a89a598ad30f5f947d8b5aa4e46a7\"},\"downloads\":-1,\"filename\":\"econ-ark-0.8.0.dev3.tar.gz\",\"has_sig\":false,\"md5_digest\":\"f948389e6cc8eb47601d8f6f26c7195b\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7, !=3.*\",\"size\":10778318,\"upload_time\":\"2018-05-20T23:49:55\",\"upload_time_iso_8601\":\"2018-05-20T23:49:55.486686Z\",\"url\":\"https://files.pythonhosted.org/packages/40/e2/fd0ba9890096ee839583e378fdff408363a040c117bac89b8867e46ea9aa/econ-ark-0.8.0.dev3.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.8.0.dev4\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"b8daff564e221278f5dedd0ae50497a63688fa527067647de2023d11f060e8be\",\"md5\":\"ef44e77fe3ca0d6a6be4781b39bb7c82\",\"sha256\":\"9ea673cf914e599ab73fac29ef6c85c877ee7fa34635dd6cfb83b78abc917238\"},\"downloads\":-1,\"filename\":\"econ-ark-0.8.0.dev4.tar.gz\",\"has_sig\":false,\"md5_digest\":\"ef44e77fe3ca0d6a6be4781b39bb7c82\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7, !=3.*\",\"size\":10778872,\"upload_time\":\"2018-05-21T21:29:26\",\"upload_time_iso_8601\":\"2018-05-21T21:29:26.781069Z\",\"url\":\"https://files.pythonhosted.org/packages/b8/da/ff564e221278f5dedd0ae50497a63688fa527067647de2023d11f060e8be/econ-ark-0.8.0.dev4.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.8.0.dev5\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"806d1b50092ce09d1a82bbd6e05b237471e5e12102aa0c682fb78e7a568cad7d\",\"md5\":\"ccd6e722ad72649c15c0557fde84e6d5\",\"sha256\":\"6f8e49401da39ade96e9f6770b7130a87a047d8b2f4372c91006361c6ed639f9\"},\"downloads\":-1,\"filename\":\"econ-ark-0.8.0.dev5.tar.gz\",\"has_sig\":false,\"md5_digest\":\"ccd6e722ad72649c15c0557fde84e6d5\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7, !=3.*\",\"size\":10778143,\"upload_time\":\"2018-05-21T21:45:55\",\"upload_time_iso_8601\":\"2018-05-21T21:45:55.580798Z\",\"url\":\"https://files.pythonhosted.org/packages/80/6d/1b50092ce09d1a82bbd6e05b237471e5e12102aa0c682fb78e7a568cad7d/econ-ark-0.8.0.dev5.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.8.0.dev6\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"71ad4deb8fe6c444802b8c07f2a6d7e187436c0cda9550e36677f40ffdead82f\",\"md5\":\"3001db12768e7f328645aca141124db2\",\"sha256\":\"4eecc20d726db3af2eb68457ef0009d3dcd4047bad015e0657e6304cd37b4600\"},\"downloads\":-1,\"filename\":\"econ-ark-0.8.0.dev6.tar.gz\",\"has_sig\":false,\"md5_digest\":\"3001db12768e7f328645aca141124db2\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7, !=3.*\",\"size\":10778213,\"upload_time\":\"2018-06-04T21:47:59\",\"upload_time_iso_8601\":\"2018-06-04T21:47:59.251377Z\",\"url\":\"https://files.pythonhosted.org/packages/71/ad/4deb8fe6c444802b8c07f2a6d7e187436c0cda9550e36677f40ffdead82f/econ-ark-0.8.0.dev6.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.8.0.dev7\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"0a187a126fc8d6a35c51e227202866e2dbeed65220872676f0ab1b6c640388f4\",\"md5\":\"d51ee07102f3ac77c74e6dd5e26a8ec1\",\"sha256\":\"658138ea8e7e511cd51d97d3062837345e7d06330cc155dbfdbddd132f71e367\"},\"downloads\":-1,\"filename\":\"econ-ark-0.8.0.dev7.tar.gz\",\"has_sig\":false,\"md5_digest\":\"d51ee07102f3ac77c74e6dd5e26a8ec1\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7, !=3.*\",\"size\":10778231,\"upload_time\":\"2018-06-04T21:54:17\",\"upload_time_iso_8601\":\"2018-06-04T21:54:17.363576Z\",\"url\":\"https://files.pythonhosted.org/packages/0a/18/7a126fc8d6a35c51e227202866e2dbeed65220872676f0ab1b6c640388f4/econ-ark-0.8.0.dev7.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.9.0\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"1cc733b85d1bcd5287ae88876f681ee61920fb47c39a3912c38d8cd99ac1474f\",\"md5\":\"958127ce3717068b7e13d9fa3d44407a\",\"sha256\":\"c2f1c1f48ba6340f6cdcda87677ad979b7cbdfecbfb97a3b2b6c13a689c67aeb\"},\"downloads\":-1,\"filename\":\"econ_ark-0.9.0-py2-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"958127ce3717068b7e13d9fa3d44407a\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py2\",\"requires_python\":\">=2.7, !=3.*\",\"size\":374494,\"upload_time\":\"2018-06-28T23:14:01\",\"upload_time_iso_8601\":\"2018-06-28T23:14:01.690432Z\",\"url\":\"https://files.pythonhosted.org/packages/1c/c7/33b85d1bcd5287ae88876f681ee61920fb47c39a3912c38d8cd99ac1474f/econ_ark-0.9.0-py2-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"bf5bf7cfe820edffb20b97c957eeb35ed1623724c258b47cbf5864b3fcb58d14\",\"md5\":\"b17dc0074db8c41d239ed8f748e3924a\",\"sha256\":\"e1a19c5e2a296da9a10b2058164d850220e7c6cf7aef83adedc513046f1f4255\"},\"downloads\":-1,\"filename\":\"econ-ark-0.9.0.tar.gz\",\"has_sig\":false,\"md5_digest\":\"b17dc0074db8c41d239ed8f748e3924a\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7, !=3.*\",\"size\":236368,\"upload_time\":\"2018-06-28T23:14:04\",\"upload_time_iso_8601\":\"2018-06-28T23:14:04.060574Z\",\"url\":\"https://files.pythonhosted.org/packages/bf/5b/f7cfe820edffb20b97c957eeb35ed1623724c258b47cbf5864b3fcb58d14/econ-ark-0.9.0.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.9.0.dev1\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"88e4db559ece97271dd38f67c756e8c2b42cbccf627ed527725a84ef7cbeb7eb\",\"md5\":\"f3fe49ed2e7315409a9fc2b7741df8b7\",\"sha256\":\"6125d0e9122babade4fa8245b62f8da0b56aa2937d02595b8b59be271d95ccde\"},\"downloads\":-1,\"filename\":\"econ_ark-0.9.0.dev1-py3-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"f3fe49ed2e7315409a9fc2b7741df8b7\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py3\",\"requires_python\":\">=2.7, !=3.*\",\"size\":383104,\"upload_time\":\"2018-06-26T23:41:55\",\"upload_time_iso_8601\":\"2018-06-26T23:41:55.417237Z\",\"url\":\"https://files.pythonhosted.org/packages/88/e4/db559ece97271dd38f67c756e8c2b42cbccf627ed527725a84ef7cbeb7eb/econ_ark-0.9.0.dev1-py3-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"0f508df2458d499d6a6423d2c23e379db825ae1b78fae55c94c5b70bc51b2a4a\",\"md5\":\"5b6971bf25ae7354882a77842c673f33\",\"sha256\":\"7bb23640cc47f4929643dedb0d5067d9269ceac3b08b075fb701356519e9a9ca\"},\"downloads\":-1,\"filename\":\"econ-ark-0.9.0.dev1.tar.gz\",\"has_sig\":false,\"md5_digest\":\"5b6971bf25ae7354882a77842c673f33\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7, !=3.*\",\"size\":236480,\"upload_time\":\"2018-06-26T23:41:57\",\"upload_time_iso_8601\":\"2018-06-26T23:41:57.557513Z\",\"url\":\"https://files.pythonhosted.org/packages/0f/50/8df2458d499d6a6423d2c23e379db825ae1b78fae55c94c5b70bc51b2a4a/econ-ark-0.9.0.dev1.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.9.0.dev2\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"803ddccf320405dcdb6bd922ad815f9368896befaa260895f1cfe15d59583cba\",\"md5\":\"306c77bddc3ebfa9c6330e6cd23ec58c\",\"sha256\":\"c5b3a0f362ba264f7487f947e4e7382f1e85bbff14ed45adb3fa82e123eddc40\"},\"downloads\":-1,\"filename\":\"econ_ark-0.9.0.dev2-py2-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"306c77bddc3ebfa9c6330e6cd23ec58c\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py2\",\"requires_python\":\">=2.7, !=3.*\",\"size\":383102,\"upload_time\":\"2018-06-27T00:05:20\",\"upload_time_iso_8601\":\"2018-06-27T00:05:20.968751Z\",\"url\":\"https://files.pythonhosted.org/packages/80/3d/dccf320405dcdb6bd922ad815f9368896befaa260895f1cfe15d59583cba/econ_ark-0.9.0.dev2-py2-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"adbb742b8db2a6e966f97245b909321cfeee83e98b2acb644fa0f363e58e005d\",\"md5\":\"7ef1d40a1317013aa7e5734c9b41abb3\",\"sha256\":\"b5b7ebe96e81aec6f7d7ede6bcd9faf26788b10e053d08921ec12020aaddc088\"},\"downloads\":-1,\"filename\":\"econ-ark-0.9.0.dev2.tar.gz\",\"has_sig\":false,\"md5_digest\":\"7ef1d40a1317013aa7e5734c9b41abb3\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7, !=3.*\",\"size\":236487,\"upload_time\":\"2018-06-27T00:05:22\",\"upload_time_iso_8601\":\"2018-06-27T00:05:22.951808Z\",\"url\":\"https://files.pythonhosted.org/packages/ad/bb/742b8db2a6e966f97245b909321cfeee83e98b2acb644fa0f363e58e005d/econ-ark-0.9.0.dev2.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"0.9.1\":[{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"b6b4c27c693407338b49301d2e7e89e0d74dd2211414e1234eef73e498ac4c49\",\"md5\":\"afd409e0ca4fb2dc39867f6511fc6a91\",\"sha256\":\"8ed8bc77de111397c6967a439bfa0572e06da2b00f3cb3aa444d1b12bfa742c4\"},\"downloads\":-1,\"filename\":\"econ_ark-0.9.1-py2.py3-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"afd409e0ca4fb2dc39867f6511fc6a91\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py2.py3\",\"requires_python\":\">=2.7\",\"size\":384698,\"upload_time\":\"2018-07-19T13:59:18\",\"upload_time_iso_8601\":\"2018-07-19T13:59:18.035344Z\",\"url\":\"https://files.pythonhosted.org/packages/b6/b4/c27c693407338b49301d2e7e89e0d74dd2211414e1234eef73e498ac4c49/econ_ark-0.9.1-py2.py3-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":\"\",\"digests\":{\"blake2b_256\":\"8314ffab413b3ab44192c730ad739e8093b7c567944339ac0ba3f04a32b82cba\",\"md5\":\"bb8b24c83639150561b6b0e4c040f0f2\",\"sha256\":\"9b322208a94e6a1fc1d8781f84651195ae7a87d74c9dad6dd267fce4a914ab67\"},\"downloads\":-1,\"filename\":\"econ-ark-0.9.1.tar.gz\",\"has_sig\":false,\"md5_digest\":\"bb8b24c83639150561b6b0e4c040f0f2\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=2.7\",\"size\":235446,\"upload_time\":\"2018-07-19T13:59:22\",\"upload_time_iso_8601\":\"2018-07-19T13:59:22.290696Z\",\"url\":\"https://files.pythonhosted.org/packages/83/14/ffab413b3ab44192c730ad739e8093b7c567944339ac0ba3f04a32b82cba/econ-ark-0.9.1.tar.gz\",\"yanked\":false,\"yanked_reason\":null}]},\"urls\":[{\"comment_text\":null,\"digests\":{\"blake2b_256\":\"ec44f1dc5e1827ad388255aa7fb1249c91b25be914087fa46d9ffecd0f6c7af5\",\"md5\":\"92d8cc7c5f9ac7ae5f11bd2e0942b771\",\"sha256\":\"bcb4f441f98807b8d5d003e119808cdcff800b2d8c50248bf8ad8114346563a9\"},\"downloads\":-1,\"filename\":\"econ_ark-0.17.0-py3-none-any.whl\",\"has_sig\":false,\"md5_digest\":\"92d8cc7c5f9ac7ae5f11bd2e0942b771\",\"packagetype\":\"bdist_wheel\",\"python_version\":\"py3\",\"requires_python\":\">=3.10\",\"size\":2258310,\"upload_time\":\"2026-01-05T18:44:56\",\"upload_time_iso_8601\":\"2026-01-05T18:44:56.263433Z\",\"url\":\"https://files.pythonhosted.org/packages/ec/44/f1dc5e1827ad388255aa7fb1249c91b25be914087fa46d9ffecd0f6c7af5/econ_ark-0.17.0-py3-none-any.whl\",\"yanked\":false,\"yanked_reason\":null},{\"comment_text\":null,\"digests\":{\"blake2b_256\":\"e7e7c330a15890c2f9dde43e3371bdd39a01f749242bf9fbb625e82b23be7907\",\"md5\":\"94efa45ada9ded9a094d4ea70cf22231\",\"sha256\":\"7578307d38508f7afb976023832d1aa7217e25ed58355073c982f6b0ff1fd97e\"},\"downloads\":-1,\"filename\":\"econ_ark-0.17.0.tar.gz\",\"has_sig\":false,\"md5_digest\":\"94efa45ada9ded9a094d4ea70cf22231\",\"packagetype\":\"sdist\",\"python_version\":\"source\",\"requires_python\":\">=3.10\",\"size\":17423480,\"upload_time\":\"2026-01-05T18:44:58\",\"upload_time_iso_8601\":\"2026-01-05T18:44:58.975098Z\",\"url\":\"https://files.pythonhosted.org/packages/e7/e7/c330a15890c2f9dde43e3371bdd39a01f749242bf9fbb625e82b23be7907/econ_ark-0.17.0.tar.gz\",\"yanked\":false,\"yanked_reason\":null}],\"vulnerabilities\":[]}\n" -} -``` -User decision: **accepted** - -Status: **completed** - - -
-
- ---- - - - - - ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder.md - -
-
- ---- - - -
-Tool use: **ripgrep_raw_search** - - -Parameters: - -```json -{ - "pattern": "cite2c|jupyter.contrib|jupyter_contrib", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "caseInsensitive": false -} -``` -Result: - -```json -{ - "success": { - "pattern": "cite2c|jupyter.contrib|jupyter_contrib", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "outputMode": "content", - "workspaceResults": { - "/Volumes/Sync/GitHub/econ-ark/ballpark": { - "content": { - "matches": [ - { - "file": "./tools/Already-Partway-In-Econ-ARK/blSolving/blSolving.ipynb", - "matches": [ - { - "lineNumber": 1534, - "content": " \"<div class=\\\"cite2c-biblio\\\"></div>\"" - }, - { - "lineNumber": 1539, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/TaxingWomen/TaxingWomen.ipynb", - "matches": [ - { - "lineNumber": 278, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimumDebt/OptimumDebt.ipynb", - "matches": [ - { - "lineNumber": 238, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/MK3TagTax/MK3TagTax_Slides.ipynb", - "matches": [ - { - "lineNumber": 484, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK.ipynb", - "matches": [ - { - "lineNumber": 626, - "content": " \"<div class=\\\"cite2c-biblio\\\"></div>\"" - }, - { - "lineNumber": 631, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./empirical/Results-That-Beg-For-A-Model/dpFamilyLaborAssets/WangTao_dpFamilyLaborAssets.ipynb", - "matches": [ - { - "lineNumber": 395, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./empirical/Results-That-Beg-For-A-Model.ipynb", - "matches": [ - { - "lineNumber": 195, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./binder/requirements.txt", - "matches": [ - { - "lineNumber": 5, - "content": "jupyter_contrib_nbextensions" - }, - { - "lineNumber": 6, - "content": "cite2c" - } - ] - }, - { - "file": "./binder/postBuild.bat", - "matches": [ - { - "lineNumber": 1, - "content": "jupyter contrib nbextension install --user" - }, - { - "lineNumber": 3, - "content": "python -m cite2c.install" - } - ] - }, - { - "file": "./binder/postBuild", - "matches": [ - { - "lineNumber": 2, - "content": "jupyter contrib nbextension install --user" - }, - { - "lineNumber": 4, - "content": "python -m cite2c.install" - }, - { - "lineNumber": 8, - "content": "cm.update('cite2c', {'zotero':{\"user_id\": \"5043554\",\"username\": \"econ-ark\",\"access_token\": \"XZpH9NsoAZmDMmjLKiy8xMXX\"}})" - } - ] - } - ], - "totalLines": 16, - "totalMatchedLines": 16 - } - } - } - } -} -``` -Status: **completed** - - -
-
- ---- - - -Here’s an assessment of the repo and what needs to change for the environment and content to work reliably. - ---- - -## Ballpark Repo Assessment - -### 1. **Environment: Requirements are outdated** - -`binder/requirements.txt` pins versions from around 2017–2018: - -```1:8:binder/requirements.txt -matplotlib==2.1.2 -numpy==1.14.0 -ipywidgets==7.2.1 -scipy==1.0.0 -jupyter_contrib_nbextensions -cite2c -econ-ark -``` - -Problems: - -- **numpy 1.14 / scipy 1.0** – Very old; current econ-ark expects scipy ≥ 1.10 and modern numpy. -- **matplotlib 2.1.2** – Old; econ-ark 0.17.0 expects matplotlib ≥ 3.6. -- **econ-ark** – Latest (0.17.0) needs Python ≥ 3.10 and modern scientific stack. -- **jupyter_contrib_nbextensions** – Classic-only, largely superseded. -- **cite2c** – Classic notebook extension; may be unmaintained and incompatible with newer Jupyter. - -With these pins, Binder is unlikely to produce a working environment, and econ-ark would conflict with the pinned libraries. - -### 2. **Security: Exposed Zotero token** - -`binder/postBuild` contains: - -```5:9:binder/postBuild -result=$(python < -
-Tool use: **ripgrep_raw_search** - - -Parameters: - -```json -{ - "pattern": "cite2c|data-cite|cite data-cite", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "glob": "*.ipynb", - "outputMode": "content", - "contextBefore": 0, - "contextAfter": 0, - "caseInsensitive": false -} -``` -Result: - -```json -{ - "success": { - "pattern": "cite2c|data-cite|cite data-cite", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "outputMode": "content", - "workspaceResults": { - "/Volumes/Sync/GitHub/econ-ark/ballpark": { - "content": { - "matches": [ - { - "file": "./tools/Already-Partway-In-Econ-ARK/blSolving/blSolving.ipynb", - "matches": [ - { - "lineNumber": 9, - "content": " \"- <cite data-cite=\\\"6202365/ECL3ZAR7\\\"></cite>\\n\"," - }, - { - "lineNumber": 10, - "content": " \"- Notebook created by Seungcheol Lee from slides by <cite data-cite=\\\"6202365/ECL3ZAR7\\\"></cite>\\n\"," - }, - { - "lineNumber": 19, - "content": " \"Bayer-Luetticke depart from the Reiter (2009) perturbation method and prodvide an accessible algorithm that can deal with high-dimensional heterogeneity. <cite data-cite=\\\"6202365/44QWDL5Y\\\"></cite>\\n\"," - }, - { - "lineNumber": 1534, - "content": " \"<div class=\\\"cite2c-biblio\\\"></div>\"" - }, - { - "lineNumber": 1539, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/TaxingWomen/TaxingWomen.ipynb", - "matches": [ - { - "lineNumber": 278, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/OptimumDebt/OptimumDebt.ipynb", - "matches": [ - { - "lineNumber": 238, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK/MK3TagTax/MK3TagTax_Slides.ipynb", - "matches": [ - { - "lineNumber": 484, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./models/We-Would-Like-In-Econ-ARK.ipynb", - "matches": [ - { - "lineNumber": 14, - "content": " \"## Household Heterogeneity and Macroeconomics <cite data-cite=\\\"6202365/VTRHJVRS\\\"></cite>\\n\"," - }, - { - "lineNumber": 111, - "content": " \"### <cite data-cite=\\\"6202365/7AWGTUBV\\\"></cite>\\n\"," - }, - { - "lineNumber": 242, - "content": " \"### <cite data-cite=\\\"6202365/S3BVJTND\\\"></cite>\\n\"," - }, - { - "lineNumber": 315, - "content": " \"### <cite data-cite=\\\"6202365/EAURCTHD\\\"></cite>\\n\"," - }, - { - "lineNumber": 402, - "content": " \"### <cite data-cite=\\\"6202365/PM9X2PEX\\\"></cite>\\n\"," - }, - { - "lineNumber": 440, - "content": " \"### <cite data-cite=\\\"6202365/KABXIQRL\\\"></cite>\\n\"," - }, - { - "lineNumber": 458, - "content": " \"### <cite data-cite=\\\"6202365/22AQK4AT\\\"></cite>\\n\"," - }, - { - "lineNumber": 547, - "content": " \"### <cite data-cite=\\\"6202365/Y5E7ZLQ9\\\"></cite>\\n\"," - }, - { - "lineNumber": 626, - "content": " \"<div class=\\\"cite2c-biblio\\\"></div>\"" - }, - { - "lineNumber": 631, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./empirical/Results-That-Beg-For-A-Model/dpFamilyLaborAssets/WangTao_dpFamilyLaborAssets.ipynb", - "matches": [ - { - "lineNumber": 12, - "content": " \"### <cite data-cite=\\\"6202365/DZGAF49Q\\\"></cite>\\n\"," - }, - { - "lineNumber": 395, - "content": " \"cite2c\": {" - } - ] - }, - { - "file": "./empirical/Results-That-Beg-For-A-Model.ipynb", - "matches": [ - { - "lineNumber": 7, - "content": " \"<cite data-cite=\\\"6202365/5VEFIEGG\\\"></cite># Papers With Empirical Results That Beg For A Model\"" - }, - { - "lineNumber": 15, - "content": " \"### <cite data-cite=\\\"undefined\\\"></cite>\\n\"," - }, - { - "lineNumber": 57, - "content": " \"### <cite data-cite=\\\"6202365/TF9DT4MV\\\"></cite>\\n\"," - }, - { - "lineNumber": 96, - "content": " \"### <cite data-cite=\\\"6202365/LZWPDMW2\\\"></cite>\\n\"," - }, - { - "lineNumber": 125, - "content": " \"### <cite data-cite=\\\"6202365/3ANTIM9P\\\"></cite>\\n\"," - }, - { - "lineNumber": 171, - "content": " \"### <cite data-cite=\\\"6202365/UXGFFYVL\\\"></cite>\\n\"," - }, - { - "lineNumber": 195, - "content": " \"cite2c\": {" - } - ] - } - ], - "totalLines": 27, - "totalMatchedLines": 27 - } - } - } - } -} -``` -Status: **completed** - - -
- - ---- - - -
- Tool use: **web_search** • Searched web `undefined` • **1** results - -| Title | URL | Chunk | -|-------|-----|-------| -| Web search results for query: cite2c jupyter notebook extension Zotero citation | | Links:
1. [Search code, repositories, users, issues, pull requests...](https://github.com/takluyver/cite2c)
2. [GitHub - krassowski/jupyterlab-citation-manager: Citation Manager for JupyterLab using Zotero Web API](https://github.com/krassowski/jupyterlab-citation-manager)
3. [cite2c](https://pypi.org/project/cite2c/)
4. [Jupyter notebook with bibtex citations](https://stackoverflow.com/questions/30927954/jupyter-notebook-with-bibtex-citations)
5. [jupyterlab-citation-manager 1.0.0](https://pypi.org/project/jupyterlab-citation-manager/)

# cite2c Jupyter Extension and Zotero Integration

**cite2c** is a Jupyter Notebook extension that enables citations in notebooks using Zotero libraries.[1][3]

## Key Features

cite2c provides:[3]
- A UI for finding citations from a Zotero library and inserting them into Markdown cells
- Two toolbar buttons: one to insert citations at the current point in a Markdown cell, and another to insert a bibliography
- Citation rendering via citeproc-js when Markdown cells are rendered
- Support for both inline citations and bibliographies

## Installation

Install via pip:[3]
```
pip install cite2c
python -m cite2c.install
```

It requires Jupyter Notebook 4.2 or above.[3]

## How It Works

Citations are stored in the notebook metadata and referenced by ID. The extension integrates with Zotero to access your reference library.[3]

## Alternative: JupyterLab Citation Manager

For JupyterLab users, there's a newer extension called **jupyterlab-citation-manager**[2][5] which offers similar functionality with Zotero integration via the Zotero Web API. It features citation searching, multiple citation styles support, and stores reference data directly in notebook metadata.[5] | - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/models.md - -
-
- ---- - - - - - ---- - - -
-Tool use: **web_fetch** - - -Parameters: - -```json -{ - "url": "https://github.com/krassowski/jupyterlab-citation-manager" -} -``` -Result: - -```json -{ - "url": "https://github.com/krassowski/jupyterlab-citation-manager", - "markdown": "# krassowski/jupyterlab-citation-manager\n\nCitation Manager for JupyterLab using Zotero Web API\n\n⭐ 75 stars | 🍴 2 forks\n\n## Links\n\n- [Repository](https://github.com/krassowski/jupyterlab-citation-manager)\n- [Issues](https://github.com/krassowski/jupyterlab-citation-manager/issues)\n- [Pull Requests](https://github.com/krassowski/jupyterlab-citation-manager/pulls)\n\n## Files\n\n- [.github/workflows/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/.github/workflows)\n- [binder/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/binder)\n- [docs/images/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/docs/images)\n- [jupyter-config/server-config/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/jupyter-config/server-config)\n- [jupyterlab_citation_manager/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/jupyterlab_citation_manager)\n- [schema/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/schema)\n- [src/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/src)\n- [style/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/style)\n- [tests/notebooks/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/tests/notebooks)\n- [ui-tests/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/ui-tests)\n- [.gitignore](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/.gitignore)\n- [.gitmodules](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/.gitmodules)\n- [.prettierignore](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/.prettierignore)\n- [.yarnrc.yml](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/.yarnrc.yml)\n- [CHANGELOG.md](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/CHANGELOG.md)\n- [LICENSE](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/LICENSE)\n- [README.md](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/README.md)\n- [install.json](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/install.json)\n- [package.json](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/package.json)\n- [pyproject.toml](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/pyproject.toml)\n- [setup.py](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/setup.py)\n- [tsconfig.json](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/tsconfig.json)\n- [yarn.lock](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/yarn.lock)\n\n## README\n\n# jupyterlab-citation-manager\n\nStatus: Work In Progress. Not ready for production environments, may contains bugs.\nFeedback on any aspect of this extension is welcome.\n\nCitation Manager for JupyterLab:\n\n- enables adding citations to Jupyter notebooks in Markdown cells,\n\n- keeps the bibliography in sync with the citations in the document,\n\n- supports thousands of citation styles,\n\n- offers a way to efficiently search through your collection of references,\n\n- integrates with the Zotero® service (Connector for Zotero) by default,\n\n- is modular in design, allowing for integration of other reference managers in the future.\n\nThe data of each reference (a.k.a. citable item) is stored in the notebook metadata,\nwhile a mapping between citation ID and the citable items is stored in the cell metadata.\n\n- storing full data of each citable item in the notebook enables:\n\ncollaboration between multiple users with separate Zotero collections,\nretaining the data for citation which got removed from private collection.\n\n- storing mapping between citation and citable items in the cell metadata allows to copy cells between notebooks.\n\n## Usage\n\n### Authenticate with Zotero\n\nTo enable you to access your reference list you will need to obtain an access API key [from your Zotero account](https://www.zotero.org/settings/keys/new).\nThe most basic, read-only key is sufficient (and recommended). The key will be stored in your settings, so you will only need to enter it once.\n\n### Insert citation\n\nInsert citation by clicking on the insert citation button in the toolbar of your notebook () or pressing Alt + C (hint: shortcut are customizable in Advanced Settings Editor).\nStart typing to filter references by title, authors or year.\n\n### Insert bibliography\n\nInsert bibliography by clicking on the () or pressing Alt + B.\n\n### Change style\n\nTo change the citation style go to the sidebar () and click on () or press Alt + S.\nOnly a subset of generic styles will be shown initially; start typing a name to find more specialised styles.\n\n### Synchronise references\n\nTo synchronise your collection of references go to the sidebar () and click on () or press Alt + U.\nUpdating can take a few seconds; a progress bar will appear on the status bar to keep you updated (if you have it enabled).\n\n### Explore your collection\n\nTo get the details on references in your collections without leaving JupyterLab open the sidebar (),\nand start typing to find item of interest. You will be able to preview the abstract, check metadata and even\nopen the article inside JupyterLab (or in a new browser tab - depending on your preference).\n\nReferences with citations in the current document will be show on top when opening the explorer\nand enable a quick preview of citation context and navigation to the relevant place in the document\n(by clicking on the citation context).\n\n### Auto-migrate existing citations\n\nWhen opening a notebook, the extension will automatically detect citations in the following formats:\n\n- cite2c, e.g. `` with associated notebook-level metadata,\n\n- DOI-links, e.g. `[(Krassowski et al, 2021)](https://doi.org/10.3389/fcell.2021.626821)`\n(the parentheses in the link label are used as an indicator distinguishing citations from non-citation DOI links)\n\nand ask for your permission to migrate them to Citation Manager format.\nOnly citations inside of markdown cells will be detected.\n\nThe migrated citations are stored separately from the citations from other providers (such as Zotero),\nunless an exact match for given ID, DOI, URL or title and list of authors is found among items available\nfrom reference providers (like Zotero), in which case the item from the provider is used.\n\n### Exporting to LaTeX\n\nCitation Manager supports LaTeX as one of the output formats. For now the citations are embedded as plain-text,\nwhile the bibliography uses semantic `thebibliography` LaTeX environment.\nTo configure notebook to export citations to LaTeX:\n\n- Go to `Advanced Settings Editor` -> `Citation Manager` and change the default `outputFormat` to `latex`.\n\n- Insert bibliography in a cell, but instead of using `Markdown` cell, use `Raw` cell\n\n- Open `Property Inspector` sidebar and change `Raw NBConvert Format` to `LaTeX` (you need to have the `Raw` cell selected for the dropdown to appear)\n\n- From `File` menu select `Save and Export Notebook As…` and choose `LaTeX`\n\n- Compile the resulting `.tex` to desired output such as PDF with preferred tool (e.g. `pdflatex` on Linux)\n\n## Requirements\n\n- JupyterLab >= 3.3\n\n- Modern browser (with ES 2019 support, e.g. Firefox 64+, or Chrome 73+)\n\n- [Zotero account](https://www.zotero.org/user/register)\n\n## Install\n\nTo install the extension, execute:\n\n```shell\npip install jupyterlab-citation-manager\n```\n\n## Uninstall\n\nTo remove the extension, execute:\n\n```shell\npip uninstall jupyterlab-citation-manager\n```\n\n## Advanced Usage\n\n### Citation clusters\n\nThis extension enables creation of citation clusters, this is a group of citations that are rendered together,\nfollowing the chosen citation style. You can create a citation cluster manually by editing cell metadata.\n\nSupport for creation and edition of citation cluster from the graphical interface is planned.\n\n### Citation styles\n\nThis extension includes thousands citation styles form the\n[official repository](https://github.com/citation-style-language/styles) of\n[Citation Language Styles](https://citationstyles.org/) (CSL) project.\n\nIf you want to add a custom citation style, you can do so by placing a `.csl` file in `csl-styles` folder in one of the `data` locations as returned by:\n\n```shell\njupyter --paths\n```\n\nThe `.csl` file should follow CSL v1.0.1 specification (see [official CSL specification](https://docs.citationstyles.org/en/stable/specification.html)).\n\n#### Example\n\nIf `jupyter --paths` looks like:\n\n```\nconfig:\n/home/your_name/.jupyter\n/usr/local/etc/jupyter\n/etc/jupyter\ndata:\n/home/your_name/.local/share/jupyter\n/usr/local/share/jupyter\n/usr/share/jupyter\nruntime:\n/home/your_name/.local/share/jupyter/runtime\n\n```\n\nand you want to add your modified version of APA style, you would put `my-custom-apa.csl` in `/home/your_name/.local/share/jupyter/csl-styles` (you will need to create this folder), so that the final structure looks similar to:\n\n```\n/home/your_name/.local/share/jupyter\n├── csl-styles\n│   └── my-custom-apa.csl\n├── nbsignatures.db\n├── notebook_secret\n└── runtime\n\n```\n\n## Contributing\n\n### Development install\n\nNote: You will need NodeJS to build the extension package.\n\nThe `jlpm` command is JupyterLab's pinned version of\n[yarn](https://yarnpkg.com/) that is installed with JupyterLab. You may use\n`yarn` or `npm` in lieu of `jlpm` below.\n\n```shell\n# Clone the repo to your local environment\n# Change directory to the jupyterlab-citation-manager directory\n# Fetch build requirements\njlpm run bootstrap\n# Install package in development mode\npip install -e .\n# Link your development version of the extension with JupyterLab\njupyter labextension develop . --overwrite\n# Rebuild extension Typescript source after making changes\njlpm run build\n```\n\nYou can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension.\n\n```shell\n# Watch the source directory in one terminal, automatically rebuilding when needed\njlpm run watch\n# Run JupyterLab in another terminal\njupyter lab\n```\n\nWith the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).\n\nBy default, the `jlpm run build` command generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command:\n\n```shell\njupyter lab build --minimize=False\n```\n\n### Development uninstall\n\n```shell\npip uninstall jupyterlab-citation-manager\n```\n\nIn development mode, you will also need to remove the symlink created by `jupyter labextension develop`\ncommand. To find its location, you can run `jupyter labextension list` to figure out where the `labextensions`\nfolder is located. Then you can remove the symlink named `jupyterlab-citation-manager` within that folder.\n\n### Updating citation styles\n\nThe citation styles are retrieved from the CSL repository using git submodules\nand reside in the [jupyterlab-citation-data](https://github.com/krassowski/jupyterlab-citation-data) repository.\n\nYou can update the submodule to fetch the most recent citation styles:\n\n```shell\n# fetch the latest styles from the currently tracked CSL version branch\ngit submodule update csl-styles\n# store the information about the most recent commit in version control\ngit commit csl-styles\n```\n\nTo update the version branch:\n\n```shell\n# replace v1.0.1 with the version to track\ngit submodule set-branch --branch v1.0.1 csl-styles\ngit commit csl-styles\n```\n\n### Legal notes\n\n#### Connector for Zotero\n\nZotero is a registered trademark of the [Corporation for Digital Scholarship](http://digitalscholar.org/);\nour extension (Connector for Zotero) is not affiliated with the Corporation in any way.\n\n#### CSL styles\n\nThe CSL styles are contributed by individual authors to the [CSL project](https://citationstyles.org/);\nall the styles distributed with this extension come from the [Citation Language Styles](https://github.com/citation-style-language/styles)\nand are released under the [Creative Commons Attribution-ShareAlike 3.0 Unported license](https://creativecommons.org/licenses/by-sa/3.0/).\n\n#### Icons\n\nPlease see the [`style/icons/README.md`](https://github.com/krassowski/jupyterlab-citation-manager/blob/main/style/icons/README.md)\nfor information on the creators and licences of icons included in the distribution.\n\n### citeproc-js\n\n`jupyterlab-citation-manager` uses `citeproc-js` to format citations and bibliography text; `citeproc-js` is\ndual-licenced under CPAL 1.0 (or newer) or AGPLv3 (or newer); in order to allow for the distribution of this extension\nwith other works the CPAL 1.0 licence was adopted for re-distribution of `cireproc-js` together with this extension.\nThe Exhibit A of `citeproc-js` CPAL 1.0 licence is presented below for informational purposes:\n\n> EXHIBIT A. Common Public Attribution License Version 1.0.\n> “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at [https://opensource.org/license/cpal_1-0/](https://opensource.org/license/cpal_1-0/) The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.\n> Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.\n> The Original Code is citeproc-js.\n> The Original Developer is not the Initial Developer and is `________`. If left blank, the Original Developer is the Initial Developer.\n> The Initial Developer of the Original Code is Frank Bennett. All portions of the code written by Frank Bennett are Copyright (c) 2009-2015. All Rights Reserved.\n> Contributor `___________`.\n> Alternatively, the contents of this file may be used under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE (the AGPLv3 License), in which case the provisions of AGPLv3 License are applicable instead of those above.\n> If you wish to allow use of your version of this file only under the terms of the AGPLv3 License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the AGPLv3 License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the AGPLv3 License.”" -} -``` -User decision: **accepted** - -Status: **completed** - - -
-
- ---- - - -
-Tool use: **web_fetch** - - -Parameters: - -```json -{ - "url": "https://github.com/takluyver/cite2c" -} -``` -Result: - -```json -{ - "url": "https://github.com/takluyver/cite2c", - "markdown": "# takluyver/cite2c\n\nCitations in the Jupyter Notebook. Contribute to takluyver/cite2c development by creating an account on GitHub.\n\n⭐ 323 stars | 🍴 34 forks\n\n## Links\n\n- [Repository](https://github.com/takluyver/cite2c)\n- [Issues](https://github.com/takluyver/cite2c/issues)\n- [Pull Requests](https://github.com/takluyver/cite2c/pulls)\n\n## Files\n\n- [cite2c/](https://github.com/takluyver/cite2c/tree/master/cite2c)\n- [.gitignore](https://github.com/takluyver/cite2c/blob/master/.gitignore)\n- [LICENSE](https://github.com/takluyver/cite2c/blob/master/LICENSE)\n- [README.md](https://github.com/takluyver/cite2c/blob/master/README.md)\n- [Sample.ipynb](https://github.com/takluyver/cite2c/blob/master/Sample.ipynb)\n- [bloodhound.js](https://github.com/takluyver/cite2c/blob/master/bloodhound.js)\n- [flit.ini](https://github.com/takluyver/cite2c/blob/master/flit.ini)\n- [search_screenshot.png](https://github.com/takluyver/cite2c/blob/master/search_screenshot.png)\n- [toolbar_buttons.png](https://github.com/takluyver/cite2c/blob/master/toolbar_buttons.png)\n\n## README\n\nLive citations in IPython notebooks\n\nTo install this:\n\n```\npython3 -m pip install cite2c\npython3 -m cite2c.install\n(Start/Restart the Notebook server)\n\n```\n\nIt requires Jupyter Notebook 4.2 or above.\n\nAfter (re)starting the notebook server, you will see two new toolbar buttons: .\nThe left one inserts a citation at the current point in a Markdown cell.\nThe right one inserts a bibliography.\n\nThis extension has two main components:\n\n- UI for finding citations from a Zotero library and inserting them into Markdown cells.\nThe citations are stored in the notebook metadata, and referenced by an ID.\n\n- Code to run [citeproc-js](https://bitbucket.org/fbennett/citeproc-js/wiki/Home) when a Markdown cell is rendered, rendering both bibliographies and inline citations." -} -``` -User decision: **accepted** - -Status: **completed** - - -
-
- ---- - - -
-Tool use: **list_dir_v2** - - -Parameters: - -```json -{ - "targetDirectory": "/Volumes/Sync/GitHub/econ-ark/ballpark" -} -``` -Result: - -```json -{ - "directoryTreeRoot": { - "absPath": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "childrenFiles": [ - { - "name": ".gitignore" - }, - { - "name": "README.md" - } - ], - "childrenWereProcessed": true - } -} -``` -Status: **completed** - - -
-
- ---- - - -
- Tool use: **web_search** • Searched web `undefined` • **1** results - -| Title | URL | Chunk | -|-------|-----|-------| -| Web search results for query: uv python package manager Binder mybinder | | Links:
1. [Installing uv](https://docs.astral.sh/uv/getting-started/installation)
2. [uv · PyPI](https://pypi.org/project/uv)
3. [CLI Reference](https://docs.astral.sh/uv/reference/cli/)
4. [Binder](https://mybinder.org/)
5. [Running scripts](https://docs.astral.sh/uv/guides/scripts/#using-different-python-versions)

# UV Python Package Manager and Binder

**uv** is an extremely fast Python package and project manager written in Rust.[2] It provides a complete suite of tools for Python development, including dependency management, virtual environment creation, and project initialization.[3]

## Key Features of uv

uv offers commands for:[3]
- Adding and removing dependencies (`uv add`, `uv remove`)
- Running scripts and projects (`uv run`)
- Managing virtual environments (`uv venv`)
- Building and publishing packages (`uv build`, `uv publish`)
- Managing Python versions (`uv python`)
- A pip-compatible interface (`uv pip`)

## Installation

uv can be installed via:[1]
- Standalone installer (macOS, Linux, Windows)
- Package managers (Homebrew, MacPorts, WinGet, Scoop)
- PyPI with `pip install uv` or `pipx install uv`
- Docker image at `ghcr.io/astral-sh/uv`
- Cargo from crates.io

## Binder and mybinder.org

**Binder** (mybinder.org) is a service that converts Git repositories containing Jupyter notebooks into interactive, executable environments.[4] It works by:
1. Accepting repository URLs and dependency files (like `requirements.txt` or `environment.yml`)
2. Building a Docker image with the specified dependencies
3. Hosting the notebooks on JupyterHub for live interaction

Binder supports various repository sources including GitHub, GitLab, Zenodo, and others.[4] While the search results don't explicitly connect uv to Binder, dependency files that uv can manage would be compatible with Binder's build process. | - -
-
- ---- - - - - - ---- - - -
- Tool use: **web_search** • Searched web `undefined` • **1** results - -| Title | URL | Chunk | -|-------|-----|-------| -| Web search results for query: Binder Dockerfile uv pyproject.toml | | Links:
1. [Use a Dockerfile for your Binder repository #](https://mybinder.readthedocs.io/en/latest/tutorials/dockerfile.html)
2. [Dockerfile with multi-layer dependencies using uv and pyproject.toml](https://ledkvu.com/posts/adapt-dockerfile-with-uv/)
3. [Best practices for using Python & uv inside Docker](https://ashishb.net/programming/using-python-uv-inside-docker/)
4. [Using uv in Docker](https://docs.astral.sh/uv/guides/integration/docker/#developing-in-a-container)
5. [Search code, repositories, users, issues, pull requests...](https://github.com/binder-examples/minimal-dockerfile)

# Binder, Dockerfile, uv, and pyproject.toml

## Using Dockerfile with Binder

Binder supports Dockerfiles as an advanced configuration option, though it's recommended as a last resort after trying standard configuration files.[1] When using a Dockerfile with Binder, it must include a recent version of JupyterHub to function on Binder deployments.[1]

## Using uv in Docker

**uv** is a modern Python package manager that can be efficiently integrated into Docker workflows.[2][3][4]

**Best practices include:**

- Use pre-built uv Docker images from `ghcr.io/astral-sh/uv`, available with various base images (Alpine, Debian, Python-based).[4]
- For production, employ multi-stage builds to remove uv from the final image, reducing size.[3]
- Copy only `uv.lock` (not `pyproject.toml`) in the first stage to optimize Docker layer caching and prevent image invalidation from non-dependency changes.[3]
- Run `uv sync --no-dev --frozen` to install dependencies deterministically.[3]

**Example structure:**[3]
```
FROM ghcr.io/astral-sh/uv:trixie-slim AS builder
# Build dependencies
FROM python:3.x-slim
# Copy built dependencies from builder stage
```

## Multi-layer Dependencies

When using uv with `pyproject.toml` in Docker, you can optimize the build process through multi-stage builds to create separate dependency layers, improving build times during development and reducing final image size for production.[2]

The uv project provides comprehensive documentation and example repositories demonstrating these practices.[2][4] | - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/requirements.txt - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/postBuild - -
-
- ---- - - - - - ---- - - -
-Tool use: **web_fetch** - - -Parameters: - -```json -{ - "url": "https://mybinder.readthedocs.io/en/latest/tutorials/dockerfile.html" -} -``` -Result: - -```json -{ - "url": "https://mybinder.readthedocs.io/en/latest/tutorials/dockerfile.html", - "markdown": "Use a Dockerfile for your Binder repository &#8212; Binder 0.1b documentation\n[Skip to main content](#main-content)\n**Back to top**Ctrl+K\n[![Binder 0.1b documentation - Home](../_static/logo.png)![Binder 0.1b documentation - Home](../_static/logo-dark.png)](../index.html)\n**SearchCtrl+K\n******\n* [![Go to mybinder.org](../_static/favicon.png)](https://mybinder.org)\n* [**GitHub repository](https://github.com/jupyterhub/binder)\n* [**Twitter account](https://twitter.com/mybinderteam)\n* [**Community Forum](https://discourse.jupyter.org/c/binder/12)\n[**Support Binder](https://mybinder.readthedocs.io/en/latest/about/support.html)\n**SearchCtrl+K\n******\n* [![Go to mybinder.org](../_static/favicon.png)](https://mybinder.org)\n* [**GitHub repository](https://github.com/jupyterhub/binder)\n* [**Twitter account](https://twitter.com/mybinderteam)\n* [**Community Forum](https://discourse.jupyter.org/c/binder/12)\n[**Support Binder](https://mybinder.readthedocs.io/en/latest/about/support.html)\n# Use a Dockerfile for your Binder repository[#](#use-a-dockerfile-for-your-binder-repository)\nBinder supports configuration files for package\ninstallation, environment specification, post-build shell scripts, and more.\nIt should be possible to create the environment that you want*without*using a Dockerfile. For more information about the different environment\nconfiguration files that Binder can create, see[How can I prepare a repository for Binder?](../introduction.html#preparing-repositories).\nHowever, in case you cannot meet all your needs with these configuration\nfiles, it is also possible to use a Dockerfile to define your environment.\nThis is considered an**advanced use case**, and we cannot guarantee that the\nDockerfile will work.\nThis guide will help you in preparing your Dockerfile so that it has the\ncomponents needed to run JupyterHub, allowing it to work on Binder\ndeployments.\nImportant\nWe recommend against using a`Dockerfile`as a way to make your repository\nusable with binder. Use them as a last resort after all methods in[How can I prepare a repository for Binder?](../introduction.html#preparing-repositories)have failed.\nNote\nBinder’s requirements for Dockerfiles are in beta and subject to change.\nDockerfiles may break on Binder from time to time during the beta period.\n## When should you use a Dockerfile?[#](#when-should-you-use-a-dockerfile)\nBelow are a few use-cases where you*might*want to use a Dockerfile with\nBinder.\n### When you must inherit from a popular Docker image[#](#when-you-must-inherit-from-a-popular-docker-image)\nIf you want to use a pre-existing Docker image, you may source it in your\nDockerfile. For example, this code sources the Jupyter-Scipy notebook:\n```\n# Note that there must be a tagFROMjupyter/scipy-notebook:cf6258237ff9\n```\nSee[Preparing your Dockerfile](#preparing-your-dockerfile)for instructions on how to\ndo this properly.\n### When you are building complex software[#](#when-you-are-building-complex-software)\nMost Binder configurations can be achieved without a Dockerfile.\nBefore resorting to a Dockerfile, we recommend trying to use`postBuild`commands for configuration. See[the repo2docker documentation](http://repo2docker.readthedocs.io/en/latest/)for examples.\n### When you’re using a language that is not directly supported[#](#when-you-re-using-a-language-that-is-not-directly-supported)\nBinder supports many languages, but not all of them. If your need to use\na different language, it may be possible to accomplish this with a Dockerfile.\nFor a list of languages that Binder supports with configuration files, see[the repo2docker documentation](http://repo2docker.readthedocs.io/en/latest/).\nNote\nWe welcome contributions to`repo2docker`to add support for new\nlanguages. If interested, please[open an issue](https://github.com/jupyter/repo2docker/issues).\n## Preparing your Dockerfile[#](#preparing-your-dockerfile)\nFor a Dockerfile to work on Binder, it must meet the following requirements:\n1. It must install a recent version of Jupyter Notebook and JupyterLab.\nThis should be installed via`pip`with the`notebook`and`jupyterlab`packages.\nSo in your dockerfile, you should have a command like:\n```\nRUNpython3-mpipinstall--no-cache-dirnotebookjupyterlab\n```\nNote\nIf you install[the classic notebook interface](https://jupyter-notebook.readthedocs.io/en/stable/)but not[JupyterLab](https://jupyterlab.readthedocs.io/), you must manually change your mybinder.org URLs from`/lab`to`/tree`as described[in the user interface documentation](https://mybinder.readthedocs.io/en/latest/howto/user_interface.html#jupyterlab).\nOtherwise, you might get a`404:NotFound`error when launching your project on binder.\nIf you would like to use the repository with an authenticated Binder you\nshould also install the`jupyterhub`package.\n```\nRUNpipinstall--no-cache-dirjupyterhub\n```\n2. It must explicitly specify a tag in the image you source.\nWhen sourcing a pre-existing Docker image with`FROM`,**a tag is required**. The tag*cannot*be`latest`. Note that tag\nnaming conventions differ between images, so we recommend using\nthe SHA tag of the image.\nHere’s an example of a Dockerfile`FROM`statement that would work.\n```\nFROMjupyter/scipy-notebook:cf6258237ff9\n```\nThe following examples would**not**work:\n```\nFROMjupyter/scipy-notebook\n```\nor\n```\nFROMjupyter/scipy-notebook:latest\n```\n3. It must set up a user whose uid is`1000`.\nIt is bad practice to run processes in containers as root, and on binder\nwe do not allow root container processes. If you are using an ubuntu or\ndebian based container image, you can create a user easily with the following\ndirectives somewhere in your Dockerfile:\n```\nARGNB\\_USER=jovyanARGNB\\_UID=1000ENVUSER${NB\\_USER}ENVNB\\_UID${NB\\_UID}ENVHOME/home/${NB\\_USER}RUNadduser--disabled-password\\\\--gecos&quot;Default user&quot;\\\\--uid${NB\\_UID}\\\\${NB\\_USER}\n```\nThis is the user that will be running the JupyterLab process\nwhen your repo is launched with binder. So any files you would like to\nbe writeable by the launched binder notebook should be owned by this user.\n4. It must copy its contents to the`$HOME`directory and change permissions.\nTo make sure that your repository contents are available to users,\nyou must copy all contents to`$HOME`and then make this folder\nowned by the user you created in step 3. If you used the snippet provided\nin step 3, you can accomplish this copying with the following snippet:\n```\n# Make sure the contents of our repo are in ${HOME}COPY.${HOME}USERrootRUNchown-R${NB\\_UID}${HOME}USER${NB\\_USER}\n```\nThis chown is required because Docker will be default\nset the owner to`root`, which would prevent users from editing files. Note that the repository\nshould in general be clone with`COPY`; although`RUNgitclone...`is a valid command for the`Dockerfile`, it does not invalidate the build cache of mybinder. Thus, if available, the the cached\nrepository will be used even after changes to the repository.\n5. It must accept command-line arguments. The Dockerfile will effectively be launched as:\n```\ndockerrun&lt;image&gt;jupyternotebook--NotebookApp.default\\_url=/lab/&lt;argumentsfromthemybinderlauncher&gt;\n```\nwhere {}`&lt;arguments...&gt;`includes important information automatically set by the binder\nenvironment, such as the port and token.\nIf your Dockerfile sets or inherits the Docker {}`ENTRYPOINT`instruction, the program\nspecified as the {}`ENTRYPOINT`*must*{}`exec`the arguments passed by docker. Inherited\nDockerfiles may unset the entrypoint with {}`ENTRYPOINT[]`.\nFor more information, and a shell wrapper example, please see the[Dockerfile best practices: ENTRYPOINT](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#entrypoint)documentation.\nYou can build and test your image locally like this.\n1. Try building your image.\n```\ndockerbuild-tmy-image.\n```\n2. Try starting a container from the image.\n```\ndockerrun-it--rm-p8888:8888my-imagejupyternotebook--NotebookApp.default\\_url=/lab/--ip=0.0.0.0--port=8888\n```\n3. Inspect the container from terminal.\nVerify your user has an id of`1000`and ownership of files in the home folder.\n```\ndockerrun-it--rmmy-imagebash\n```\n```\n# what username do i have?whoami# what user id do i have?id-u# what is the current working directory?pwd# who is the owner of the files in the users home directory?ls-alh\\~\n```\n## Ensuring reproducibility with Dockerfiles[#](#ensuring-reproducibility-with-dockerfiles)\nEnsuring that your Binder environment is reproducible requires extra\nconsiderations when using a Dockerfile. This section provides some guidelines\nfor making sure your Binder environment does not change in unexpected ways.\nAs mentioned above, make sure that you source your Dockerfile from a**tag**of another image. This ensures that you will continue building off of\nthe same image even if the image is updated to a new version.\nNext, make sure that all packages installed with your Dockerfile\nare pinned to specific versions. You should do this with the image you are\nsourcing as well.\n**On this page\n[**Edit on GitHub](https://github.com/jupyterhub/binder/edit/main/doc/tutorials/dockerfile.md)\n### This Page\n* [Show Source](../_sources/tutorials/dockerfile.md.txt)" -} -``` -User decision: **accepted** - -Status: **completed** - - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/models/We-Would-Like-In-Econ-ARK.ipynb - -
-
- ---- - - -
-Tool use: **list_dir_v2** - - -Parameters: - -```json -{ - "targetDirectory": "/Volumes/Sync/GitHub/econ-ark/ballpark/models" -} -``` -Result: - -```json -{ - "directoryTreeRoot": { - "absPath": "/Volumes/Sync/GitHub/econ-ark/ballpark/models", - "childrenWereProcessed": true - } -} -``` -Status: **completed** - - -
-
- ---- - - -
-Tool use: **list_dir_v2** - - -Parameters: - -```json -{ - "targetDirectory": "/Volumes/Sync/GitHub/econ-ark/ballpark/tools" -} -``` -Result: - -```json -{ - "directoryTreeRoot": { - "absPath": "/Volumes/Sync/GitHub/econ-ark/ballpark/tools", - "childrenWereProcessed": true - } -} -``` -Status: **completed** - - -
-
- ---- - - - - - ---- - - -
- Tool use: **web_search** • Searched web `undefined` • **1** results - -| Title | URL | Chunk | -|-------|-----|-------| -| Web search results for query: uv pip install --system into existing environment | | Links:
1. [How can I install packages using `uv pip install` without creating a virtual environment in CI/CD pipeline?](https://stackoverflow.com/questions/78726750/how-to-install-packages-using-uv-pip-install-without-creating-virtual-environm)
2. [Using Python environments](https://docs.astral.sh/uv/pip/environments/)
3. [Let's set up your homepage Select a few topics you're interested in:](https://stackoverflow.com/questions/78726750/how-can-i-install-packages-using-uv-pip-install-without-creating-a-virtual-env)
4. [Compatibility with pip and pip-tools](https://docs.astral.sh/uv/pip/compatibility/)
5. [Search code, repositories, users, issues, pull requests...](https://github.com/astral-sh/uv/issues/10300)

# Using `uv pip install --system` with Existing Environments

To install packages into an existing Python environment using `uv`, use the `--system` flag:[1]

```
uv pip install --system
```

The `--system` option instructs `uv` to use the first Python found in the system `PATH`.[1]

## Alternative Methods

You can also install into arbitrary Python environments using:[2]

- **`VIRTUAL_ENV` environment variable**: Set `VIRTUAL_ENV=/path/to/venv` to install into a specific virtual environment
- **`--python` argument**: Use `uv pip install --python /path/to/python` to install into the environment linked to a specific interpreter

## Important Warnings

⚠️ The `--system` flag is **intended for CI/CD environments** and should be used with caution, as it modifies the system Python installation.[1] Generally, best practice is to avoid modifying a Python installation's environment directly, especially for OS-managed Python installations.[2]

If you encounter errors about the Python installation being "externally managed," this typically means the system has protections against modifications.[5] In such cases, creating a virtual environment with `uv venv` is the recommended approach.[5] | - -
-
- ---- - - -
Tool use: **todo_write** • Todo List - -- [-] Create pyproject.toml with econ-ark deps, uv setup -- [ ] Address cite2c: document migration path to jupyterlab-citation-manager -- [ ] Fix models.md broken links with clear explanation -- [ ] Revamp Binder config for uv - -
-
- ---- - - - - - ---- - - -
- Tool use: **web_search** • Searched web `undefined` • **1** results - -| Title | URL | Chunk | -|-------|-----|-------| -| Web search results for query: repo2docker pyproject.toml support | | Links:
1. [Configuration Files](https://repo2docker.readthedocs.io/en/latest/config_files.html)
2. [Configuration files supported by repo2docker #](https://repo2docker.readthedocs.io/en/latest/configuration/index.html)
3. [](https://repo2docker.readthedocs.io/en/latest/_sources/config_files.rst.txt)
4. [The Reproducible Execution Environment Specification #](https://repo2docker.readthedocs.io/en/latest/specification.html)
5. [User guide #](https://repo2docker.readthedocs.io/en/latest/usage.html)

# repo2docker pyproject.toml Support

Yes, repo2docker supports `pyproject.toml` files for installing Python packages.[2]

`pyproject.toml` is listed as a configuration file for software development workflows.[2] Like `setup.py`, it can be used to install your repository as a Python package, though the documentation indicates repo2docker handles it similarly to how it processes other Python package installation files.

The file is recognized as part of repo2docker's supported configuration files (roughly in order of build priority) and falls under the development workflow category alongside other Python dependency management files like `requirements.txt`, `Pipfile`, and `setup.py`.[1][2] | - -
-
- ---- - - -
-Tool use: **ripgrep_raw_search** - - -Parameters: - -```json -{ - "pattern": "pyproject", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "caseInsensitive": false -} -``` -Result: - -```json -{ - "success": { - "pattern": "pyproject", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "outputMode": "content", - "workspaceResults": { - "/Volumes/Sync/GitHub/econ-ark/ballpark": { - "content": { - "matches": [ - { - "file": "./.specstory/history/2026-02-02_21-02Z-old-repository-update-assessment.md", - "matches": [ - { - "lineNumber": 2535, - "content": " \"markdown\": \"# krassowski/jupyterlab-citation-manager\\n\\nCitation Manager for JupyterLab using Zotero Web API\\n\\n⭐ 75 stars | 🍴 2 forks\\n\\n## Links\\n\\n- [Repository](https://github.com/krassowski/jupyterlab-citation-manager)\\n- [Issues](https://github.com/krassowski/jupyterlab-citation-manager/issues)\\n- [Pull Requests](https://github.com/krassowski/jupyterlab-citation-manager/pulls)\\n\\n## Files\\n\\n- [.github/workflows/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/.github/workflows)\\n- [binder/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/binder)\\n- [docs/images/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/docs/images)\\n- [jupyter-config/server-config/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/jupyter-config/server-config)\\n- [jupyterlab_citation_manager/](https://github.com/krassowski/jupyterlab-citation-manager/tree/main/jupyterlab_citation_manager)\\n- [schema/](https://github.com/kr [... omitted end of long line]" - }, - { - "lineNumber": 2644, - "content": " \"searchTerm\": \"Binder Dockerfile uv pyproject.toml\"" - } - ] - }, - { - "file": "./.gitignore", - "matches": [ - { - "lineNumber": 96, - "content": ".spyproject" - } - ] - } - ], - "totalLines": 3, - "totalMatchedLines": 3 - } - } - } - } -} -``` -Status: **completed** - - -
-
- ---- - - -Implementing changes: - - ---- - - - -
Tool use: **edit_file_v2** • Edit file: /Volumes/Sync/GitHub/econ-ark/ballpark/pyproject.toml - -
- -
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/postBuild.bat - -
-
- ---- - - -
-Tool use: **list_dir_v2** - - -Parameters: - -```json -{ - "targetDirectory": "/Volumes/Sync/GitHub/econ-ark/ballpark/binder" -} -``` -Result: - -```json -{ - "directoryTreeRoot": { - "absPath": "/Volumes/Sync/GitHub/econ-ark/ballpark/binder", - "childrenWereProcessed": true - } -} -``` -Status: **completed** - - -
-
- ---- - - - - - ---- - - -
-Tool use: **glob_file_search** • Searched codebase "undefined" • **4** results in **1** directory - -Directory: **/Volumes/Sync/GitHub/econ-ark/ballpark** (4 files) - -| File | -|------| -| `binder/runtime.txt` | -| `binder/requirements.txt` | -| `binder/postBuild.bat` | -| `binder/postBuild` | - -
-
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/README.md - -
-
- ---- - - - - - ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/runtime.txt - -
-
- ---- - - -
- Tool use: **web_search** • Searched web `undefined` • **1** results - -| Title | URL | Chunk | -|-------|-----|-------| -| Web search results for query: uv pyproject.toml project without package dependencies only | | Links:
1. [Project structure and files](https://docs.astral.sh/uv/concepts/projects/layout/)
2. [Creating projects](https://docs.astral.sh/uv/concepts/projects/init/#creating-a-minimal-project)
3. [Configuring projects](https://docs.astral.sh/uv/concepts/projects/config/)
4. [Working on projects](https://docs.astral.sh/uv/guides/projects/)
5. [Managing dependencies](https://docs.astral.sh/uv/concepts/projects/dependencies/)

# UV pyproject.toml Project Without Package Dependencies

To create a UV project with a `pyproject.toml` that has no package dependencies, you need a minimal configuration.[1]

## Minimal Project Definition

A minimal `pyproject.toml` requires only a name and version:[1]

```toml
[project]
name = "example"
version = "0.1.0"
```

## Creating a Project Without Dependencies

When you run `uv init`, it creates a project with an empty dependencies list by default:[2]

```toml
[project]
name = "example-app"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.11"
dependencies = []
```

The `dependencies = []` field explicitly indicates no package dependencies are required.[2]

## Key Points

- A project **does not require a build system** to avoid being installed as a package itself.[3] Without a build system defined, UV will only manage dependencies, not build or install the project.
- You can add optional metadata like `requires-python`, `description`, and `readme` without adding any dependencies.[2]
- The project environment is stored in `.venv` and a `uv.lock` file is created when you run commands like `uv run` or `uv sync`.[1]

This minimal setup is suitable for scripts and applications that don't require external package dependencies.[2] | - -
-
- ---- - - - - - ---- - - - -
Tool use: **edit_file_v2** • Edit file: /Volumes/Sync/GitHub/econ-ark/ballpark/pyproject.toml - -
- -
- ---- - - -
Tool use: **todo_write** • Todo List - -- [x] Create pyproject.toml with econ-ark deps, uv setup -- [-] Address cite2c: document migration path to jupyterlab-citation-manager -- [-] Fix models.md broken links with clear explanation -- [-] Revamp Binder config for uv - -
-
- ---- - - -Implementing Binder config and other updates. - - ---- - - - -
Tool use: **edit_file_v2** • Edit file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/requirements.txt - -
- -
- ---- - - - -
Tool use: **edit_file_v2** • Edit file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/runtime.txt - -
- -
- ---- - - - -
Tool use: **edit_file_v2** • Edit file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/postBuild - -
- -
- ---- - - -
Tool use: **delete_file** - -Explanation: undefined - - -
-
- ---- - - -Creating a Binder setup that uses uv: - - ---- - -An error occurred while fetching the URL - ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/postBuild - -
-
- ---- - - - - - ---- - - -
- Tool use: **web_search** • Searched web `undefined` • **1** results - -| Title | URL | Chunk | -|-------|-----|-------| -| Web search results for query: Binder Dockerfile example FROM jupyter | | Links:
1. [Use a Dockerfile for your Binder repository #](https://mybinder.readthedocs.io/en/latest/tutorials/dockerfile.html)
2. [Search code, repositories, users, issues, pull requests...](https://github.com/binder-examples/minimal-dockerfile)
3. [GitHub - binder-examples/jupyter-stacks: Binder example for using a Jupyter DockerStacks image](https://github.com/binder-examples/jupyter-stacks)
4. [Search code, repositories, users, issues, pull requests...](https://github.com/binder-project/example-dockerfile)
5. [](https://github.com/binder-examples)

# Binder Dockerfile Examples

Binder supports Dockerfiles with a `FROM jupyter` base image, though this is considered an advanced use case.[1]

## Basic Example

A simple Dockerfile can inherit from Jupyter Docker images:[1]

```dockerfile
FROM jupyter/scipy-notebook:cf6258237ff9
```

Note that a specific tag must be included in the FROM statement.[1]

## When to Use Dockerfiles

Dockerfiles are recommended only as a last resort after standard configuration methods fail. Use cases include:[1]
- Inheriting from pre-existing Docker images
- Building complex software that can't be configured with `postBuild` commands
- Using languages not directly supported by Binder

## Examples

There are several example repositories available:[2][3]
- **minimal-dockerfile**: A starting point template for custom Binder Dockerfiles[2]
- **jupyter-stacks**: Shows how to use pre-built Jupyter Docker Stack images with Binder[3]

## Important Requirements

For a Dockerfile to work on Binder, it must install a recent version of JupyterHub and meet specific criteria to function properly on Binder deployments.[1] Binder's Dockerfile requirements are still in beta and may change over time.[1] | - -
-
- ---- - - -Using uv in Binder's postBuild: - - ---- - - - -
Tool use: **edit_file_v2** • Edit file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/requirements.txt - -
- -
- ---- - - - -
Tool use: **edit_file_v2** • Edit file: /Volumes/Sync/GitHub/econ-ark/ballpark/binder/postBuild - -
- -
- ---- - - -Updating `models.md` and adding setup and cite2c documentation: - - ---- - - - -
Tool use: **edit_file_v2** • Edit file: /Volumes/Sync/GitHub/econ-ark/ballpark/models.md - -
- -
- ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/README.md - -
-
- ---- - - - - - ---- - - - -
Tool use: **edit_file_v2** • Edit file: /Volumes/Sync/GitHub/econ-ark/ballpark/README.md - -
- -
- ---- - - - - - ---- - - -
Tool use: **read_file_v2** • Read file: /Volumes/Sync/GitHub/econ-ark/ballpark/.gitignore - -
-
- ---- - - -
Tool use: **run_terminal_command_v2** • Run command: cd /Volumes/Sync/GitHub/econ-ark/ballpark && uv sync 2>&1 - -```bash -cd /Volumes/Sync/GitHub/econ-ark/ballpark && uv sync 2>&1 -``` - -``` --ne \033]0;econ-ark/ballpark (master)\007 -Using CPython 3.10.18 -Creating virtual environment at: .venv -Resolved 147 packages in 1.00s -Downloading notebook (13.8MiB) -Downloading llvmlite (35.5MiB) -Downloading jupyterlab (11.8MiB) -Downloading statsmodels (9.6MiB) -Downloading scipy (21.3MiB) -Downloading networkx (1.6MiB) -Downloading matplotlib (7.8MiB) -Downloading xarray (1.3MiB) -Downloading sqlalchemy (2.1MiB) -Downloading numpy (5.1MiB) -Downloading debugpy (5.1MiB) -Downloading fonttools (2.7MiB) -Downloading setuptools (1.0MiB) -Downloading pillow (4.4MiB) -Downloading numba (2.6MiB) -Downloading babel (9.7MiB) -Downloading jupyterlab-citation-data (11.9MiB) - Downloading setuptools - Downloading xarray - Downloading networkx - Downloading sqlalchemy - Downloading numba - Downloading fonttools - Downloading pillow - Downloading numpy - Downloading debugpy - Downloading matplotlib - Downloading statsmodels - Downloading babel - Downloading jupyterlab - Downloading jupyterlab-citation-data - Downloading notebook - Downloading scipy - Downloading llvmlite -Prepared 45 packages in 6.05s -warning: Failed to clone files; falling back to full copy. This may lead to degraded performance. - If the cache and target directories are on different filesystems, reflinking may not be supported. - If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning. -Installed 134 packages in 9.52s - + annotated-types==0.7.0 - + anyio==4.12.1 - + appnope==0.1.4 - + argon2-cffi==25.1.0 - + argon2-cffi-bindings==25.1.0 - + arrow==1.4.0 - + asttokens==3.0.1 - + async-lru==2.1.0 - + attrs==25.4.0 - + babel==2.18.0 - + beautifulsoup4==4.14.3 - + bleach==6.3.0 - + certifi==2026.1.4 - + cffi==2.0.0 - + charset-normalizer==3.4.4 - + cloudpickle==3.1.2 - + comm==0.2.3 - + contourpy==1.3.2 - + cycler==0.12.1 - + debugpy==1.8.20 - + decorator==5.2.1 - + defusedxml==0.7.1 - + econ-ark==0.17.0 - + exceptiongroup==1.3.1 - + executing==2.2.1 - + fastjsonschema==2.21.2 - + fonttools==4.61.1 - + fqdn==1.5.1 - + h11==0.16.0 - + httpcore==1.0.9 - + httpx==0.28.1 - + idna==3.11 - + interpolation==2.2.7 - + ipykernel==7.1.0 - + ipython==8.38.0 - + ipywidgets==8.1.8 - + isoduration==20.11.0 - + jedi==0.19.2 - + jinja2==3.1.6 - + joblib==1.5.3 - + json5==0.13.0 - + jsonpointer==3.0.0 - + jsonschema==4.26.0 - + jsonschema-specifications==2025.9.1 - + jupyter==1.1.1 - + jupyter-client==8.8.0 - + jupyter-console==6.6.3 - + jupyter-core==5.9.1 - + jupyter-events==0.12.0 - + jupyter-lsp==2.3.0 - + jupyter-server==2.17.0 - + jupyter-server-terminals==0.5.4 - + jupyterlab==4.5.3 - + jupyterlab-citation-data==0.1 - + jupyterlab-citation-manager==1.0.0 - + jupyterlab-pygments==0.3.0 - + jupyterlab-server==2.28.0 - + jupyterlab-widgets==3.0.16 - + kiwisolver==1.4.9 - + lark==1.3.1 - + llvmlite==0.46.0 - + markupsafe==3.0.3 - + matplotlib==3.10.8 - + matplotlib-inline==0.2.1 - + mistune==3.2.0 - + mpmath==1.3.0 - + narwhals==2.16.0 - + nbclient==0.10.4 - + nbconvert==7.17.0 - + nbformat==5.10.4 - + nest-asyncio==1.6.0 - + networkx==3.4.2 - + notebook==7.5.3 - + notebook-shim==0.2.4 - + numba==0.63.1 - + numpy==2.2.6 - + optimagic==0.5.2 - + overrides==7.7.0 - + packaging==26.0 - + pandas==2.3.3 - + pandocfilters==1.5.1 - + parso==0.8.5 - + patsy==1.0.2 - + pexpect==4.9.0 - + pillow==12.1.0 - + platformdirs==4.5.1 - + plotly==6.5.2 - + prometheus-client==0.24.1 - + prompt-toolkit==3.0.52 - + psutil==7.2.2 - + ptyprocess==0.7.0 - + pure-eval==0.2.3 - + pybaum==0.1.3 - + pycparser==3.0 - + pygments==2.19.2 - + pyparsing==3.3.2 - + python-dateutil==2.9.0.post0 - + python-json-logger==4.0.0 - + pytz==2025.2 - + pyyaml==6.0.3 - + pyzmq==27.1.0 - + quantecon==0.10.1 - + referencing==0.37.0 - + requests==2.32.5 - + rfc3339-validator==0.1.4 - + rfc3986-validator==0.1.1 - + rfc3987-syntax==1.1.0 - + rpds-py==0.30.0 - + scipy==1.15.3 - + seaborn==0.13.2 - + send2trash==2.1.0 - + sequence-jacobian==1.0.0 - + setuptools==80.10.2 - + six==1.17.0 - + soupsieve==2.8.3 - + sqlalchemy==2.0.46 - + stack-data==0.6.3 - + statsmodels==0.14.6 - + sympy==1.14.0 - + terminado==0.18.1 - + tinycss2==1.4.0 - + tomli==2.4.0 - + tornado==6.5.4 - + traitlets==5.14.3 - + typing-extensions==4.15.0 - + tzdata==2025.3 - + uri-template==1.3.0 - + urllib3==2.6.3 - + wcwidth==0.5.3 - + webcolors==25.10.0 - + webencodings==0.5.1 - + websocket-client==1.9.0 - + widgetsnbextension==4.0.15 - + xarray==2025.6.1 - -``` -
-
- ---- - - -Adding a security notice and ensuring `.gitignore` excludes `uv.lock` if we shouldn't commit it: - - ---- - - -
-Tool use: **ripgrep_raw_search** - - -Parameters: - -```json -{ - "pattern": "uv\\.lock|\\.venv", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark/.gitignore", - "caseInsensitive": false -} -``` -Result: - -```json -{ - "success": { - "pattern": "uv\\.lock|\\.venv", - "path": "/Volumes/Sync/GitHub/econ-ark/ballpark/.gitignore", - "outputMode": "content", - "workspaceResults": { - "/Volumes/Sync/GitHub/econ-ark/ballpark": { - "content": { - "matches": [ - { - "file": ".gitignore", - "matches": [ - { - "lineNumber": 87, - "content": ".venv" - } - ] - } - ], - "totalLines": 1, - "totalMatchedLines": 1 - } - } - } - } -} -``` -Status: **completed** - - -
-
- ---- - - -
-Tool use: **list_dir_v2** - - -Parameters: - -```json -{ - "targetDirectory": "/Volumes/Sync/GitHub/econ-ark/ballpark" -} -``` -Result: - -```json -{ - "directoryTreeRoot": { - "absPath": "/Volumes/Sync/GitHub/econ-ark/ballpark", - "childrenFiles": [ - { - "name": ".gitignore" - }, - { - "name": "README.md" - } - ], - "childrenWereProcessed": true - } -} -``` -Status: **completed** - - -
-
- ---- - - - - - ---- - - -
-Tool use: **glob_file_search** • Searched codebase "undefined" • **1** result in **1** directory - -Directory: **/Volumes/Sync/GitHub/econ-ark/ballpark** (1 file) - -| File | -|------| -| `uv.lock` | - -
-
- ---- - - -
-Tool use: **glob_file_search** • Searched codebase "undefined" • **1** result in **1** directory - -Directory: **/Volumes/Sync/GitHub/econ-ark/ballpark** (1 file) - -| File | -|------| -| `pyproject.toml` | - -
-
- ---- - - - - - ---- - - -
Tool use: **todo_write** • Todo List - -- [x] Create pyproject.toml with econ-ark deps, uv setup -- [x] Address cite2c: document migration path to jupyterlab-citation-manager -- [x] Fix models.md broken links with clear explanation -- [x] Revamp Binder config for uv - -
-
- ---- - - - -
Tool use: **edit_file_v2** • Edit file: /Volumes/Sync/GitHub/econ-ark/ballpark/README.md - -
- -
- ---- - - -Summary of the changes: - ---- - -## Summary of Changes - -### 1. Dependencies via econ-ark - -- Added `pyproject.toml` with `econ-ark`, `jupyter`, `jupyterlab`, and `jupyterlab-citation-manager`. -- No version pins for these; econ-ark’s dependencies are used. -- Ran `uv sync`; it installed 134 packages and created `uv.lock`. - -### 2. cite2c usage - -Several notebooks use cite2c: they contain `` and `
`. - -They now use **jupyterlab-citation-manager**, which: - -- Detects the old cite2c format on open. -- Offers to migrate to its own format. -- Keeps citations and bibliography in sync after migration. -- Uses the Zotero Web API (users add their own API key in Settings). - -So: - -- No manual edits to notebooks are required. -- Users open in JupyterLab and accept the migration when prompted. -- A Zotero API key is added in Settings → Advanced Settings → Citation Manager. - -### 3. models.md explanation - -`models.md` was outdated: it still pointed to "We-Would-Like-In-HARK" while the repo uses "We-Would-Like-In-Econ-ARK", and it put "Already-Partway-In-Econ-ARK" under the wrong path. - -`models.md` is updated with: - -- Correct link to `models/We-Would-Like-In-Econ-ARK.ipynb`. -- Correct link to `models/We-Would-Like-In-Econ-ARK/`. -- Correct link to `tools/Already-Partway-In-Econ-ARK/` (under `tools/`, not under models). - -### 4. models.md link fixes - -- `Models-We-Would-Like-In-HARK.ipynb` → `models/We-Would-Like-In-Econ-ARK.ipynb` -- `Models-We-Would-Like-In-HARK` → `models/We-Would-Like-In-Econ-ARK/` -- `Already-Partway-In-Econ-ARK` → `tools/Already-Partway-In-Econ-ARK/` - -### 5. Environment setup with uv - -- **pyproject.toml** at repo root (dependency-only, no build system). -- **uv.lock** generated for reproducible installs. -- **binder/requirements.txt**: only `uv`. -- **binder/postBuild**: `uv pip install --system econ-ark jupyter jupyterlab jupyterlab-citation-manager`. -- **binder/runtime.txt**: `python-3.12` (was `python-3.6`). -- **binder/postBuild**: Removed Zotero token and cite2c setup; added comment about migration. -- **binder/postBuild.bat** removed. -- **README**: “Environment setup” and “Citation management” sections added. - ---- - -**Security:** The old Zotero access token in `postBuild` has been removed. Please revoke it in your [Zotero API keys settings](https://www.zotero.org/settings/keys). - ---- - -_**User**_ - -I'd like to handle environment management in a manner similar to what is done in /Volumes/Sync/GitHub/llorracc/HAFiscal-Latest/ (in creating the .venv-[os]-[arch]/ local environment, and gitignoring it etc). (You do not need to create a `./reproduce.sh ` script, but the README.md should contain instructions for how to install the environment). - ---- - diff --git a/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/.gitignore b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/.gitignore new file mode 100644 index 00000000..69fa449d --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/.gitignore @@ -0,0 +1 @@ +_build/ diff --git a/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_intro.ipynb b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_intro.ipynb new file mode 100644 index 00000000..2b0a6cb9 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_intro.ipynb @@ -0,0 +1,30 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Benhabib, Bisin, and Luo (2019) \u2014 Ballpark Entry\n", + "\n", + "**Paper:** Jess Benhabib, Alberto Bisin, and Mi Luo, \"Wealth Distribution and Social Mobility in the US: A Quantitative Approach,\" *American Economic Review*, 109(5), 1623\u20131647, 2019. [DOI: 10.1257/aer.20151684](https://doi.org/10.1257/aer.20151684)\n", + "\n", + "**Original ballpark author:** Ashish Kumar (March 2024)\n", + "\n", + "**Updated by:** llorracc \u2014 2026-01-27" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_prior-literature.ipynb b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_prior-literature.ipynb new file mode 100644 index 00000000..f1da9cb9 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_prior-literature.ipynb @@ -0,0 +1,63 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prior Literature" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Overview\n", + "\n", + "{cite:t}`benhabib2019` builds on a rich tradition of heterogeneous-agent macroeconomic models that seek to explain the observed distribution of wealth in the United States. The foundational framework originates with {cite:t}`bewley1983`, who introduced incomplete-markets models in which agents self-insure against idiosyncratic income shocks. {cite:t}`huggett1993` and {cite:t}`aiyagari1994` extended this framework into general equilibrium, establishing the workhorse \"Bewley-Huggett-Aiyagari\" class of models. While these models successfully generate wealth dispersion, they consistently underpredict the concentration of wealth at the very top of the distribution \u2014 the thick right tail observed empirically.\n", + "\n", + "Several strands of subsequent research sought to close this gap. {cite:t}`quadrini2000` and {cite:t}`cagetti2006` introduced entrepreneurship and its associated return heterogeneity as a mechanism for generating extreme wealth. {cite:t}`castaneda2003` showed that calibrating to a highly skewed earnings process could improve the fit to the upper tail. {cite:t}`denardi2004` demonstrated that voluntary bequests \u2014 particularly luxury bequests that grow with wealth \u2014 are important for transmitting large estates across generations. In parallel, {cite:t}`benhabib2011` and {cite:t}`benhabib2015` developed analytical results showing that stochastic returns to capital, combined with finite lifetimes and bequests, can generate Pareto-tailed stationary wealth distributions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Key Foundational Papers\n", + "\n", + "- {cite:t}`aiyagari1994` \u2014 Established the canonical incomplete-markets model with idiosyncratic earnings risk and a borrowing constraint, showing how precautionary saving generates wealth accumulation but fails to match the top of the distribution.\n", + "\n", + "- {cite:t}`denardi2004` \u2014 Introduced voluntary (luxury) bequest motives into a life-cycle model, demonstrating that intergenerational transfers are essential for matching the concentration of wealth among the richest households.\n", + "\n", + "- {cite:t}`benhabib2011` \u2014 Proved analytically that models with stochastic capital income and intergenerational wealth transfers generate Pareto-tailed stationary distributions, providing the theoretical foundation for the quantitative exercise in {cite:t}`benhabib2019`.\n", + "\n", + "- {cite:t}`castaneda2003` \u2014 Showed that a carefully calibrated earnings process with very high realizations (\"superstar\" earnings) can help match the U.S. wealth distribution, highlighting the role of labor income heterogeneity.\n", + "\n", + "- {cite:t}`krusell1998` \u2014 Introduced discount-factor heterogeneity as an alternative mechanism for generating wealth inequality in general-equilibrium models, demonstrating that even small differences in patience can produce large differences in wealth." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The Gap This Paper Addresses\n", + "\n", + "Prior models typically focused on one or two mechanisms for wealth concentration \u2014 earnings risk alone ({cite:t}`aiyagari1994`; {cite:t}`castaneda2003`), bequest motives alone ({cite:t}`denardi2004`), or return heterogeneity in isolation ({cite:t}`quadrini2000`; {cite:t}`cagetti2006`). While each mechanism could partially account for the thick tail of the wealth distribution, no single channel was sufficient. Moreover, earlier work had not jointly estimated all three channels within a unified framework that also matched social mobility patterns \u2014 the transition probabilities governing how families move across wealth brackets over generations.\n", + "\n", + "{cite:t}`benhabib2019` fills this gap by embedding all three mechanisms \u2014 skewed earnings, heterogeneous returns to wealth, and wealth-dependent saving rates (via bequest motives) \u2014 into a single quantitative life-cycle model. Using the method of simulated moments, they estimate the model to jointly match the cross-sectional wealth distribution and intergenerational mobility matrices from the Survey of Consumer Finances. This allows them to decompose the relative contribution of each factor, revealing that capital income risk and differential savings are the primary drivers of the upper tail, while stochastic earnings are essential for matching social mobility." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_subsequent-literature.ipynb b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_subsequent-literature.ipynb new file mode 100644 index 00000000..93471a5f --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_subsequent-literature.ipynb @@ -0,0 +1,73 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Subsequent Literature" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Research Directions Since Benhabib, Bisin, and Luo (2019)\n", + "\n", + "Since the publication of {cite:t}`benhabib2019`, the literature on wealth inequality has expanded in several directions. A major theme has been the further investigation of **heterogeneous returns to capital** as a driver of wealth concentration. {cite:t}`bruggemann2025` extend the analysis by estimating entrepreneurial rates of return and their implications for the wealth distribution, while {cite:t}`wolff2024` examines whether the rich earn systematically higher returns on housing assets. {cite:t}`gomez2025` connects wealth inequality to asset pricing, showing how the concentration of wealth affects equilibrium asset prices and returns.\n", + "\n", + "A second strand of work has focused on the **dynamics and tail behavior** of the wealth distribution. {cite:t}`atkeson2022` study the rapid changes in top wealth shares and the role of family firms in generating self-made fortunes, a phenomenon the static cross-sectional approach of {cite:t}`benhabib2019` was not designed to capture. {cite:t}`singh2023` zoom in on the extreme right tail \u2014 the top 0.0003 percent \u2014 documenting its short-run dynamics. On the theoretical side, {cite:t}`lopezvelasco2025` develops an OLG model that endogenously generates distinct power laws in both earnings and wealth, and {cite:t}`birkner2022` study Pareto-distributed wealth dynamics in an open-economy setting.\n", + "\n", + "A third direction concerns the **macroeconomic and policy implications** of wealth inequality. {cite:t}`andersen2024` study how pension reforms affect wealth concentration through intergenerational transfers. {cite:t}`cui2025` analyze optimal taxation of sudden capital income surges \u2014 precisely the kind of capital income risk that {cite:t}`benhabib2019` identified as a key driver of the upper tail. {cite:t}`macnamara2023` use structural estimation to assess how marginal tax rates affect the long-run income and wealth distribution." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Key Subsequent Papers\n", + "\n", + "- {cite:t}`atkeson2022` \u2014 Show that the rapid rise of self-made fortunes and family firms can explain much of the dynamics in top wealth shares, complementing the steady-state analysis in {cite:t}`benhabib2019`.\n", + "\n", + "- {cite:t}`gomez2025` \u2014 Establishes a link between wealth inequality and asset prices, demonstrating that the distribution of wealth has first-order effects on equilibrium returns.\n", + "\n", + "- {cite:t}`bruggemann2025` \u2014 Estimate heterogeneous entrepreneurial returns to wealth using U.S. microdata, finding that return heterogeneity is even more important for the upper tail than earlier calibrations suggested.\n", + "\n", + "- {cite:t}`benhabib2021` \u2014 Extend the {cite:t}`benhabib2019` framework to study long-run social mobility across heterogeneous dynasties, showing how persistence in returns and bequests shapes intergenerational wealth transmission.\n", + "\n", + "- {cite:t}`kaymak2026` \u2014 Develop a quantitative model that accounts for the rise in U.S. wealth concentration since the 1980s, incorporating multiple channels (tax changes, earnings inequality, and return heterogeneity) in a unified framework." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Open Questions and Gaps\n", + "\n", + "Despite substantial progress, several questions remain open:\n", + "\n", + "1. **Within-lifetime return dynamics.** {cite:t}`benhabib2019` assumed that an agent's rate of return is fixed within their lifetime but stochastic across generations. Emerging evidence from {cite:t}`snudden2025` on idiosyncratic asset returns suggests that within-lifetime variation in returns may be quantitatively important and could alter both the stationary distribution and mobility patterns.\n", + "\n", + "2. **Behavioral heterogeneity.** {cite:t}`li2024` introduce present-biased preferences and show they affect the marginal propensity to consume and the wealth distribution. Whether behavioral heterogeneity is a substitute for, or complement to, the structural channels in {cite:t}`benhabib2019` remains an open question.\n", + "\n", + "3. **Differential fertility.** {cite:t}`cooke2024` show that fertility differences across wealth groups interact with intergenerational transfers to shape long-run inequality \u2014 a channel absent from the Benhabib-Bisin-Luo framework.\n", + "\n", + "4. **Global and open-economy dimensions.** Most of the literature, including {cite:t}`benhabib2019`, studies a closed economy. {cite:t}`birkner2022` take a step toward open-economy analysis, but the interaction between capital mobility, return heterogeneity, and domestic wealth concentration remains largely unexplored.\n", + "\n", + "5. **Demand-side effects.** {cite:t}`cavallari2025` study how wealth inequality feeds back into aggregate demand and the business cycle \u2014 a macroeconomic channel that the partial-equilibrium structure of {cite:t}`benhabib2019` does not capture." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_summary.ipynb b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_summary.ipynb new file mode 100644 index 00000000..8f543ee2 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/Benhabib_et_al_2019_summary.ipynb @@ -0,0 +1,152 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "This paper presents a comprehensive analysis of the factors influencing wealth dynamics and social mobility in the United States.\n", + "\n", + "Key findings include:\n", + "\n", + "- **Motivation:** Wealth is unequally distributed, with significant skewness and a thick right tail, where the top 1% holds a disproportionately large share of wealth.\n", + "- The lifecycle model developed in the study identifies three main factors driving these outcomes: skewed earnings distribution, differential savings rates across wealth levels, and stochastic idiosyncratic returns to wealth. All three factors are crucial for matching the observed wealth distribution and mobility patterns.\n", + "- The model developed matches empirical data well, and counterfactuals provide insights into the relative importance of the above factors in driving wealth accumulation and distribution in the U.S." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Non-Technical Methodological Overview\n", + "\n", + "The paper develops a macroeconomic model to explore wealth accumulation, distribution, and social mobility in the U.S., focusing on three main forces:\n", + "\n", + "1. **Stochastic Earnings:** Research shows income variability plays a key role in wealth inequality, affecting saving decisions and consumption patterns, particularly for the bottom 60% of households. However, it does not account for the wealth concentration among the wealthiest. The incomplete-markets literature pioneered by {cite:t}`aiyagari1994` established this channel.\n", + "\n", + "2. **Heterogeneous Rate of Return:** Studies have identified significant variations in the risk-adjusted returns on investments across households, contributing to the wealth distribution's long tail. This variation is consistent over time and linked with entrepreneurial activity {cite:p}`quadrini2000, cagetti2006`.\n", + "\n", + "3. **Differential saving rates across wealth levels:** The model includes increasing bequest motives with wealth, suggesting a stronger saving motive among the wealthiest, who aim to leave significant assets for their heirs. This perpetuates the transfer of large estates through generations, as emphasized by {cite:t}`denardi2004`.\n", + "\n", + "The analysis finds that stochastic earnings, differential savings, and capital income risk critically shape the wealth distribution's tail and social mobility. Capital income risk and differential savings widen the wealth distribution's tail and influence mobility, particularly enhancing it at the top end but reducing upward mobility from the bottom 20%. Despite being less impactful in the tail, stochastic earnings are vital for overall wealth mobility. Additionally, their findings suggest a wealth-dependent return rate enhances model fit across the wealth distribution." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The Model\n", + "\n", + "A fairly simple microfounded model of lifecycle consumption and savings. Each agent's life span is finite and deterministic, T years.\n", + "\n", + "### Features of the model\n", + "\n", + "1. Every period agents choose how much to consume ($c_t$) and save ($a_t$) out of their market resources.\n", + "2. All agents are subjected to a no-borrowing constraint.\n", + "3. Agents leave bequests $a_{T}$ at the end of life T.\n", + "4. Wealth accumulates from savings and bequests.\n", + "5. Every agent is assigned an idiosyncratic rate of return r and lifetime labor earnings profile $\\left\\{w_{t} \\right\\}_{t=1}^{T}$ possibly correlated with those of the parent.\n", + "6. Rate of return and earnings are stochastic across generations but deterministic within generation.\n", + "\n", + "### Preferences\n", + "Preferences are composed of:\n", + "1. per period utility from consumption\n", + "2. warm-glow utility from bequests at T, $e(a_{T})$\n", + "$$\n", + "\\begin{aligned}\n", + "& u(c_t) = \\frac{c_{t}^{1 - \\sigma}}{1 - \\sigma}, \\quad \\quad e(a_t) = A\\frac{a_{T}^{1 - \\mu}}{1 - \\mu} \\\\\n", + "\\end{aligned}\n", + "$$\n", + "\n", + "### Recursive Formulation\n", + "Given initial wealth $a_0$, earnings profile and rate of return, each agent's optimization problem is:\n", + "$$\n", + "\\begin{aligned}\n", + "& V_{t}(a) = \\max_{c, a'} u(c) + \\beta V_{t+1}(a') \\\\\n", + "& \\text{s.t.} \\\\\n", + "& a' = (1+r)a - c + w \\\\\n", + "& 0 \\leq c \\leq a, \\quad t = 1,..., T-1\\\\\n", + "& V_{T}(a) = u(c) + e(a')\\\\\n", + "\\end{aligned}\n", + "$$\n", + "\n", + "The solution to the above problem is a stochastic difference equation for the initial wealth of dynasties, induced by the $\\left\\{r^n, w^n \\right\\}_{n}$, mapping $a^{n-1}$ into $\\left\\{a^{n} \\right\\}_{n}$, where superscripts correspond to the nth generation.\n", + "$$\n", + "\\begin{aligned}\n", + "& a^{n} = g(a^{n-1}; r^{n}, w^{n}) \\\\\n", + "\\end{aligned}\n", + "$$\n", + "\n", + "Under the given assumptions of the model, the following holds:\n", + "1. If $\\mu = \\sigma$ $\\implies$ the stochastic process $\\left\\{a^{n} \\right\\}_{n}$ has a stationary distribution\n", + "2. If $\\mu < \\sigma$ $\\implies$ savings rate increases with wealth (stationary distribution might not exist). If it does exist, then it displays a thick tail.\n", + "\n", + "### Quantitative Analysis\n", + "\n", + "The paper uses the method of simulated moments (MSM) to identify unknown parameters.\n", + "\n", + "1. Externally calibrate some parameters of the model\n", + "2. Estimate remaining parameters of the model by matching the targeted moments generated by the stationary distribution induced by the model and those in the data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Results\n", + "\n", + "At the estimated parameter values, the model-induced wealth distribution closely resembles the wealth distribution in the data.\n", + "- The estimates point to the existence of differential saving behavior (bequest motives)\n", + "- Capital income risk is an important factor in driving wealth inequality\n", + "\n", + "Next, the paper shuts down each of the three main factors listed above. The objective of this counterfactual exercise is to gauge the relative importance of the three mechanisms in driving the distribution of wealth.\n", + "\n", + "### Summary of Counterfactuals\n", + "\n", + " 1. No rate of return heterogeneity $\\implies$ higher bequest motive (A doubles relative to baseline) & model can't match the upper tail of the wealth distribution (Table-15-row(3))\n", + "\n", + " 2. No stochastic earnings $\\implies$ relative preference for bequests $\\uparrow$ while nothing else changes substantially & model does not miss as much in mimicking the upper tail of the wealth distribution $\\implies$ stochastic earnings not driving the behavior of the right tail of wealth distribution.\n", + " - However, social mobility matrix fit implied by this counterfactual is bad $\\implies$ stochastic earnings matter for social mobility\n", + "\n", + " 3. Homogeneous saving rates $\\implies$ preference for bequests $\\uparrow$, capital income is riskier & extremely bad fit in matching the upper tail of the wealth distribution\n", + "\n", + "![Counterfactual wealth distributions: model vs. data under alternative assumptions](fig1.png)\n", + "\n", + "Lastly, the paper describes transitional dynamics of the wealth distribution within the confines of the model. In particular, the paper conducted an analysis using the SCF 1962\u20131963 wealth distribution as a starting point, estimating model parameters to match with the 2007 SCF distribution and previously used transition matrices. The findings highlight a significant rise in wealth inequality during this period, with the top 1% share increasing from 24.2% to 33.6%. The updated estimates reveal that this surge in inequality can be traced through enhanced capital income risk and differential savings, resulting in a skewed wealth distribution that closely matches empirical data, especially at the higher end. However, this model overestimates social mobility across wealth brackets.\n", + "\n", + "![Transitional dynamics of the wealth distribution from SCF 1962\u20131963 to SCF 2007](fig2.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conclusion\n", + "\n", + "The authors developed a standard macroeconomic model to explore the distribution of wealth in the United States, with a specific focus on the distribution's tail. The model is notable for its ability to closely fit the observed data across the entire wealth spectrum and accurately capture the social mobility trends. Through their analysis, the authors successfully identified three key factors contributing to wealth accumulation: skewed and persistent earnings distribution, differential saving and bequest rates across wealth levels, and capital income risk associated with entrepreneurship. Each factor plays a distinct and empirically validated role in shaping both the wealth distribution and mobility. The paper also delves into the transitional dynamics of wealth distribution, with preliminary findings suggesting rapid changes over time, indicating promising areas for future research." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Limitations\n", + "\n", + "The model ignores the following key features that are relevant for a proper quantitative study:\n", + " - Overlapping generation demographic structure, which is crucial for modeling accidental bequests\n", + " - Permanent income heterogeneity and within-lifetime permanent income risk (important for capturing savings done to counter that risk)\n", + " - Luxury-type bequest motives. In their absence, even agents located at the lower end of the wealth distribution save for leaving bequests, but that is not supported by data. Luxury-type bequest motives can solve that problem.\n", + " - Mortality risk, which again alters the saving behavior of retirees\n", + " - Medical risk" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/index.md b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/index.md new file mode 100644 index 00000000..7a426fb9 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/index.md @@ -0,0 +1,15 @@ +--- +title: "Wealth Distribution and Social Mobility in the U.S. — Ballpark Entry" +--- + +```{include} Benhabib_et_al_2019_intro.ipynb +``` + +```{include} Benhabib_et_al_2019_prior-literature.ipynb +``` + +```{include} Benhabib_et_al_2019_summary.ipynb +``` + +```{include} Benhabib_et_al_2019_subsequent-literature.ipynb +``` diff --git a/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/myst.yml b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/myst.yml new file mode 100644 index 00000000..f6fc95e1 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/myst.yml @@ -0,0 +1,13 @@ +version: 1 + +project: + title: "Wealth Distribution and Social Mobility in the U.S. — Ballpark Entry" + bibliography: + - self.bib + - references.bib + - subsequent-literature.bib + toc: + - file: index.md + +site: + title: "Wealth Distribution and Social Mobility in the U.S. — Ballpark Entry" diff --git a/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/references.bib b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/references.bib new file mode 100644 index 00000000..6e23dc55 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/references.bib @@ -0,0 +1,180 @@ +@article{aiyagari1994, + title={Uninsured Idiosyncratic Risk and Aggregate Saving}, + author={Aiyagari, S. Rao}, + journal={Quarterly Journal of Economics}, + volume={109}, + number={3}, + pages={659--684}, + year={1994} +} + +@article{bewley1983, + title={A Difficulty with the Optimum Quantity of Money}, + author={Bewley, Truman}, + journal={Econometrica}, + volume={51}, + number={5}, + pages={1485--1504}, + year={1983} +} + +@article{huggett1993, + title={The Risk-Free Rate in Heterogeneous-Agent Incomplete-Insurance Economies}, + author={Huggett, Mark}, + journal={Journal of Economic Dynamics and Control}, + volume={17}, + number={5--6}, + pages={953--969}, + year={1993} +} + +@article{castaneda2003, + title={Accounting for the {U.S.} Earnings and Wealth Inequality}, + author={Castañeda, Ana and Díaz-Giménez, Javier and Ríos-Rull, José-Víctor}, + journal={Journal of Political Economy}, + volume={111}, + number={4}, + pages={818--857}, + year={2003} +} + +@article{denardi2004, + title={Wealth Inequality and Intergenerational Links}, + author={De Nardi, Mariacristina}, + journal={Review of Economic Studies}, + volume={71}, + number={3}, + pages={743--768}, + year={2004} +} + +@article{quadrini2000, + title={Entrepreneurship, Saving, and Social Mobility}, + author={Quadrini, Vincenzo}, + journal={Review of Economic Dynamics}, + volume={3}, + number={1}, + pages={1--40}, + year={2000} +} + +@article{cagetti2006, + title={Entrepreneurship, Frictions, and Wealth}, + author={Cagetti, Marco and De Nardi, Mariacristina}, + journal={Journal of Political Economy}, + volume={114}, + number={5}, + pages={835--870}, + year={2006} +} + +@article{krusell1998, + title={Income and Wealth Heterogeneity in the Macroeconomy}, + author={Krusell, Per and Smith, Anthony A.}, + journal={Journal of Political Economy}, + volume={106}, + number={5}, + pages={867--896}, + year={1998} +} + +@article{benhabib2011, + title={The Distribution of Wealth and Fiscal Policy in Economies with Finitely Lived Agents}, + author={Benhabib, Jess and Bisin, Alberto and Zhu, Shenghao}, + journal={Econometrica}, + volume={79}, + number={1}, + pages={123--157}, + year={2011} +} + +@article{benhabib2015, + title={The Wealth Distribution in {Bewley} Economies with Capital Income Risk}, + author={Benhabib, Jess and Bisin, Alberto and Zhu, Shenghao}, + journal={Journal of Economic Theory}, + volume={159}, + pages={489--515}, + year={2015} +} + +@article{fagereng2020, + title={Heterogeneity and Persistence in Returns to Wealth}, + author={Fagereng, Andreas and Guiso, Luigi and Malacrino, Davide and Pistaferri, Luigi}, + journal={Econometrica}, + volume={88}, + number={1}, + pages={115--170}, + year={2020} +} + +@article{saez2016, + title={Wealth Inequality in the {United States} since 1913: Evidence from Capitalized Income Tax Data}, + author={Saez, Emmanuel and Zucman, Gabriel}, + journal={Quarterly Journal of Economics}, + volume={131}, + number={2}, + pages={519--578}, + year={2016} +} + +@book{piketty2014, + title={Capital in the Twenty-First Century}, + author={Piketty, Thomas}, + publisher={Harvard University Press}, + year={2014} +} + +@article{kennickell2003, + title={A Rolling Tide: Changes in the Distribution of Wealth in the {U.S.}, 1989--2001}, + author={Kennickell, Arthur B.}, + journal={FEDS Working Paper No. 2003-24}, + year={2003} +} + +@article{wolff2002, + title={Inheritances and Wealth Inequality, 1989--1998}, + author={Wolff, Edward N. and Gittleman, Maury}, + journal={American Economic Review}, + volume={92}, + number={2}, + pages={260--264}, + year={2002} +} + + +@article{hubmer2021, + title={The Historical Evolution of the Wealth Distribution: A Quantitative-Theoretic Investigation}, + author={Hubmer, Joachim and Krusell, Per and Smith, Anthony A.}, + journal={American Economic Review}, + volume={111}, + number={9}, + pages={2923--2989}, + year={2021} +} + +@article{gabaix2016, + title={Dynamics of Inequality}, + author={Gabaix, Xavier and Lasry, Jean-Michel and Lions, Pierre-Louis and Moll, Benjamin}, + journal={Econometrica}, + volume={84}, + number={6}, + pages={2071--2111}, + year={2016} +} + +@article{guvenen2019, + title={Use It or Lose It: Efficiency Gains from Wealth Taxation}, + author={Guvenen, Fatih and Kambourov, Gueorgui and Kuruscu, Burhanettin and Ocampo, Sergio and Chen, Daphne}, + journal={NBER Working Paper No. 26284}, + year={2019} +} + +@article{carroll1997, + title={Buffer-Stock Saving and the Life Cycle/Permanent Income Hypothesis}, + author={Carroll, Christopher D.}, + journal={Quarterly Journal of Economics}, + volume={112}, + number={1}, + pages={1--55}, + year={1997} +} diff --git a/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/self.bib b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/self.bib new file mode 100644 index 00000000..f62bf2e1 --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/self.bib @@ -0,0 +1,10 @@ +@article{benhabib2019, + title={Wealth Distribution and Social Mobility in the {US}: A Quantitative Approach}, + author={Benhabib, Jess and Bisin, Alberto and Luo, Mi}, + journal={American Economic Review}, + volume={109}, + number={5}, + pages={1623--1647}, + year={2019}, + doi={10.1257/aer.20151684} +} diff --git a/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/subsequent-literature.bib b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/subsequent-literature.bib new file mode 100644 index 00000000..f575c71f --- /dev/null +++ b/models/We-Would-Like-In-Econ-ARK/Benhabib_et_al_2019/subsequent-literature.bib @@ -0,0 +1,209 @@ +@article{gomez2025, + title={Wealth Inequality and Asset Prices}, + author={Gomez, Matthieu}, + journal={Review of Economic Studies}, + year={2025}, + doi={10.1093/restud/rdaf008} +} + +@article{kaymak2026, + title={Accounting for Wealth Concentration in the {United States}}, + author={Kaymak, Barış and Leung, David and Poschke, Markus}, + journal={SSRN Working Paper}, + year={2026}, + doi={10.2139/ssrn.4254049} +} + +@article{cui2025, + title={Taxing Sudden Capital Income Surges}, + author={Cui, Wei and Miao, Jianjun}, + journal={IMF Economic Review}, + year={2025}, + doi={10.1057/s41308-025-00280-3} +} + +@article{bruggemann2025, + title={Entrepreneurial Rates of Return and Wealth Inequality}, + author={Brüggemann, Bettina and Mahone, Zachary L.}, + journal={Review of Economic Dynamics}, + year={2025}, + doi={10.1016/j.red.2025.101298} +} + +@article{lopezvelasco2025, + title={An {OLG} Model with Endogenous but Distinct Power-Laws in Earnings and Wealth}, + author={Lopez-Velasco, Armando R.}, + journal={Economics Letters}, + year={2025}, + doi={10.1016/j.econlet.2025.112718} +} + +@article{snudden2025, + title={Idiosyncratic Asset Return and Wage Risk of {US} Households}, + author={Snudden, Stephen}, + journal={SSRN Working Paper}, + year={2025}, + doi={10.2139/ssrn.5054895} +} + +@article{cavallari2025, + title={Demand, Wealth Inequality and the Business Cycle}, + author={Cavallari, Lilia and d'Addona, Stefano and Porchia, Paolo}, + journal={Journal of Macroeconomics}, + year={2025}, + doi={10.1016/j.jmacro.2025.103693} +} + +@article{andersen2024, + title={Pension Reform and Wealth Inequality: Theory and Evidence}, + author={Andersen, Torben M. and Bhattacharya, Joydeep and Grodecka-Messi, Anna and Mann, Katja}, + journal={European Economic Review}, + year={2024}, + doi={10.1016/j.euroecorev.2024.104746} +} + +@article{damato2024, + title={Left and Right: A Tale of Two Tails of the Wealth Distribution}, + author={D'Amato, Marcello and Di Pietro, Christian and Sorge, Marco M.}, + journal={Economic Theory}, + year={2024}, + doi={10.1007/s00199-024-01581-w} +} + +@article{li2024, + title={Present-Biased Heterogeneity, Marginal Propensity to Consume, and Wealth Distribution}, + author={Li, Yuan and Yang, Jinqiang and Zhao, Siqi}, + journal={Macroeconomic Dynamics}, + year={2024}, + doi={10.1017/S1365100524000737} +} + +@article{cooke2024, + title={Intergenerational Transfers, Differential Fertility, and Wealth Inequality}, + author={Cooke, Aaron and Ghimire, Umesh and Lee, Hyun and Zhao, Kai}, + journal={Macroeconomic Dynamics}, + year={2024}, + doi={10.1017/S136510052400035X} +} + +@article{wolff2024, + title={Heterogeneous Rates of Return on Homes: Do the Rich Do Better?}, + author={Wolff, Edward N.}, + journal={Review of Income and Wealth}, + year={2024}, + doi={10.1111/roiw.12704} +} + +@article{khieu2024, + title={On the Distribution of Lifetime Wealth Accumulation}, + author={Khieu, Hoang}, + journal={Journal of Economics}, + year={2024}, + doi={10.1007/s00712-024-00867-w} +} + +@article{sorge2024, + title={To Bequeath, or Not to Bequeath? On Labour Income Risk and Top Wealth Concentration}, + author={Sorge, Marco M.}, + journal={B.E. Journal of Theoretical Economics}, + year={2024}, + doi={10.1515/bejte-2024-0061} +} + +@article{inkmann2024, + title={Aggregate Portfolio Choice}, + author={Inkmann, Joachim}, + journal={Journal of Empirical Finance}, + year={2024}, + doi={10.1016/j.jempfin.2024.101494} +} + +@article{singh2023, + title={The 0.0003 Percent: Short-Run Dynamics of Extreme Wealth in America}, + author={Singh, Arsh and Singh, Nirvikar}, + journal={Review of Income and Wealth}, + year={2023}, + doi={10.1111/roiw.12660} +} + +@article{macnamara2023, + title={Marginal Tax Rates and Income in the Long Run: Evidence from a Structural Estimation}, + author={Macnamara, Patrick and Pidkuyko, Myroslav and Rossi, Raffaele}, + journal={Journal of Monetary Economics}, + year={2023}, + doi={10.1016/j.jmoneco.2023.09.001} +} + +@article{best2023, + title={Capital Management and Wealth Inequality}, + author={Best, James and Dogra, Keshav}, + journal={Federal Reserve Bank of New York Staff Reports}, + number={1072}, + year={2023}, + doi={10.59576/sr.1072} +} + +@article{krapf2023, + title={Does Income Risk Affect the Wealth Distribution?}, + author={Krapf, Matthias}, + journal={Eastern Economic Journal}, + year={2023}, + doi={10.1057/s41302-023-00249-y} +} + +@article{clementi2023, + title={{CEO} Compensation: Facts}, + author={Clementi, Gian Luca and Cooley, Thomas F.}, + journal={Review of Economic Dynamics}, + year={2023}, + doi={10.1016/j.red.2023.07.006} +} + +@article{atkeson2022, + title={Rapid Dynamics of Top Wealth Shares and Self-Made Fortunes: What Is the Role of Family Firms?}, + author={Atkeson, Andrew and Irie, Magnus}, + journal={American Economic Review: Insights}, + volume={4}, + number={4}, + year={2022}, + doi={10.1257/aeri.20210560} +} + +@article{blanchet2022, + title={Uncovering the Dynamics of the Wealth Distribution}, + author={Blanchet, Thomas}, + journal={arXiv preprint arXiv:2211.15509}, + year={2022} +} + +@article{birkner2022, + title={The Dynamics of Pareto Distributed Wealth in a Small Open Economy}, + author={Birkner, Matthias and Scheuer, Niklas and Wälde, Klaus}, + journal={Economic Theory}, + year={2022}, + doi={10.1007/s00199-022-01471-z} +} + +@article{benhabib2021, + title={Heterogeneous Dynasties and Long-Run Mobility}, + author={Benhabib, Jess and Bisin, Alberto and Fernholz, Ricardo T.}, + journal={Economic Journal}, + year={2021}, + doi={10.1093/ej/ueab095} +} + +@article{benhabibcui2021, + title={Capital Return Jumps and Wealth Distribution}, + author={Benhabib, Jess and Cui, Wei and Miao, Jianjun}, + journal={SSRN Working Paper}, + year={2021}, + doi={10.2139/ssrn.3978402} +} + +@article{yang2022, + title={Wealth Inequality and Social Mobility: A Simulation-Based Modelling Approach}, + author={Yang, Xiaoliang and Zhou, Peng}, + journal={Journal of Economic Behavior and Organization}, + year={2022}, + doi={10.1016/j.jebo.2022.02.012} +} diff --git a/uv.lock b/uv.lock index 1bd5a946..5cb5c9ae 100644 --- a/uv.lock +++ b/uv.lock @@ -2218,100 +2218,100 @@ wheels = [ [[package]] name = "pillow" -version = "12.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/02/d52c733a2452ef1ffcc123b68e6606d07276b0e358db70eabad7e40042b7/pillow-12.1.0.tar.gz", hash = "sha256:5c5ae0a06e9ea030ab786b0251b32c7e4ce10e58d983c0d5c56029455180b5b9", size = 46977283, upload-time = "2026-01-02T09:13:29.892Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/41/f73d92b6b883a579e79600d391f2e21cb0df767b2714ecbd2952315dfeef/pillow-12.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:fb125d860738a09d363a88daa0f59c4533529a90e564785e20fe875b200b6dbd", size = 5304089, upload-time = "2026-01-02T09:10:24.953Z" }, - { url = "https://files.pythonhosted.org/packages/94/55/7aca2891560188656e4a91ed9adba305e914a4496800da6b5c0a15f09edf/pillow-12.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cad302dc10fac357d3467a74a9561c90609768a6f73a1923b0fd851b6486f8b0", size = 4657815, upload-time = "2026-01-02T09:10:27.063Z" }, - { url = "https://files.pythonhosted.org/packages/e9/d2/b28221abaa7b4c40b7dba948f0f6a708bd7342c4d47ce342f0ea39643974/pillow-12.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a40905599d8079e09f25027423aed94f2823adaf2868940de991e53a449e14a8", size = 6222593, upload-time = "2026-01-02T09:10:29.115Z" }, - { url = "https://files.pythonhosted.org/packages/71/b8/7a61fb234df6a9b0b479f69e66901209d89ff72a435b49933f9122f94cac/pillow-12.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:92a7fe4225365c5e3a8e598982269c6d6698d3e783b3b1ae979e7819f9cd55c1", size = 8027579, upload-time = "2026-01-02T09:10:31.182Z" }, - { url = "https://files.pythonhosted.org/packages/ea/51/55c751a57cc524a15a0e3db20e5cde517582359508d62305a627e77fd295/pillow-12.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f10c98f49227ed8383d28174ee95155a675c4ed7f85e2e573b04414f7e371bda", size = 6335760, upload-time = "2026-01-02T09:10:33.02Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7c/60e3e6f5e5891a1a06b4c910f742ac862377a6fe842f7184df4a274ce7bf/pillow-12.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8637e29d13f478bc4f153d8daa9ffb16455f0a6cb287da1b432fdad2bfbd66c7", size = 7027127, upload-time = "2026-01-02T09:10:35.009Z" }, - { url = "https://files.pythonhosted.org/packages/06/37/49d47266ba50b00c27ba63a7c898f1bb41a29627ced8c09e25f19ebec0ff/pillow-12.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:21e686a21078b0f9cb8c8a961d99e6a4ddb88e0fc5ea6e130172ddddc2e5221a", size = 6449896, upload-time = "2026-01-02T09:10:36.793Z" }, - { url = "https://files.pythonhosted.org/packages/f9/e5/67fd87d2913902462cd9b79c6211c25bfe95fcf5783d06e1367d6d9a741f/pillow-12.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2415373395a831f53933c23ce051021e79c8cd7979822d8cc478547a3f4da8ef", size = 7151345, upload-time = "2026-01-02T09:10:39.064Z" }, - { url = "https://files.pythonhosted.org/packages/bd/15/f8c7abf82af68b29f50d77c227e7a1f87ce02fdc66ded9bf603bc3b41180/pillow-12.1.0-cp310-cp310-win32.whl", hash = "sha256:e75d3dba8fc1ddfec0cd752108f93b83b4f8d6ab40e524a95d35f016b9683b09", size = 6325568, upload-time = "2026-01-02T09:10:41.035Z" }, - { url = "https://files.pythonhosted.org/packages/d4/24/7d1c0e160b6b5ac2605ef7d8be537e28753c0db5363d035948073f5513d7/pillow-12.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:64efdf00c09e31efd754448a383ea241f55a994fd079866b92d2bbff598aad91", size = 7032367, upload-time = "2026-01-02T09:10:43.09Z" }, - { url = "https://files.pythonhosted.org/packages/f4/03/41c038f0d7a06099254c60f618d0ec7be11e79620fc23b8e85e5b31d9a44/pillow-12.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:f188028b5af6b8fb2e9a76ac0f841a575bd1bd396e46ef0840d9b88a48fdbcea", size = 2452345, upload-time = "2026-01-02T09:10:44.795Z" }, - { url = "https://files.pythonhosted.org/packages/43/c4/bf8328039de6cc22182c3ef007a2abfbbdab153661c0a9aa78af8d706391/pillow-12.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:a83e0850cb8f5ac975291ebfc4170ba481f41a28065277f7f735c202cd8e0af3", size = 5304057, upload-time = "2026-01-02T09:10:46.627Z" }, - { url = "https://files.pythonhosted.org/packages/43/06/7264c0597e676104cc22ca73ee48f752767cd4b1fe084662620b17e10120/pillow-12.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b6e53e82ec2db0717eabb276aa56cf4e500c9a7cec2c2e189b55c24f65a3e8c0", size = 4657811, upload-time = "2026-01-02T09:10:49.548Z" }, - { url = "https://files.pythonhosted.org/packages/72/64/f9189e44474610daf83da31145fa56710b627b5c4c0b9c235e34058f6b31/pillow-12.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:40a8e3b9e8773876d6e30daed22f016509e3987bab61b3b7fe309d7019a87451", size = 6232243, upload-time = "2026-01-02T09:10:51.62Z" }, - { url = "https://files.pythonhosted.org/packages/ef/30/0df458009be6a4caca4ca2c52975e6275c387d4e5c95544e34138b41dc86/pillow-12.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:800429ac32c9b72909c671aaf17ecd13110f823ddb7db4dfef412a5587c2c24e", size = 8037872, upload-time = "2026-01-02T09:10:53.446Z" }, - { url = "https://files.pythonhosted.org/packages/e4/86/95845d4eda4f4f9557e25381d70876aa213560243ac1a6d619c46caaedd9/pillow-12.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b022eaaf709541b391ee069f0022ee5b36c709df71986e3f7be312e46f42c84", size = 6345398, upload-time = "2026-01-02T09:10:55.426Z" }, - { url = "https://files.pythonhosted.org/packages/5c/1f/8e66ab9be3aaf1435bc03edd1ebdf58ffcd17f7349c1d970cafe87af27d9/pillow-12.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f345e7bc9d7f368887c712aa5054558bad44d2a301ddf9248599f4161abc7c0", size = 7034667, upload-time = "2026-01-02T09:10:57.11Z" }, - { url = "https://files.pythonhosted.org/packages/f9/f6/683b83cb9b1db1fb52b87951b1c0b99bdcfceaa75febf11406c19f82cb5e/pillow-12.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d70347c8a5b7ccd803ec0c85c8709f036e6348f1e6a5bf048ecd9c64d3550b8b", size = 6458743, upload-time = "2026-01-02T09:10:59.331Z" }, - { url = "https://files.pythonhosted.org/packages/9a/7d/de833d63622538c1d58ce5395e7c6cb7e7dce80decdd8bde4a484e095d9f/pillow-12.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1fcc52d86ce7a34fd17cb04e87cfdb164648a3662a6f20565910a99653d66c18", size = 7159342, upload-time = "2026-01-02T09:11:01.82Z" }, - { url = "https://files.pythonhosted.org/packages/8c/40/50d86571c9e5868c42b81fe7da0c76ca26373f3b95a8dd675425f4a92ec1/pillow-12.1.0-cp311-cp311-win32.whl", hash = "sha256:3ffaa2f0659e2f740473bcf03c702c39a8d4b2b7ffc629052028764324842c64", size = 6328655, upload-time = "2026-01-02T09:11:04.556Z" }, - { url = "https://files.pythonhosted.org/packages/6c/af/b1d7e301c4cd26cd45d4af884d9ee9b6fab893b0ad2450d4746d74a6968c/pillow-12.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:806f3987ffe10e867bab0ddad45df1148a2b98221798457fa097ad85d6e8bc75", size = 7031469, upload-time = "2026-01-02T09:11:06.538Z" }, - { url = "https://files.pythonhosted.org/packages/48/36/d5716586d887fb2a810a4a61518a327a1e21c8b7134c89283af272efe84b/pillow-12.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:9f5fefaca968e700ad1a4a9de98bf0869a94e397fe3524c4c9450c1445252304", size = 2452515, upload-time = "2026-01-02T09:11:08.226Z" }, - { url = "https://files.pythonhosted.org/packages/20/31/dc53fe21a2f2996e1b7d92bf671cdb157079385183ef7c1ae08b485db510/pillow-12.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a332ac4ccb84b6dde65dbace8431f3af08874bf9770719d32a635c4ef411b18b", size = 5262642, upload-time = "2026-01-02T09:11:10.138Z" }, - { url = "https://files.pythonhosted.org/packages/ab/c1/10e45ac9cc79419cedf5121b42dcca5a50ad2b601fa080f58c22fb27626e/pillow-12.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:907bfa8a9cb790748a9aa4513e37c88c59660da3bcfffbd24a7d9e6abf224551", size = 4657464, upload-time = "2026-01-02T09:11:12.319Z" }, - { url = "https://files.pythonhosted.org/packages/ad/26/7b82c0ab7ef40ebede7a97c72d473bda5950f609f8e0c77b04af574a0ddb/pillow-12.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:efdc140e7b63b8f739d09a99033aa430accce485ff78e6d311973a67b6bf3208", size = 6234878, upload-time = "2026-01-02T09:11:14.096Z" }, - { url = "https://files.pythonhosted.org/packages/76/25/27abc9792615b5e886ca9411ba6637b675f1b77af3104710ac7353fe5605/pillow-12.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bef9768cab184e7ae6e559c032e95ba8d07b3023c289f79a2bd36e8bf85605a5", size = 8044868, upload-time = "2026-01-02T09:11:15.903Z" }, - { url = "https://files.pythonhosted.org/packages/0a/ea/f200a4c36d836100e7bc738fc48cd963d3ba6372ebc8298a889e0cfc3359/pillow-12.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:742aea052cf5ab5034a53c3846165bc3ce88d7c38e954120db0ab867ca242661", size = 6349468, upload-time = "2026-01-02T09:11:17.631Z" }, - { url = "https://files.pythonhosted.org/packages/11/8f/48d0b77ab2200374c66d344459b8958c86693be99526450e7aee714e03e4/pillow-12.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a6dfc2af5b082b635af6e08e0d1f9f1c4e04d17d4e2ca0ef96131e85eda6eb17", size = 7041518, upload-time = "2026-01-02T09:11:19.389Z" }, - { url = "https://files.pythonhosted.org/packages/1d/23/c281182eb986b5d31f0a76d2a2c8cd41722d6fb8ed07521e802f9bba52de/pillow-12.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:609e89d9f90b581c8d16358c9087df76024cf058fa693dd3e1e1620823f39670", size = 6462829, upload-time = "2026-01-02T09:11:21.28Z" }, - { url = "https://files.pythonhosted.org/packages/25/ef/7018273e0faac099d7b00982abdcc39142ae6f3bd9ceb06de09779c4a9d6/pillow-12.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43b4899cfd091a9693a1278c4982f3e50f7fb7cff5153b05174b4afc9593b616", size = 7166756, upload-time = "2026-01-02T09:11:23.559Z" }, - { url = "https://files.pythonhosted.org/packages/8f/c8/993d4b7ab2e341fe02ceef9576afcf5830cdec640be2ac5bee1820d693d4/pillow-12.1.0-cp312-cp312-win32.whl", hash = "sha256:aa0c9cc0b82b14766a99fbe6084409972266e82f459821cd26997a488a7261a7", size = 6328770, upload-time = "2026-01-02T09:11:25.661Z" }, - { url = "https://files.pythonhosted.org/packages/a7/87/90b358775a3f02765d87655237229ba64a997b87efa8ccaca7dd3e36e7a7/pillow-12.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:d70534cea9e7966169ad29a903b99fc507e932069a881d0965a1a84bb57f6c6d", size = 7033406, upload-time = "2026-01-02T09:11:27.474Z" }, - { url = "https://files.pythonhosted.org/packages/5d/cf/881b457eccacac9e5b2ddd97d5071fb6d668307c57cbf4e3b5278e06e536/pillow-12.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:65b80c1ee7e14a87d6a068dd3b0aea268ffcabfe0498d38661b00c5b4b22e74c", size = 2452612, upload-time = "2026-01-02T09:11:29.309Z" }, - { url = "https://files.pythonhosted.org/packages/dd/c7/2530a4aa28248623e9d7f27316b42e27c32ec410f695929696f2e0e4a778/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7b5dd7cbae20285cdb597b10eb5a2c13aa9de6cde9bb64a3c1317427b1db1ae1", size = 4062543, upload-time = "2026-01-02T09:11:31.566Z" }, - { url = "https://files.pythonhosted.org/packages/8f/1f/40b8eae823dc1519b87d53c30ed9ef085506b05281d313031755c1705f73/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:29a4cef9cb672363926f0470afc516dbf7305a14d8c54f7abbb5c199cd8f8179", size = 4138373, upload-time = "2026-01-02T09:11:33.367Z" }, - { url = "https://files.pythonhosted.org/packages/d4/77/6fa60634cf06e52139fd0e89e5bbf055e8166c691c42fb162818b7fda31d/pillow-12.1.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:681088909d7e8fa9e31b9799aaa59ba5234c58e5e4f1951b4c4d1082a2e980e0", size = 3601241, upload-time = "2026-01-02T09:11:35.011Z" }, - { url = "https://files.pythonhosted.org/packages/4f/bf/28ab865de622e14b747f0cd7877510848252d950e43002e224fb1c9ababf/pillow-12.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:983976c2ab753166dc66d36af6e8ec15bb511e4a25856e2227e5f7e00a160587", size = 5262410, upload-time = "2026-01-02T09:11:36.682Z" }, - { url = "https://files.pythonhosted.org/packages/1c/34/583420a1b55e715937a85bd48c5c0991598247a1fd2eb5423188e765ea02/pillow-12.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:db44d5c160a90df2d24a24760bbd37607d53da0b34fb546c4c232af7192298ac", size = 4657312, upload-time = "2026-01-02T09:11:38.535Z" }, - { url = "https://files.pythonhosted.org/packages/1d/fd/f5a0896839762885b3376ff04878f86ab2b097c2f9a9cdccf4eda8ba8dc0/pillow-12.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6b7a9d1db5dad90e2991645874f708e87d9a3c370c243c2d7684d28f7e133e6b", size = 6232605, upload-time = "2026-01-02T09:11:40.602Z" }, - { url = "https://files.pythonhosted.org/packages/98/aa/938a09d127ac1e70e6ed467bd03834350b33ef646b31edb7452d5de43792/pillow-12.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6258f3260986990ba2fa8a874f8b6e808cf5abb51a94015ca3dc3c68aa4f30ea", size = 8041617, upload-time = "2026-01-02T09:11:42.721Z" }, - { url = "https://files.pythonhosted.org/packages/17/e8/538b24cb426ac0186e03f80f78bc8dc7246c667f58b540bdd57c71c9f79d/pillow-12.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e115c15e3bc727b1ca3e641a909f77f8ca72a64fff150f666fcc85e57701c26c", size = 6346509, upload-time = "2026-01-02T09:11:44.955Z" }, - { url = "https://files.pythonhosted.org/packages/01/9a/632e58ec89a32738cabfd9ec418f0e9898a2b4719afc581f07c04a05e3c9/pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6741e6f3074a35e47c77b23a4e4f2d90db3ed905cb1c5e6e0d49bff2045632bc", size = 7038117, upload-time = "2026-01-02T09:11:46.736Z" }, - { url = "https://files.pythonhosted.org/packages/c7/a2/d40308cf86eada842ca1f3ffa45d0ca0df7e4ab33c83f81e73f5eaed136d/pillow-12.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:935b9d1aed48fcfb3f838caac506f38e29621b44ccc4f8a64d575cb1b2a88644", size = 6460151, upload-time = "2026-01-02T09:11:48.625Z" }, - { url = "https://files.pythonhosted.org/packages/f1/88/f5b058ad6453a085c5266660a1417bdad590199da1b32fb4efcff9d33b05/pillow-12.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5fee4c04aad8932da9f8f710af2c1a15a83582cfb884152a9caa79d4efcdbf9c", size = 7164534, upload-time = "2026-01-02T09:11:50.445Z" }, - { url = "https://files.pythonhosted.org/packages/19/ce/c17334caea1db789163b5d855a5735e47995b0b5dc8745e9a3605d5f24c0/pillow-12.1.0-cp313-cp313-win32.whl", hash = "sha256:a786bf667724d84aa29b5db1c61b7bfdde380202aaca12c3461afd6b71743171", size = 6332551, upload-time = "2026-01-02T09:11:52.234Z" }, - { url = "https://files.pythonhosted.org/packages/e5/07/74a9d941fa45c90a0d9465098fe1ec85de3e2afbdc15cc4766622d516056/pillow-12.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:461f9dfdafa394c59cd6d818bdfdbab4028b83b02caadaff0ffd433faf4c9a7a", size = 7040087, upload-time = "2026-01-02T09:11:54.822Z" }, - { url = "https://files.pythonhosted.org/packages/88/09/c99950c075a0e9053d8e880595926302575bc742b1b47fe1bbcc8d388d50/pillow-12.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:9212d6b86917a2300669511ed094a9406888362e085f2431a7da985a6b124f45", size = 2452470, upload-time = "2026-01-02T09:11:56.522Z" }, - { url = "https://files.pythonhosted.org/packages/b5/ba/970b7d85ba01f348dee4d65412476321d40ee04dcb51cd3735b9dc94eb58/pillow-12.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:00162e9ca6d22b7c3ee8e61faa3c3253cd19b6a37f126cad04f2f88b306f557d", size = 5264816, upload-time = "2026-01-02T09:11:58.227Z" }, - { url = "https://files.pythonhosted.org/packages/10/60/650f2fb55fdba7a510d836202aa52f0baac633e50ab1cf18415d332188fb/pillow-12.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7d6daa89a00b58c37cb1747ec9fb7ac3bc5ffd5949f5888657dfddde6d1312e0", size = 4660472, upload-time = "2026-01-02T09:12:00.798Z" }, - { url = "https://files.pythonhosted.org/packages/2b/c0/5273a99478956a099d533c4f46cbaa19fd69d606624f4334b85e50987a08/pillow-12.1.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e2479c7f02f9d505682dc47df8c0ea1fc5e264c4d1629a5d63fe3e2334b89554", size = 6268974, upload-time = "2026-01-02T09:12:02.572Z" }, - { url = "https://files.pythonhosted.org/packages/b4/26/0bf714bc2e73d5267887d47931d53c4ceeceea6978148ed2ab2a4e6463c4/pillow-12.1.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f188d580bd870cda1e15183790d1cc2fa78f666e76077d103edf048eed9c356e", size = 8073070, upload-time = "2026-01-02T09:12:04.75Z" }, - { url = "https://files.pythonhosted.org/packages/43/cf/1ea826200de111a9d65724c54f927f3111dc5ae297f294b370a670c17786/pillow-12.1.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0fde7ec5538ab5095cc02df38ee99b0443ff0e1c847a045554cf5f9af1f4aa82", size = 6380176, upload-time = "2026-01-02T09:12:06.626Z" }, - { url = "https://files.pythonhosted.org/packages/03/e0/7938dd2b2013373fd85d96e0f38d62b7a5a262af21ac274250c7ca7847c9/pillow-12.1.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ed07dca4a8464bada6139ab38f5382f83e5f111698caf3191cb8dbf27d908b4", size = 7067061, upload-time = "2026-01-02T09:12:08.624Z" }, - { url = "https://files.pythonhosted.org/packages/86/ad/a2aa97d37272a929a98437a8c0ac37b3cf012f4f8721e1bd5154699b2518/pillow-12.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f45bd71d1fa5e5749587613037b172e0b3b23159d1c00ef2fc920da6f470e6f0", size = 6491824, upload-time = "2026-01-02T09:12:10.488Z" }, - { url = "https://files.pythonhosted.org/packages/a4/44/80e46611b288d51b115826f136fb3465653c28f491068a72d3da49b54cd4/pillow-12.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:277518bf4fe74aa91489e1b20577473b19ee70fb97c374aa50830b279f25841b", size = 7190911, upload-time = "2026-01-02T09:12:12.772Z" }, - { url = "https://files.pythonhosted.org/packages/86/77/eacc62356b4cf81abe99ff9dbc7402750044aed02cfd6a503f7c6fc11f3e/pillow-12.1.0-cp313-cp313t-win32.whl", hash = "sha256:7315f9137087c4e0ee73a761b163fc9aa3b19f5f606a7fc08d83fd3e4379af65", size = 6336445, upload-time = "2026-01-02T09:12:14.775Z" }, - { url = "https://files.pythonhosted.org/packages/e7/3c/57d81d0b74d218706dafccb87a87ea44262c43eef98eb3b164fd000e0491/pillow-12.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:0ddedfaa8b5f0b4ffbc2fa87b556dc59f6bb4ecb14a53b33f9189713ae8053c0", size = 7045354, upload-time = "2026-01-02T09:12:16.599Z" }, - { url = "https://files.pythonhosted.org/packages/ac/82/8b9b97bba2e3576a340f93b044a3a3a09841170ab4c1eb0d5c93469fd32f/pillow-12.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:80941e6d573197a0c28f394753de529bb436b1ca990ed6e765cf42426abc39f8", size = 2454547, upload-time = "2026-01-02T09:12:18.704Z" }, - { url = "https://files.pythonhosted.org/packages/8c/87/bdf971d8bbcf80a348cc3bacfcb239f5882100fe80534b0ce67a784181d8/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:5cb7bc1966d031aec37ddb9dcf15c2da5b2e9f7cc3ca7c54473a20a927e1eb91", size = 4062533, upload-time = "2026-01-02T09:12:20.791Z" }, - { url = "https://files.pythonhosted.org/packages/ff/4f/5eb37a681c68d605eb7034c004875c81f86ec9ef51f5be4a63eadd58859a/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:97e9993d5ed946aba26baf9c1e8cf18adbab584b99f452ee72f7ee8acb882796", size = 4138546, upload-time = "2026-01-02T09:12:23.664Z" }, - { url = "https://files.pythonhosted.org/packages/11/6d/19a95acb2edbace40dcd582d077b991646b7083c41b98da4ed7555b59733/pillow-12.1.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:414b9a78e14ffeb98128863314e62c3f24b8a86081066625700b7985b3f529bd", size = 3601163, upload-time = "2026-01-02T09:12:26.338Z" }, - { url = "https://files.pythonhosted.org/packages/fc/36/2b8138e51cb42e4cc39c3297713455548be855a50558c3ac2beebdc251dd/pillow-12.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e6bdb408f7c9dd2a5ff2b14a3b0bb6d4deb29fb9961e6eb3ae2031ae9a5cec13", size = 5266086, upload-time = "2026-01-02T09:12:28.782Z" }, - { url = "https://files.pythonhosted.org/packages/53/4b/649056e4d22e1caa90816bf99cef0884aed607ed38075bd75f091a607a38/pillow-12.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3413c2ae377550f5487991d444428f1a8ae92784aac79caa8b1e3b89b175f77e", size = 4657344, upload-time = "2026-01-02T09:12:31.117Z" }, - { url = "https://files.pythonhosted.org/packages/6c/6b/c5742cea0f1ade0cd61485dc3d81f05261fc2276f537fbdc00802de56779/pillow-12.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e5dcbe95016e88437ecf33544ba5db21ef1b8dd6e1b434a2cb2a3d605299e643", size = 6232114, upload-time = "2026-01-02T09:12:32.936Z" }, - { url = "https://files.pythonhosted.org/packages/bf/8f/9f521268ce22d63991601aafd3d48d5ff7280a246a1ef62d626d67b44064/pillow-12.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0a7735df32ccbcc98b98a1ac785cc4b19b580be1bdf0aeb5c03223220ea09d5", size = 8042708, upload-time = "2026-01-02T09:12:34.78Z" }, - { url = "https://files.pythonhosted.org/packages/1a/eb/257f38542893f021502a1bbe0c2e883c90b5cff26cc33b1584a841a06d30/pillow-12.1.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c27407a2d1b96774cbc4a7594129cc027339fd800cd081e44497722ea1179de", size = 6347762, upload-time = "2026-01-02T09:12:36.748Z" }, - { url = "https://files.pythonhosted.org/packages/c4/5a/8ba375025701c09b309e8d5163c5a4ce0102fa86bbf8800eb0d7ac87bc51/pillow-12.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15c794d74303828eaa957ff8070846d0efe8c630901a1c753fdc63850e19ecd9", size = 7039265, upload-time = "2026-01-02T09:12:39.082Z" }, - { url = "https://files.pythonhosted.org/packages/cf/dc/cf5e4cdb3db533f539e88a7bbf9f190c64ab8a08a9bc7a4ccf55067872e4/pillow-12.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c990547452ee2800d8506c4150280757f88532f3de2a58e3022e9b179107862a", size = 6462341, upload-time = "2026-01-02T09:12:40.946Z" }, - { url = "https://files.pythonhosted.org/packages/d0/47/0291a25ac9550677e22eda48510cfc4fa4b2ef0396448b7fbdc0a6946309/pillow-12.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b63e13dd27da389ed9475b3d28510f0f954bca0041e8e551b2a4eb1eab56a39a", size = 7165395, upload-time = "2026-01-02T09:12:42.706Z" }, - { url = "https://files.pythonhosted.org/packages/4f/4c/e005a59393ec4d9416be06e6b45820403bb946a778e39ecec62f5b2b991e/pillow-12.1.0-cp314-cp314-win32.whl", hash = "sha256:1a949604f73eb07a8adab38c4fe50791f9919344398bdc8ac6b307f755fc7030", size = 6431413, upload-time = "2026-01-02T09:12:44.944Z" }, - { url = "https://files.pythonhosted.org/packages/1c/af/f23697f587ac5f9095d67e31b81c95c0249cd461a9798a061ed6709b09b5/pillow-12.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:4f9f6a650743f0ddee5593ac9e954ba1bdbc5e150bc066586d4f26127853ab94", size = 7176779, upload-time = "2026-01-02T09:12:46.727Z" }, - { url = "https://files.pythonhosted.org/packages/b3/36/6a51abf8599232f3e9afbd16d52829376a68909fe14efe29084445db4b73/pillow-12.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:808b99604f7873c800c4840f55ff389936ef1948e4e87645eaf3fccbc8477ac4", size = 2543105, upload-time = "2026-01-02T09:12:49.243Z" }, - { url = "https://files.pythonhosted.org/packages/82/54/2e1dd20c8749ff225080d6ba465a0cab4387f5db0d1c5fb1439e2d99923f/pillow-12.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc11908616c8a283cf7d664f77411a5ed2a02009b0097ff8abbba5e79128ccf2", size = 5268571, upload-time = "2026-01-02T09:12:51.11Z" }, - { url = "https://files.pythonhosted.org/packages/57/61/571163a5ef86ec0cf30d265ac2a70ae6fc9e28413d1dc94fa37fae6bda89/pillow-12.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:896866d2d436563fa2a43a9d72f417874f16b5545955c54a64941e87c1376c61", size = 4660426, upload-time = "2026-01-02T09:12:52.865Z" }, - { url = "https://files.pythonhosted.org/packages/5e/e1/53ee5163f794aef1bf84243f755ee6897a92c708505350dd1923f4afec48/pillow-12.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8e178e3e99d3c0ea8fc64b88447f7cac8ccf058af422a6cedc690d0eadd98c51", size = 6269908, upload-time = "2026-01-02T09:12:54.884Z" }, - { url = "https://files.pythonhosted.org/packages/bc/0b/b4b4106ff0ee1afa1dc599fde6ab230417f800279745124f6c50bcffed8e/pillow-12.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:079af2fb0c599c2ec144ba2c02766d1b55498e373b3ac64687e43849fbbef5bc", size = 8074733, upload-time = "2026-01-02T09:12:56.802Z" }, - { url = "https://files.pythonhosted.org/packages/19/9f/80b411cbac4a732439e629a26ad3ef11907a8c7fc5377b7602f04f6fe4e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bdec5e43377761c5dbca620efb69a77f6855c5a379e32ac5b158f54c84212b14", size = 6381431, upload-time = "2026-01-02T09:12:58.823Z" }, - { url = "https://files.pythonhosted.org/packages/8f/b7/d65c45db463b66ecb6abc17c6ba6917a911202a07662247e1355ce1789e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:565c986f4b45c020f5421a4cea13ef294dde9509a8577f29b2fc5edc7587fff8", size = 7068529, upload-time = "2026-01-02T09:13:00.885Z" }, - { url = "https://files.pythonhosted.org/packages/50/96/dfd4cd726b4a45ae6e3c669fc9e49deb2241312605d33aba50499e9d9bd1/pillow-12.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:43aca0a55ce1eefc0aefa6253661cb54571857b1a7b2964bd8a1e3ef4b729924", size = 6492981, upload-time = "2026-01-02T09:13:03.314Z" }, - { url = "https://files.pythonhosted.org/packages/4d/1c/b5dc52cf713ae46033359c5ca920444f18a6359ce1020dd3e9c553ea5bc6/pillow-12.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0deedf2ea233722476b3a81e8cdfbad786f7adbed5d848469fa59fe52396e4ef", size = 7191878, upload-time = "2026-01-02T09:13:05.276Z" }, - { url = "https://files.pythonhosted.org/packages/53/26/c4188248bd5edaf543864fe4834aebe9c9cb4968b6f573ce014cc42d0720/pillow-12.1.0-cp314-cp314t-win32.whl", hash = "sha256:b17fbdbe01c196e7e159aacb889e091f28e61020a8abeac07b68079b6e626988", size = 6438703, upload-time = "2026-01-02T09:13:07.491Z" }, - { url = "https://files.pythonhosted.org/packages/b8/0e/69ed296de8ea05cb03ee139cee600f424ca166e632567b2d66727f08c7ed/pillow-12.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27b9baecb428899db6c0de572d6d305cfaf38ca1596b5c0542a5182e3e74e8c6", size = 7182927, upload-time = "2026-01-02T09:13:09.841Z" }, - { url = "https://files.pythonhosted.org/packages/fc/f5/68334c015eed9b5cff77814258717dec591ded209ab5b6fb70e2ae873d1d/pillow-12.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f61333d817698bdcdd0f9d7793e365ac3d2a21c1f1eb02b32ad6aefb8d8ea831", size = 2545104, upload-time = "2026-01-02T09:13:12.068Z" }, - { url = "https://files.pythonhosted.org/packages/8b/bc/224b1d98cffd7164b14707c91aac83c07b047fbd8f58eba4066a3e53746a/pillow-12.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ca94b6aac0d7af2a10ba08c0f888b3d5114439b6b3ef39968378723622fed377", size = 5228605, upload-time = "2026-01-02T09:13:14.084Z" }, - { url = "https://files.pythonhosted.org/packages/0c/ca/49ca7769c4550107de049ed85208240ba0f330b3f2e316f24534795702ce/pillow-12.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:351889afef0f485b84078ea40fe33727a0492b9af3904661b0abbafee0355b72", size = 4622245, upload-time = "2026-01-02T09:13:15.964Z" }, - { url = "https://files.pythonhosted.org/packages/73/48/fac807ce82e5955bcc2718642b94b1bd22a82a6d452aea31cbb678cddf12/pillow-12.1.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb0984b30e973f7e2884362b7d23d0a348c7143ee559f38ef3eaab640144204c", size = 5247593, upload-time = "2026-01-02T09:13:17.913Z" }, - { url = "https://files.pythonhosted.org/packages/d2/95/3e0742fe358c4664aed4fd05d5f5373dcdad0b27af52aa0972568541e3f4/pillow-12.1.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:84cabc7095dd535ca934d57e9ce2a72ffd216e435a84acb06b2277b1de2689bd", size = 6989008, upload-time = "2026-01-02T09:13:20.083Z" }, - { url = "https://files.pythonhosted.org/packages/5a/74/fe2ac378e4e202e56d50540d92e1ef4ff34ed687f3c60f6a121bcf99437e/pillow-12.1.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53d8b764726d3af1a138dd353116f774e3862ec7e3794e0c8781e30db0f35dfc", size = 5313824, upload-time = "2026-01-02T09:13:22.405Z" }, - { url = "https://files.pythonhosted.org/packages/f3/77/2a60dee1adee4e2655ac328dd05c02a955c1cd683b9f1b82ec3feb44727c/pillow-12.1.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5da841d81b1a05ef940a8567da92decaa15bc4d7dedb540a8c219ad83d91808a", size = 5963278, upload-time = "2026-01-02T09:13:24.706Z" }, - { url = "https://files.pythonhosted.org/packages/2d/71/64e9b1c7f04ae0027f788a248e6297d7fcc29571371fe7d45495a78172c0/pillow-12.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:75af0b4c229ac519b155028fa1be632d812a519abba9b46b20e50c6caa184f19", size = 7029809, upload-time = "2026-01-02T09:13:26.541Z" }, +version = "12.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1f/42/5c74462b4fd957fcd7b13b04fb3205ff8349236ea74c7c375766d6c82288/pillow-12.1.1.tar.gz", hash = "sha256:9ad8fa5937ab05218e2b6a4cff30295ad35afd2f83ac592e68c0d871bb0fdbc4", size = 46980264, upload-time = "2026-02-11T04:23:07.146Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/30/5bd3d794762481f8c8ae9c80e7b76ecea73b916959eb587521358ef0b2f9/pillow-12.1.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1f1625b72740fdda5d77b4def688eb8fd6490975d06b909fd19f13f391e077e0", size = 5304099, upload-time = "2026-02-11T04:20:06.13Z" }, + { url = "https://files.pythonhosted.org/packages/bd/c1/aab9e8f3eeb4490180e357955e15c2ef74b31f64790ff356c06fb6cf6d84/pillow-12.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:178aa072084bd88ec759052feca8e56cbb14a60b39322b99a049e58090479713", size = 4657880, upload-time = "2026-02-11T04:20:09.291Z" }, + { url = "https://files.pythonhosted.org/packages/f1/0a/9879e30d56815ad529d3985aeff5af4964202425c27261a6ada10f7cbf53/pillow-12.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b66e95d05ba806247aaa1561f080abc7975daf715c30780ff92a20e4ec546e1b", size = 6222587, upload-time = "2026-02-11T04:20:10.82Z" }, + { url = "https://files.pythonhosted.org/packages/5a/5f/a1b72ff7139e4f89014e8d451442c74a774d5c43cd938fb0a9f878576b37/pillow-12.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:89c7e895002bbe49cdc5426150377cbbc04767d7547ed145473f496dfa40408b", size = 8027678, upload-time = "2026-02-11T04:20:12.455Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c2/c7cb187dac79a3d22c3ebeae727abee01e077c8c7d930791dc592f335153/pillow-12.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a5cbdcddad0af3da87cb16b60d23648bc3b51967eb07223e9fed77a82b457c4", size = 6335777, upload-time = "2026-02-11T04:20:14.441Z" }, + { url = "https://files.pythonhosted.org/packages/0c/7b/f9b09a7804ec7336effb96c26d37c29d27225783dc1501b7d62dcef6ae25/pillow-12.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9f51079765661884a486727f0729d29054242f74b46186026582b4e4769918e4", size = 7027140, upload-time = "2026-02-11T04:20:16.387Z" }, + { url = "https://files.pythonhosted.org/packages/98/b2/2fa3c391550bd421b10849d1a2144c44abcd966daadd2f7c12e19ea988c4/pillow-12.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:99c1506ea77c11531d75e3a412832a13a71c7ebc8192ab9e4b2e355555920e3e", size = 6449855, upload-time = "2026-02-11T04:20:18.554Z" }, + { url = "https://files.pythonhosted.org/packages/96/ff/9caf4b5b950c669263c39e96c78c0d74a342c71c4f43fd031bb5cb7ceac9/pillow-12.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:36341d06738a9f66c8287cf8b876d24b18db9bd8740fa0672c74e259ad408cff", size = 7151329, upload-time = "2026-02-11T04:20:20.646Z" }, + { url = "https://files.pythonhosted.org/packages/7b/f8/4b24841f582704da675ca535935bccb32b00a6da1226820845fac4a71136/pillow-12.1.1-cp310-cp310-win32.whl", hash = "sha256:6c52f062424c523d6c4db85518774cc3d50f5539dd6eed32b8f6229b26f24d40", size = 6325574, upload-time = "2026-02-11T04:20:22.43Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f9/9f6b01c0881d7036063aa6612ef04c0e2cad96be21325a1e92d0203f8e91/pillow-12.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:c6008de247150668a705a6338156efb92334113421ceecf7438a12c9a12dab23", size = 7032347, upload-time = "2026-02-11T04:20:23.932Z" }, + { url = "https://files.pythonhosted.org/packages/79/13/c7922edded3dcdaf10c59297540b72785620abc0538872c819915746757d/pillow-12.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:1a9b0ee305220b392e1124a764ee4265bd063e54a751a6b62eff69992f457fa9", size = 2453457, upload-time = "2026-02-11T04:20:25.392Z" }, + { url = "https://files.pythonhosted.org/packages/2b/46/5da1ec4a5171ee7bf1a0efa064aba70ba3d6e0788ce3f5acd1375d23c8c0/pillow-12.1.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e879bb6cd5c73848ef3b2b48b8af9ff08c5b71ecda8048b7dd22d8a33f60be32", size = 5304084, upload-time = "2026-02-11T04:20:27.501Z" }, + { url = "https://files.pythonhosted.org/packages/78/93/a29e9bc02d1cf557a834da780ceccd54e02421627200696fcf805ebdc3fb/pillow-12.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:365b10bb9417dd4498c0e3b128018c4a624dc11c7b97d8cc54effe3b096f4c38", size = 4657866, upload-time = "2026-02-11T04:20:29.827Z" }, + { url = "https://files.pythonhosted.org/packages/13/84/583a4558d492a179d31e4aae32eadce94b9acf49c0337c4ce0b70e0a01f2/pillow-12.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d4ce8e329c93845720cd2014659ca67eac35f6433fd3050393d85f3ecef0dad5", size = 6232148, upload-time = "2026-02-11T04:20:31.329Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e2/53c43334bbbb2d3b938978532fbda8e62bb6e0b23a26ce8592f36bcc4987/pillow-12.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc354a04072b765eccf2204f588a7a532c9511e8b9c7f900e1b64e3e33487090", size = 8038007, upload-time = "2026-02-11T04:20:34.225Z" }, + { url = "https://files.pythonhosted.org/packages/b8/a6/3d0e79c8a9d58150dd98e199d7c1c56861027f3829a3a60b3c2784190180/pillow-12.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7e7976bf1910a8116b523b9f9f58bf410f3e8aa330cd9a2bb2953f9266ab49af", size = 6345418, upload-time = "2026-02-11T04:20:35.858Z" }, + { url = "https://files.pythonhosted.org/packages/a2/c8/46dfeac5825e600579157eea177be43e2f7ff4a99da9d0d0a49533509ac5/pillow-12.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:597bd9c8419bc7c6af5604e55847789b69123bbe25d65cc6ad3012b4f3c98d8b", size = 7034590, upload-time = "2026-02-11T04:20:37.91Z" }, + { url = "https://files.pythonhosted.org/packages/af/bf/e6f65d3db8a8bbfeaf9e13cc0417813f6319863a73de934f14b2229ada18/pillow-12.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2c1fc0f2ca5f96a3c8407e41cca26a16e46b21060fe6d5b099d2cb01412222f5", size = 6458655, upload-time = "2026-02-11T04:20:39.496Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c2/66091f3f34a25894ca129362e510b956ef26f8fb67a0e6417bc5744e56f1/pillow-12.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:578510d88c6229d735855e1f278aa305270438d36a05031dfaae5067cc8eb04d", size = 7159286, upload-time = "2026-02-11T04:20:41.139Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5a/24bc8eb526a22f957d0cec6243146744966d40857e3d8deb68f7902ca6c1/pillow-12.1.1-cp311-cp311-win32.whl", hash = "sha256:7311c0a0dcadb89b36b7025dfd8326ecfa36964e29913074d47382706e516a7c", size = 6328663, upload-time = "2026-02-11T04:20:43.184Z" }, + { url = "https://files.pythonhosted.org/packages/31/03/bef822e4f2d8f9d7448c133d0a18185d3cce3e70472774fffefe8b0ed562/pillow-12.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:fbfa2a7c10cc2623f412753cddf391c7f971c52ca40a3f65dc5039b2939e8563", size = 7031448, upload-time = "2026-02-11T04:20:44.696Z" }, + { url = "https://files.pythonhosted.org/packages/49/70/f76296f53610bd17b2e7d31728b8b7825e3ac3b5b3688b51f52eab7c0818/pillow-12.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:b81b5e3511211631b3f672a595e3221252c90af017e399056d0faabb9538aa80", size = 2453651, upload-time = "2026-02-11T04:20:46.243Z" }, + { url = "https://files.pythonhosted.org/packages/07/d3/8df65da0d4df36b094351dce696f2989bec731d4f10e743b1c5f4da4d3bf/pillow-12.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ab323b787d6e18b3d91a72fc99b1a2c28651e4358749842b8f8dfacd28ef2052", size = 5262803, upload-time = "2026-02-11T04:20:47.653Z" }, + { url = "https://files.pythonhosted.org/packages/d6/71/5026395b290ff404b836e636f51d7297e6c83beceaa87c592718747e670f/pillow-12.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:adebb5bee0f0af4909c30db0d890c773d1a92ffe83da908e2e9e720f8edf3984", size = 4657601, upload-time = "2026-02-11T04:20:49.328Z" }, + { url = "https://files.pythonhosted.org/packages/b1/2e/1001613d941c67442f745aff0f7cc66dd8df9a9c084eb497e6a543ee6f7e/pillow-12.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb66b7cc26f50977108790e2456b7921e773f23db5630261102233eb355a3b79", size = 6234995, upload-time = "2026-02-11T04:20:51.032Z" }, + { url = "https://files.pythonhosted.org/packages/07/26/246ab11455b2549b9233dbd44d358d033a2f780fa9007b61a913c5b2d24e/pillow-12.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aee2810642b2898bb187ced9b349e95d2a7272930796e022efaf12e99dccd293", size = 8045012, upload-time = "2026-02-11T04:20:52.882Z" }, + { url = "https://files.pythonhosted.org/packages/b2/8b/07587069c27be7535ac1fe33874e32de118fbd34e2a73b7f83436a88368c/pillow-12.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a0b1cd6232e2b618adcc54d9882e4e662a089d5768cd188f7c245b4c8c44a397", size = 6349638, upload-time = "2026-02-11T04:20:54.444Z" }, + { url = "https://files.pythonhosted.org/packages/ff/79/6df7b2ee763d619cda2fb4fea498e5f79d984dae304d45a8999b80d6cf5c/pillow-12.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7aac39bcf8d4770d089588a2e1dd111cbaa42df5a94be3114222057d68336bd0", size = 7041540, upload-time = "2026-02-11T04:20:55.97Z" }, + { url = "https://files.pythonhosted.org/packages/2c/5e/2ba19e7e7236d7529f4d873bdaf317a318896bac289abebd4bb00ef247f0/pillow-12.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ab174cd7d29a62dd139c44bf74b698039328f45cb03b4596c43473a46656b2f3", size = 6462613, upload-time = "2026-02-11T04:20:57.542Z" }, + { url = "https://files.pythonhosted.org/packages/03/03/31216ec124bb5c3dacd74ce8efff4cc7f52643653bad4825f8f08c697743/pillow-12.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:339ffdcb7cbeaa08221cd401d517d4b1fe7a9ed5d400e4a8039719238620ca35", size = 7166745, upload-time = "2026-02-11T04:20:59.196Z" }, + { url = "https://files.pythonhosted.org/packages/1f/e7/7c4552d80052337eb28653b617eafdef39adfb137c49dd7e831b8dc13bc5/pillow-12.1.1-cp312-cp312-win32.whl", hash = "sha256:5d1f9575a12bed9e9eedd9a4972834b08c97a352bd17955ccdebfeca5913fa0a", size = 6328823, upload-time = "2026-02-11T04:21:01.385Z" }, + { url = "https://files.pythonhosted.org/packages/3d/17/688626d192d7261bbbf98846fc98995726bddc2c945344b65bec3a29d731/pillow-12.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:21329ec8c96c6e979cd0dfd29406c40c1d52521a90544463057d2aaa937d66a6", size = 7033367, upload-time = "2026-02-11T04:21:03.536Z" }, + { url = "https://files.pythonhosted.org/packages/ed/fe/a0ef1f73f939b0eca03ee2c108d0043a87468664770612602c63266a43c4/pillow-12.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:af9a332e572978f0218686636610555ae3defd1633597be015ed50289a03c523", size = 2453811, upload-time = "2026-02-11T04:21:05.116Z" }, + { url = "https://files.pythonhosted.org/packages/d5/11/6db24d4bd7685583caeae54b7009584e38da3c3d4488ed4cd25b439de486/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:d242e8ac078781f1de88bf823d70c1a9b3c7950a44cdf4b7c012e22ccbcd8e4e", size = 4062689, upload-time = "2026-02-11T04:21:06.804Z" }, + { url = "https://files.pythonhosted.org/packages/33/c0/ce6d3b1fe190f0021203e0d9b5b99e57843e345f15f9ef22fcd43842fd21/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:02f84dfad02693676692746df05b89cf25597560db2857363a208e393429f5e9", size = 4138535, upload-time = "2026-02-11T04:21:08.452Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c6/d5eb6a4fb32a3f9c21a8c7613ec706534ea1cf9f4b3663e99f0d83f6fca8/pillow-12.1.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:e65498daf4b583091ccbb2556c7000abf0f3349fcd57ef7adc9a84a394ed29f6", size = 3601364, upload-time = "2026-02-11T04:21:10.194Z" }, + { url = "https://files.pythonhosted.org/packages/14/a1/16c4b823838ba4c9c52c0e6bbda903a3fe5a1bdbf1b8eb4fff7156f3e318/pillow-12.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c6db3b84c87d48d0088943bf33440e0c42370b99b1c2a7989216f7b42eede60", size = 5262561, upload-time = "2026-02-11T04:21:11.742Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ad/ad9dc98ff24f485008aa5cdedaf1a219876f6f6c42a4626c08bc4e80b120/pillow-12.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8b7e5304e34942bf62e15184219a7b5ad4ff7f3bb5cca4d984f37df1a0e1aee2", size = 4657460, upload-time = "2026-02-11T04:21:13.786Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1b/f1a4ea9a895b5732152789326202a82464d5254759fbacae4deea3069334/pillow-12.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:18e5bddd742a44b7e6b1e773ab5db102bd7a94c32555ba656e76d319d19c3850", size = 6232698, upload-time = "2026-02-11T04:21:15.949Z" }, + { url = "https://files.pythonhosted.org/packages/95/f4/86f51b8745070daf21fd2e5b1fe0eb35d4db9ca26e6d58366562fb56a743/pillow-12.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc44ef1f3de4f45b50ccf9136999d71abb99dca7706bc75d222ed350b9fd2289", size = 8041706, upload-time = "2026-02-11T04:21:17.723Z" }, + { url = "https://files.pythonhosted.org/packages/29/9b/d6ecd956bb1266dd1045e995cce9b8d77759e740953a1c9aad9502a0461e/pillow-12.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a8eb7ed8d4198bccbd07058416eeec51686b498e784eda166395a23eb99138e", size = 6346621, upload-time = "2026-02-11T04:21:19.547Z" }, + { url = "https://files.pythonhosted.org/packages/71/24/538bff45bde96535d7d998c6fed1a751c75ac7c53c37c90dc2601b243893/pillow-12.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47b94983da0c642de92ced1702c5b6c292a84bd3a8e1d1702ff923f183594717", size = 7038069, upload-time = "2026-02-11T04:21:21.378Z" }, + { url = "https://files.pythonhosted.org/packages/94/0e/58cb1a6bc48f746bc4cb3adb8cabff73e2742c92b3bf7a220b7cf69b9177/pillow-12.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:518a48c2aab7ce596d3bf79d0e275661b846e86e4d0e7dec34712c30fe07f02a", size = 6460040, upload-time = "2026-02-11T04:21:23.148Z" }, + { url = "https://files.pythonhosted.org/packages/6c/57/9045cb3ff11eeb6c1adce3b2d60d7d299d7b273a2e6c8381a524abfdc474/pillow-12.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a550ae29b95c6dc13cf69e2c9dc5747f814c54eeb2e32d683e5e93af56caa029", size = 7164523, upload-time = "2026-02-11T04:21:25.01Z" }, + { url = "https://files.pythonhosted.org/packages/73/f2/9be9cb99f2175f0d4dbadd6616ce1bf068ee54a28277ea1bf1fbf729c250/pillow-12.1.1-cp313-cp313-win32.whl", hash = "sha256:a003d7422449f6d1e3a34e3dd4110c22148336918ddbfc6a32581cd54b2e0b2b", size = 6332552, upload-time = "2026-02-11T04:21:27.238Z" }, + { url = "https://files.pythonhosted.org/packages/3f/eb/b0834ad8b583d7d9d42b80becff092082a1c3c156bb582590fcc973f1c7c/pillow-12.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:344cf1e3dab3be4b1fa08e449323d98a2a3f819ad20f4b22e77a0ede31f0faa1", size = 7040108, upload-time = "2026-02-11T04:21:29.462Z" }, + { url = "https://files.pythonhosted.org/packages/d5/7d/fc09634e2aabdd0feabaff4a32f4a7d97789223e7c2042fd805ea4b4d2c2/pillow-12.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:5c0dd1636633e7e6a0afe7bf6a51a14992b7f8e60de5789018ebbdfae55b040a", size = 2453712, upload-time = "2026-02-11T04:21:31.072Z" }, + { url = "https://files.pythonhosted.org/packages/19/2a/b9d62794fc8a0dd14c1943df68347badbd5511103e0d04c035ffe5cf2255/pillow-12.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0330d233c1a0ead844fc097a7d16c0abff4c12e856c0b325f231820fee1f39da", size = 5264880, upload-time = "2026-02-11T04:21:32.865Z" }, + { url = "https://files.pythonhosted.org/packages/26/9d/e03d857d1347fa5ed9247e123fcd2a97b6220e15e9cb73ca0a8d91702c6e/pillow-12.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5dae5f21afb91322f2ff791895ddd8889e5e947ff59f71b46041c8ce6db790bc", size = 4660616, upload-time = "2026-02-11T04:21:34.97Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ec/8a6d22afd02570d30954e043f09c32772bfe143ba9285e2fdb11284952cd/pillow-12.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2e0c664be47252947d870ac0d327fea7e63985a08794758aa8af5b6cb6ec0c9c", size = 6269008, upload-time = "2026-02-11T04:21:36.623Z" }, + { url = "https://files.pythonhosted.org/packages/3d/1d/6d875422c9f28a4a361f495a5f68d9de4a66941dc2c619103ca335fa6446/pillow-12.1.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:691ab2ac363b8217f7d31b3497108fb1f50faab2f75dfb03284ec2f217e87bf8", size = 8073226, upload-time = "2026-02-11T04:21:38.585Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cd/134b0b6ee5eda6dc09e25e24b40fdafe11a520bc725c1d0bbaa5e00bf95b/pillow-12.1.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9e8064fb1cc019296958595f6db671fba95209e3ceb0c4734c9baf97de04b20", size = 6380136, upload-time = "2026-02-11T04:21:40.562Z" }, + { url = "https://files.pythonhosted.org/packages/7a/a9/7628f013f18f001c1b98d8fffe3452f306a70dc6aba7d931019e0492f45e/pillow-12.1.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:472a8d7ded663e6162dafdf20015c486a7009483ca671cece7a9279b512fcb13", size = 7067129, upload-time = "2026-02-11T04:21:42.521Z" }, + { url = "https://files.pythonhosted.org/packages/1e/f8/66ab30a2193b277785601e82ee2d49f68ea575d9637e5e234faaa98efa4c/pillow-12.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:89b54027a766529136a06cfebeecb3a04900397a3590fd252160b888479517bf", size = 6491807, upload-time = "2026-02-11T04:21:44.22Z" }, + { url = "https://files.pythonhosted.org/packages/da/0b/a877a6627dc8318fdb84e357c5e1a758c0941ab1ddffdafd231983788579/pillow-12.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:86172b0831b82ce4f7877f280055892b31179e1576aa00d0df3bb1bbf8c3e524", size = 7190954, upload-time = "2026-02-11T04:21:46.114Z" }, + { url = "https://files.pythonhosted.org/packages/83/43/6f732ff85743cf746b1361b91665d9f5155e1483817f693f8d57ea93147f/pillow-12.1.1-cp313-cp313t-win32.whl", hash = "sha256:44ce27545b6efcf0fdbdceb31c9a5bdea9333e664cda58a7e674bb74608b3986", size = 6336441, upload-time = "2026-02-11T04:21:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/3b/44/e865ef3986611bb75bfabdf94a590016ea327833f434558801122979cd0e/pillow-12.1.1-cp313-cp313t-win_amd64.whl", hash = "sha256:a285e3eb7a5a45a2ff504e31f4a8d1b12ef62e84e5411c6804a42197c1cf586c", size = 7045383, upload-time = "2026-02-11T04:21:50.015Z" }, + { url = "https://files.pythonhosted.org/packages/a8/c6/f4fb24268d0c6908b9f04143697ea18b0379490cb74ba9e8d41b898bd005/pillow-12.1.1-cp313-cp313t-win_arm64.whl", hash = "sha256:cc7d296b5ea4d29e6570dabeaed58d31c3fea35a633a69679fb03d7664f43fb3", size = 2456104, upload-time = "2026-02-11T04:21:51.633Z" }, + { url = "https://files.pythonhosted.org/packages/03/d0/bebb3ffbf31c5a8e97241476c4cf8b9828954693ce6744b4a2326af3e16b/pillow-12.1.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:417423db963cb4be8bac3fc1204fe61610f6abeed1580a7a2cbb2fbda20f12af", size = 4062652, upload-time = "2026-02-11T04:21:53.19Z" }, + { url = "https://files.pythonhosted.org/packages/2d/c0/0e16fb0addda4851445c28f8350d8c512f09de27bbb0d6d0bbf8b6709605/pillow-12.1.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:b957b71c6b2387610f556a7eb0828afbe40b4a98036fc0d2acfa5a44a0c2036f", size = 4138823, upload-time = "2026-02-11T04:22:03.088Z" }, + { url = "https://files.pythonhosted.org/packages/6b/fb/6170ec655d6f6bb6630a013dd7cf7bc218423d7b5fa9071bf63dc32175ae/pillow-12.1.1-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:097690ba1f2efdeb165a20469d59d8bb03c55fb6621eb2041a060ae8ea3e9642", size = 3601143, upload-time = "2026-02-11T04:22:04.909Z" }, + { url = "https://files.pythonhosted.org/packages/59/04/dc5c3f297510ba9a6837cbb318b87dd2b8f73eb41a43cc63767f65cb599c/pillow-12.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2815a87ab27848db0321fb78c7f0b2c8649dee134b7f2b80c6a45c6831d75ccd", size = 5266254, upload-time = "2026-02-11T04:22:07.656Z" }, + { url = "https://files.pythonhosted.org/packages/05/30/5db1236b0d6313f03ebf97f5e17cda9ca060f524b2fcc875149a8360b21c/pillow-12.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f7ed2c6543bad5a7d5530eb9e78c53132f93dfa44a28492db88b41cdab885202", size = 4657499, upload-time = "2026-02-11T04:22:09.613Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/008d2ca0eb612e81968e8be0bbae5051efba24d52debf930126d7eaacbba/pillow-12.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:652a2c9ccfb556235b2b501a3a7cf3742148cd22e04b5625c5fe057ea3e3191f", size = 6232137, upload-time = "2026-02-11T04:22:11.434Z" }, + { url = "https://files.pythonhosted.org/packages/70/f1/f14d5b8eeb4b2cd62b9f9f847eb6605f103df89ef619ac68f92f748614ea/pillow-12.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d6e4571eedf43af33d0fc233a382a76e849badbccdf1ac438841308652a08e1f", size = 8042721, upload-time = "2026-02-11T04:22:13.321Z" }, + { url = "https://files.pythonhosted.org/packages/5a/d6/17824509146e4babbdabf04d8171491fa9d776f7061ff6e727522df9bd03/pillow-12.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b574c51cf7d5d62e9be37ba446224b59a2da26dc4c1bb2ecbe936a4fb1a7cb7f", size = 6347798, upload-time = "2026-02-11T04:22:15.449Z" }, + { url = "https://files.pythonhosted.org/packages/d1/ee/c85a38a9ab92037a75615aba572c85ea51e605265036e00c5b67dfafbfe2/pillow-12.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a37691702ed687799de29a518d63d4682d9016932db66d4e90c345831b02fb4e", size = 7039315, upload-time = "2026-02-11T04:22:17.24Z" }, + { url = "https://files.pythonhosted.org/packages/ec/f3/bc8ccc6e08a148290d7523bde4d9a0d6c981db34631390dc6e6ec34cacf6/pillow-12.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f95c00d5d6700b2b890479664a06e754974848afaae5e21beb4d83c106923fd0", size = 6462360, upload-time = "2026-02-11T04:22:19.111Z" }, + { url = "https://files.pythonhosted.org/packages/f6/ab/69a42656adb1d0665ab051eec58a41f169ad295cf81ad45406963105408f/pillow-12.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:559b38da23606e68681337ad74622c4dbba02254fc9cb4488a305dd5975c7eeb", size = 7165438, upload-time = "2026-02-11T04:22:21.041Z" }, + { url = "https://files.pythonhosted.org/packages/02/46/81f7aa8941873f0f01d4b55cc543b0a3d03ec2ee30d617a0448bf6bd6dec/pillow-12.1.1-cp314-cp314-win32.whl", hash = "sha256:03edcc34d688572014ff223c125a3f77fb08091e4607e7745002fc214070b35f", size = 6431503, upload-time = "2026-02-11T04:22:22.833Z" }, + { url = "https://files.pythonhosted.org/packages/40/72/4c245f7d1044b67affc7f134a09ea619d4895333d35322b775b928180044/pillow-12.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:50480dcd74fa63b8e78235957d302d98d98d82ccbfac4c7e12108ba9ecbdba15", size = 7176748, upload-time = "2026-02-11T04:22:24.64Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ad/8a87bdbe038c5c698736e3348af5c2194ffb872ea52f11894c95f9305435/pillow-12.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:5cb1785d97b0c3d1d1a16bc1d710c4a0049daefc4935f3a8f31f827f4d3d2e7f", size = 2544314, upload-time = "2026-02-11T04:22:26.685Z" }, + { url = "https://files.pythonhosted.org/packages/6c/9d/efd18493f9de13b87ede7c47e69184b9e859e4427225ea962e32e56a49bc/pillow-12.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1f90cff8aa76835cba5769f0b3121a22bd4eb9e6884cfe338216e557a9a548b8", size = 5268612, upload-time = "2026-02-11T04:22:29.884Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f1/4f42eb2b388eb2ffc660dcb7f7b556c1015c53ebd5f7f754965ef997585b/pillow-12.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1f1be78ce9466a7ee64bfda57bdba0f7cc499d9794d518b854816c41bf0aa4e9", size = 4660567, upload-time = "2026-02-11T04:22:31.799Z" }, + { url = "https://files.pythonhosted.org/packages/01/54/df6ef130fa43e4b82e32624a7b821a2be1c5653a5fdad8469687a7db4e00/pillow-12.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:42fc1f4677106188ad9a55562bbade416f8b55456f522430fadab3cef7cd4e60", size = 6269951, upload-time = "2026-02-11T04:22:33.921Z" }, + { url = "https://files.pythonhosted.org/packages/a9/48/618752d06cc44bb4aae8ce0cd4e6426871929ed7b46215638088270d9b34/pillow-12.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:98edb152429ab62a1818039744d8fbb3ccab98a7c29fc3d5fcef158f3f1f68b7", size = 8074769, upload-time = "2026-02-11T04:22:35.877Z" }, + { url = "https://files.pythonhosted.org/packages/c3/bd/f1d71eb39a72fa088d938655afba3e00b38018d052752f435838961127d8/pillow-12.1.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d470ab1178551dd17fdba0fef463359c41aaa613cdcd7ff8373f54be629f9f8f", size = 6381358, upload-time = "2026-02-11T04:22:37.698Z" }, + { url = "https://files.pythonhosted.org/packages/64/ef/c784e20b96674ed36a5af839305f55616f8b4f8aa8eeccf8531a6e312243/pillow-12.1.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6408a7b064595afcab0a49393a413732a35788f2a5092fdc6266952ed67de586", size = 7068558, upload-time = "2026-02-11T04:22:39.597Z" }, + { url = "https://files.pythonhosted.org/packages/73/cb/8059688b74422ae61278202c4e1ad992e8a2e7375227be0a21c6b87ca8d5/pillow-12.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5d8c41325b382c07799a3682c1c258469ea2ff97103c53717b7893862d0c98ce", size = 6493028, upload-time = "2026-02-11T04:22:42.73Z" }, + { url = "https://files.pythonhosted.org/packages/c6/da/e3c008ed7d2dd1f905b15949325934510b9d1931e5df999bb15972756818/pillow-12.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c7697918b5be27424e9ce568193efd13d925c4481dd364e43f5dff72d33e10f8", size = 7191940, upload-time = "2026-02-11T04:22:44.543Z" }, + { url = "https://files.pythonhosted.org/packages/01/4a/9202e8d11714c1fc5951f2e1ef362f2d7fbc595e1f6717971d5dd750e969/pillow-12.1.1-cp314-cp314t-win32.whl", hash = "sha256:d2912fd8114fc5545aa3a4b5576512f64c55a03f3ebcca4c10194d593d43ea36", size = 6438736, upload-time = "2026-02-11T04:22:46.347Z" }, + { url = "https://files.pythonhosted.org/packages/f3/ca/cbce2327eb9885476b3957b2e82eb12c866a8b16ad77392864ad601022ce/pillow-12.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:4ceb838d4bd9dab43e06c363cab2eebf63846d6a4aeaea283bbdfd8f1a8ed58b", size = 7182894, upload-time = "2026-02-11T04:22:48.114Z" }, + { url = "https://files.pythonhosted.org/packages/ec/d2/de599c95ba0a973b94410477f8bf0b6f0b5e67360eb89bcb1ad365258beb/pillow-12.1.1-cp314-cp314t-win_arm64.whl", hash = "sha256:7b03048319bfc6170e93bd60728a1af51d3dd7704935feb228c4d4faab35d334", size = 2546446, upload-time = "2026-02-11T04:22:50.342Z" }, + { url = "https://files.pythonhosted.org/packages/56/11/5d43209aa4cb58e0cc80127956ff1796a68b928e6324bbf06ef4db34367b/pillow-12.1.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:600fd103672b925fe62ed08e0d874ea34d692474df6f4bf7ebe148b30f89f39f", size = 5228606, upload-time = "2026-02-11T04:22:52.106Z" }, + { url = "https://files.pythonhosted.org/packages/5f/d5/3b005b4e4fda6698b371fa6c21b097d4707585d7db99e98d9b0b87ac612a/pillow-12.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:665e1b916b043cef294bc54d47bf02d87e13f769bc4bc5fa225a24b3a6c5aca9", size = 4622321, upload-time = "2026-02-11T04:22:53.827Z" }, + { url = "https://files.pythonhosted.org/packages/df/36/ed3ea2d594356fd8037e5a01f6156c74bc8d92dbb0fa60746cc96cabb6e8/pillow-12.1.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:495c302af3aad1ca67420ddd5c7bd480c8867ad173528767d906428057a11f0e", size = 5247579, upload-time = "2026-02-11T04:22:56.094Z" }, + { url = "https://files.pythonhosted.org/packages/54/9a/9cc3e029683cf6d20ae5085da0dafc63148e3252c2f13328e553aaa13cfb/pillow-12.1.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8fd420ef0c52c88b5a035a0886f367748c72147b2b8f384c9d12656678dfdfa9", size = 6989094, upload-time = "2026-02-11T04:22:58.288Z" }, + { url = "https://files.pythonhosted.org/packages/00/98/fc53ab36da80b88df0967896b6c4b4cd948a0dc5aa40a754266aa3ae48b3/pillow-12.1.1-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f975aa7ef9684ce7e2c18a3aa8f8e2106ce1e46b94ab713d156b2898811651d3", size = 5313850, upload-time = "2026-02-11T04:23:00.554Z" }, + { url = "https://files.pythonhosted.org/packages/30/02/00fa585abfd9fe9d73e5f6e554dc36cc2b842898cbfc46d70353dae227f8/pillow-12.1.1-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8089c852a56c2966cf18835db62d9b34fef7ba74c726ad943928d494fa7f4735", size = 5963343, upload-time = "2026-02-11T04:23:02.934Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/c56ce33ca856e358d27fda9676c055395abddb82c35ac0f593877ed4562e/pillow-12.1.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:cb9bb857b2d057c6dfc72ac5f3b44836924ba15721882ef103cecb40d002d80e", size = 7029880, upload-time = "2026-02-11T04:23:04.783Z" }, ] [[package]]