Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions paper/Appendix/appendix.tex
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,4 @@ \section{Appendix}
from the coarse HMRC turnover-band targets---rather than behavioural.

\input{Appendix/a_data}
% Notch-model robustness appendix withheld with the structural model section.
% \input{Appendix/a_notch}
\input{Appendix/a_inference}
100 changes: 79 additions & 21 deletions paper/Sections/behavioural.tex
Original file line number Diff line number Diff line change
Expand Up @@ -24,37 +24,95 @@ \subsection{An iso-elastic structural simulator}

I adopt the iso-elastic firm problem of \citet{klevenwaseem2013}, in the
sufficient-statistics tradition of \citet{saez2010} and as applied to UK VAT by
\citet{liuetal2021}. A firm of ability $n$ chooses turnover $y$ to maximise
\citet{liuetal2021}, but write it so that the tax falls on \emph{value added}
rather than on turnover. In this value-added statement---which I label
formulation~A---a firm of ability $n_i$ chooses turnover $y$ to maximise
\begin{equation}
\pi(y;n) \;=\; \bigl(1-\tau(y)\bigr)\,y \;-\;
\frac{n}{1+1/e}\left(\frac{y}{n}\right)^{1+1/e},
\pi_i(y) \;=\; (1-\delta_i)\,\bigl(1-\tau\,f(y)\bigr)\,y \;-\;
C(y;n_i,e), \qquad
C(y;n,e)=\frac{n}{1+1/e}\left(\frac{y}{n}\right)^{1+1/e},
\label{eq:isoelastic}
\end{equation}
where $\tau(y)$ is the effective VAT rate the schedule levies on the firm's whole
turnover once registered, and $e>0$ is the elasticity of turnover with respect to
the net-of-tax rate $1-\tau$. Marginal cost is $(y/n)^{1/e}$, so the
frictionless ($\tau=0$) optimum is $y=n$: ability $n$ is the firm's
undistorted turnover. A firm registered under a flat rate $\tau$ chooses
where $\delta_i\in[0,1)$ is the firm's \emph{deductible-input share} of turnover,
so that value added is $(1-\delta_i)\,y$; $\tau$ is the statutory VAT rate; and
$f(y)\in[0,1]$ is the fraction of $\tau$ that the schedule levies on the firm once
registered ($f=0$ below the threshold, $f=1$ for a fully registered firm under the
standard rate). Here $e>0$ is the elasticity of turnover with respect to the
net-of-tax rate.

It is essential to read $C$ correctly. Because the deductible inputs $\delta_i\,y$
are already netted out of revenue through the $(1-\delta_i)$ factor,
$C(y;n_i,e)$ must be understood as the firm's \emph{own-factor production
cost}---the labour and capital effort the firm itself supplies---and \emph{not} its
total cost of production. Reading $C$ as total cost would double-count the bought-in
inputs, which the value-added factor has already removed. Marginal own-factor cost
is $(y/n)^{1/e}$, so the undistorted optimum is $y=n$: ability $n$ is the firm's
frictionless turnover. A firm registered under a flat rate ($f\equiv1$) chooses
\begin{equation}
y \;=\; n\,(1-\tau)^{e},
y^{*} \;=\; n\,\bigl[(1-\delta)(1-\tau)\bigr]^{e},
\label{eq:flat-optimum}
\end{equation}
and one verifies directly from~\eqref{eq:flat-optimum} that
$\mathrm{d}\ln y / \mathrm{d}\ln(1-\tau) = e$, so $e$ is exactly the knob that
governs the intensive response.
so the retained wedge facing the firm is the product $(1-\delta)(1-\tau)$ of the
value-added share and the statutory net-of-tax rate, and one verifies directly
from~\eqref{eq:flat-optimum} that
$\mathrm{d}\ln y^{*}/\mathrm{d}\ln\!\bigl[(1-\delta)(1-\tau)\bigr]=e$, so $e$ is
exactly the knob that governs the intensive response.
Figure~\ref{fig:formulation_a_optima} traces the formulation-A profit and its
optima across the notch and taper schedules for three deductible shares, showing
how both the value-added optimum and the notch geometry shift with $\delta$: the
$(1-\delta)$ factor scales the whole curve down, and a higher $\delta$ pulls the
registered optimum back toward the threshold, eventually tipping the global
choice from the registered interior optimum to bunching at the notch.

\begin{figure}[htbp]
\centering
\includegraphics[width=0.85\textwidth]{figures/formulation_a_optima.png}
\caption{Optima of the value-added (formulation~A) profit
function~\eqref{eq:isoelastic}, $\pi_A(y)=(1-\delta)(1-\tau f(y))\,y-C(y;n,e)$,
at statutory rate $\tau=0.20$, ability $n=\pounds130$k and elasticity $e=0.17$,
under the hard registration notch (left) and the graduated
taper (right). Each panel overlays three deductible-input shares
$\delta\in\{0.0,0.4,0.8\}$; dots mark each curve's local maxima and the star its
global optimum, and the dashed vertical line is the \pounds85{,}000 threshold.
The value-added factor $(1-\delta)$ scales the whole curve down without moving
the frictionless optimum, while a higher $\delta$ shrinks the retained wedge
$(1-\delta)(1-\tau)$ and so pulls the registered optimum
$y^{*}=n[(1-\delta)(1-\tau)]^{e}$ back toward the threshold---eventually tipping
the global optimum from the registered interior peak to bunching at the notch,
consistent with the formulation-A discussion above.}
\label{fig:formulation_a_optima}
\end{figure}

\paragraph{Ability recovery.} To populate the simulator I recover an ability $n$
for each firm from its observed turnover under the baseline \pounds85{,}000 notch.
Given $e$, I set $n=y_{\mathrm{obs}}$ for an unregistered firm
($y_{\mathrm{obs}}<T^{*}$) and invert~\eqref{eq:flat-optimum} for a registered
firm, $n=y_{\mathrm{obs}}/(1-\tau_i)^{e}$. The wedge $\tau_i$ here is the firm's
\emph{own} net VAT rate---net remittance over turnover, that is output VAT less
input credits, which averages about $3\%$ of turnover in the calibrated population
(Section~\ref{sec:data})---and \emph{not} the statutory $20\%$. This distinction is
material: VAT is levied on value added, not on turnover, so a firm remitting $3\%$
of its turnover has been distorted as if it faced a net-of-tax rate near $0.97$,
not $0.80$. Inverting~\eqref{eq:flat-optimum} at the statutory $20\%$ would inflate
the recovered ability gap, and hence every counterfactual response, several-fold.
($y_{\mathrm{obs}}<T^{*}$) and invert the registered-firm optimum for the rest.
Operationally I drive both the recovery and the forward solve off each firm's
calibrated \emph{net VAT rate} $\tau_i$---net remittance over turnover, that is
output VAT less input credits, which averages about $3\%$ of turnover in the
calibrated population (Section~\ref{sec:data})---so that
$n=y_{\mathrm{obs}}/(1-\tau_i)^{e}$ and the effective wedge is pinned to the firm's
calibrated net-VAT position rather than to the full statutory product
$(1-\delta_i)(1-\tau)$. The net rate $\tau_i$ is the firm's own remittance, and
\emph{not} the statutory $20\%$. This distinction is material: VAT is levied on
value added, not on turnover, so a firm remitting $3\%$ of its turnover has been
distorted as if it faced a net-of-tax rate near $0.97$, not $0.80$. Inverting at
the statutory $20\%$ would inflate the recovered ability gap, and hence every
counterfactual response, several-fold.

Formulation~A in~\eqref{eq:isoelastic} is the conceptual value-added statement of
exactly this tax, and the two representations coincide at $\delta=0$, where the
net-VAT wedge and the statutory net-of-tax rate agree. I do not, however, run the
recovery off the literal formulation-A wedge, and one caveat explains why. The
literal recovery $n=y_{\mathrm{obs}}/\bigl[(1-\delta_i)(1-\tau)\bigr]^{e}$ is
numerically fragile for firms with very high deductible shares: as $\delta_i\to1$
the retained wedge $(1-\delta_i)(1-\tau)\to0$ and the recovered ability diverges,
which would hand a handful of input-heavy firms an implausible weight in the
aggregate. Driving the costing off the calibrated net-VAT wedge $\tau_i$ sidesteps
this instability while pricing the same value-added tax. At present $\delta_i$ is
parametric---held at a calibrated value rather than measured firm by firm---and
grounding it in ONS Supply--Use and Annual Business Survey
value-added-to-turnover data is left to future work.

\paragraph{Forward solve.} Holding the recovered abilities $\{n_i\}$ and the
assumed $e$ fixed, I re-solve each firm's optimum under the reform schedule---the
Expand Down
5 changes: 3 additions & 2 deletions paper/Sections/bunching.tex
Original file line number Diff line number Diff line change
Expand Up @@ -161,5 +161,6 @@ \subsection{Reduced-form evidence and the dominated region}
dominated region and how each schedule change alters it. It is precisely because
the reduced-form bunching is non-identifying here that the exact dominated region
carries the distortion characterisation. A fully behavioural forward solve that
re-prices each firm's turnover under counterfactual schedules would require
further parameter-sensitive assumptions and is left to future work.
re-prices each firm's turnover under counterfactual schedules requires
further parameter-sensitive assumptions---an assumed turnover elasticity in
particular---and is developed in Section~\ref{sec:behavioural}.
7 changes: 4 additions & 3 deletions paper/Sections/data.tex
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,10 @@ \section{Data}
policies---including the \pounds85{,}000 to \pounds90{,}000 reform and the forward
threshold sweep of Section~\ref{sec:static}---are evaluated on these firms by
re-applying the registration rule to the microdata for the static costings. I
hold the empirical turnover distribution fixed throughout. A fully behavioural
forward solve that re-prices firms under counterfactual schedules is left to
future work.
hold the empirical turnover distribution fixed for these static costings. A
fully behavioural forward solve that re-prices firms under counterfactual
schedules---conditional on an assumed turnover elasticity---is developed in
Section~\ref{sec:behavioural}.

\begin{figure}[htbp]
\centering
Expand Down
Binary file added paper/figures/formulation_a_optima.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified paper/main.pdf
Binary file not shown.
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ firm-microsim-static = "firm_microsim.static.__main__:main"
firm-microsim-bunching = "firm_microsim.bunching.__main__:main"
firm-microsim-notch = "firm_microsim.notch.__main__:main"
firm-microsim-dynamic = "firm_microsim.dynamic.__main__:main"
firm-microsim-verify-optimum = "firm_microsim.dynamic.verify_optimum:cli"
firm-microsim-formulation-a-optima = "firm_microsim.dynamic.formulation_a_optima:cli"
firm-microsim-placebo = "firm_microsim.analysis.placebo_bunching:cli"
firm-microsim-dominated-region = "firm_microsim.analysis.dominated_region_mass:cli"
firm-microsim-reform-menu = "firm_microsim.analysis.reform_menu_common_base:cli"
Expand Down
Binary file added results/formulation_a_optima.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added results/iso_optimum_verification.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
69 changes: 69 additions & 0 deletions results/iso_optimum_verification.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
Iso-elastic firm optimum — verification report
========================================================================
Profit: pi(y;n) = (1-tau)*y - (n/(1+1/e))*(y/n)**(1+1/e)
Closed form (flat rate): y* = n*(1-tau)**e ; frictionless y=n.

1. FLAT-RATE OPTIMUM (numerical vs closed form)
------------------------------------------------------------------------
e tau rel_grid rel_scalar abs_grid(£) abs_scalar(£)
0.05 0.03 5.13e-08 2.38e-10 0.0103 0.0000
0.05 0.20 4.26e-08 8.07e-10 0.0084 0.0002
0.17 0.03 3.09e-07 1.31e-09 0.0614 0.0003
0.17 0.20 4.22e-07 9.18e-09 0.0813 0.0018
0.32 0.03 9.98e-08 1.29e-08 0.0198 0.0020
0.32 0.20 1.56e-07 9.54e-09 0.0291 0.0018
worst relative error across grid: 4.22e-07 (target < 1e-4: PASS)

2. FOC / ELASTICITY IDENTITY d ln y* / d ln(1-tau) = e
------------------------------------------------------------------------
e=0.05 slope=0.050000 |slope-e|=3.10e-13 PASS
e=0.17 slope=0.170000 |slope-e|=2.00e-13 PASS
e=0.32 slope=0.320000 |slope-e|=2.91e-13 PASS
identity holds: PASS

3. SECOND-ORDER CONDITION (strict concavity, unique interior max)
------------------------------------------------------------------------
worst (least-negative) pi''(y*) over grid = -1.342521e-05
all interior optima strictly concave (pi''<0): PASS
single interior maximum on every grid: PASS
(analytically pi''(y) = -(1/e)(1/n)(y/n)**(1/e-1) < 0 for all y>0)

4. FRICTIONLESS LIMIT y* -> n as e -> 0
------------------------------------------------------------------------
e=0.1 max |y*-n|/n = 2.207e-02
e=0.01 max |y*-n|/n = 2.229e-03
e=0.001 max |y*-n|/n = 2.231e-04
e=0.0001 max |y*-n|/n = 2.231e-05
limit recovered (gap -> 0): PASS

5. NOTCH GEOMETRY (discontinuity, dominated region, buncher)
------------------------------------------------------------------------
dominated region (T*, T*+a) = (£85,000, £106,250), a = £21,250
e nH_iso(£) nH_model(£) paper(£) |iso-paper| y*@nH(£) >dom_hi
0.05 112,795 112,795 112,795 0 111,544 True
0.17 127,382 127,382 127,382 0 122,640 True
0.32 143,527 143,527 143,527 0 133,635 True
dominated region never optimally chosen: PASS

VERDICT
========================================================================
The iso-elastic profit function is WELL-BEHAVED. Under any flat
effective rate it has a SINGLE strictly-concave interior maximum
that the numerical optimisers recover to better than 1e-4 relative
error against the closed form y* = n(1-tau)**e. The FOC reproduces
the elasticity identity d ln y*/d ln(1-tau) = e exactly, and the
frictionless limit y* -> n is recovered as e -> 0, so ability n is
the firm's undistorted turnover. Under the hard notch the geometry
is exactly Kleven-Waseem: profit is discontinuous at T*, the
dominated region (£85,000, £106,250) is never optimally chosen, and
the marginal buncher n_H(e) matches the paper's 112,795 / 127,382 /
143,527 for e = 0.05 / 0.17 / 0.32.

CAVEATS
------------------------------------------------------------------------
* This verifies only the INTENSIVE margin (the smooth choice of y).
The notch's EXTENSIVE bunching is a separate DISCRETE choice
(bunch at T* vs register at y*); profit is not differentiable there,
so the marginal buncher is found by an indifference solve, not an FOC.
* e is a calibration input, not identified from the synthetic data;
all numbers are CONDITIONAL on the assumed e.
Loading
Loading