Monday, June 20, 2016

Stock flow accounting with calculus


Commenter Peiya took issue with my comments on stock-flow analysis in the previous post. This post is mostly a response to point (3) that needed a bit more space and mathjax to be properly addressed.

The equation in question is (call stock $S$ and flow $F$, and define a revaluation functional $\alpha = \alpha [S]$):

$$
S(t) = \alpha [ S(t-\Delta t) ] + F(t)
$$

First, let's say $S(t-\Delta t) = 0$ (you're starting from zero), then this equation asserts $S(t) = F(t)$, i..e stock is equal to a flow. This doesn't make sense unit-wise (a flow represents a change in something and therefore has to happen over a period of time, hence there is a time scale associated with the right hand side, but not the left). Per Peiya, $F(t)$ is defined on an interval $[t, t + \Delta t)$, this allows us to define a function $\phi$ (assuming $F \in C^{2}$ except on a countable subset) with the same support such that

$$
F(t) \equiv \int_{t}^{t + \Delta t} dt' \phi(t') = \Phi (t+\Delta t) - \Phi (t) \equiv \Delta \Phi
$$

Thus we can actually see that $F$ is really a stock variable made from a change in stock over some time scale. Assuming a short interval where $\phi$ is approximately constant, we can see the time scale $\Delta t$ pop out:

$$
F(t) \approx \int_{t}^{t + \Delta t} dt' \phi \approx \phi \cdot \Delta t \equiv \Delta \Phi
$$

So how do we treat stock-flow analysis in a way that is consistent with mathematics? Let's start from $t = 0$ in that first equation. We have (taking a constant revaluation $\alpha$ per time period for simplicity, but can be handled in the general case as long as $\alpha$ isn't pathological)

$$
S(\Delta t) = \int_{0}^{\Delta t} dt' \phi_{1}(t')
$$

$$
S(2 \Delta t) = \alpha \int_{0}^{\Delta t} dt' \phi_{1}(t') + \int_{\Delta t}^{2\Delta t} dt' \phi_{2}(t')
$$

$$
S(3 \Delta t) = \alpha^{2} \int_{0}^{\Delta t} dt' \phi_{1}(t') + \alpha \int_{\Delta t}^{2\Delta t} dt' \phi_{2}(t') + \int_{2\Delta t}^{3\Delta t} dt' \phi_{3}(t')
$$

etc, so that (taking $\phi_{k} = 0$ outside the interval $[(k-1) \Delta t, k \Delta t)$, we can write

$$
S(t = n \Delta t) = \int_{0}^{t} dt' \sum_{i = 1}^{n} \alpha^{i-n} \phi_{i}(t')
$$

and defining

$$
\sum_{i = 1}^{n} \alpha^{i-n} \phi_{i}(t') \equiv \tilde{\phi} (t')
$$

we obtain (assuming $S \in C^{2}$ except on a countable subset)

$$
S(t) = \int_{0}^{t} dt' \tilde{\phi} (t') \equiv \Phi (t) - \Phi (0)
$$

We're back to the case where the initial stock was zero. Essentially a change in stock over a time scale ($t$) is equivalent to a flow, and everything I said about scales and metrics and free parameters in this post follows.

I do not understand the resistance to the idea that calculus can handle accounting. There are no definitions of stocks, flows, time intervals or accounting rules that are logically consistent that cannot be represented where a stock is an integral of a flow over a time scale. Attempts to do so just introduce logical inconsistencies (like stocks being equal to flows above).

53 comments:

  1. Why the revaluation functional α=α[S]?

    ReplyDelete
    Replies
    1. I tried to use the equation the commenter provided in order to minimize the number of possible sources of nit-picking. In the end, it turns out to not be important -- you can say the revaluation of an asset over a time period dt is equivalent to a flow of funds. Your stock goes up by €10 to €110 is either a revaluation of the stock (€100 × 1.1) or just an additional flow (€110 = €100 + €10).

      This equivalence is shown at the end of the post (you can rewrite stock today = "revaluation of stock yesterday plus integrated flow" as simply "integrated flow").

      Delete
    2. I reformat the example to illustrate the flavors of stock and flow variables in FOFA accounting. FOFA SC Flows matrix and SC Levels(Stocks) matrix are on pages 1 and 2 here http://www.federalreserve.gov/releases/z1/current/z1r-2.pdf

      Suppose person X has net worth 5M (4M in houses and 1M in equities) at end of year 2014. During 2015,he got saving 0.25M, however, his house price went down 25% and stock price went up 10%.

      What is his net worth at end of year 2015?

      The instance of that recursive function is as follows:

      S(0, 2015)
      = α(5M,2015) + F(2015)
      = (4Mx0.75+ 1Mx1.1) + 0.25M
      = 4.25M

      The flow F(t) is $0.25M
      The change of stock S(0,t) is - $0.75M (= 4.25M − 5M )

      Delete
    3. Use € signs as the dollar signs cause mathjax javascript to activate:

      $\sum_{i} x_{i} = X$

      Delete
    4. Here is the last part of your comment fixed:

      S(0, 2015)
      = α(5M,2015) + F(2015)
      = (4Mx0.75+ 1Mx1.1) + 0.25M
      = 4.25M

      The flow F(t) is €0.25M
      The change of stock S(0,t) is - €0.75M (= 4.25M − 5M )

      Delete
    5. Also, your definitions of stock versus flow is an arbitrary naming convention. Saying

      X(t) = 1.1 X(t-1) + Y(t)

      is no different from saying

      X(t) = (1 + 0.1) X(t-1) + Y(t)

      X(t) = X(t-1) + (Y(t) + 0.1 X(t-1))

      X(t) = X(t-1) + Z(t)

      where Z(t) ≡ Y(t) + 0.1 X(t-1).

      Delete
    6. Sorry I lost original comment text after deleting and plan to resubmit with better format. Anyway, I think Jason got the point from his response.

      The recursive definition of S(0, t) in FOFA is as follows.

      S(0, t)
      =
      if (t = 1)
      then F(t)
      else α(S(0,t-1),t) + F(t)

      Delete
    7. Yes, stock versus flow is an arbitrary naming convention.
      But FOFA time-series data use the naming convention. It makes our used accounting terms consistent with FOFA/NIPA data in our text description.

      Delete
    8. By arbitrary I meant it has no implications in terms of dynamics or the degree of freedom that arises from coupling a stock to a flow.

      As stated, the definition:

      S(0, t)
      =
      if (t = 1)
      then F(t)
      else α(S(0,t-1),t) + F(t)


      Is not mathematically correct -- it assumes properties of the dynamics (it should be more general to be correct). You can freely take F → β F and change nothing about the accounting, but change the rate at which things happen. coupling a stock to a flow with the equation

      S(t) = α(S(0,t-1),t) + F(t)

      introduces a factor of the "money-time" metric. There is a "spatial" (money) freedom (revaluation, defined by α), but for some reason there is no time freedom (included via some β, essentially a velocity).

      Why do you recognize the spatial free parameter (revaluation) but not the identical temporal free parameter (velocity)? These are the same thing, just in different dimensions (money vs time)! Revaluation expands or contracts money, velocity expands or contracts time.

      Maybe looking at it another way will help: this "accounting definition" is set up such that all velocity changes are defined as revaluations.

      Above, I redefined a revaluation as a velocity change by defining Z(t). The way this accounting works is to basically say velocity doesn't exist and therefore you must imagine all velocity changes as revaluations of stocks ...

      X(t) = a X(t-1) + b Y(t)
      X(t) = a X(t-1) + b Y(t) + Y(t) - Y(t)
      X(t) = a X(t-1) + Y(t) + (b-1) Y(t)
      X(t) = a X(t-1) + Y(t) + (b-1) Y(t) X(t-1)/X(t-1)
      X(t) = a' X(t-1) + Y(t)

      with new revaluation a' with

      a' ≡ (b-1) Y(t)/X(t-1)

      It makes no sense to do this. It is arbitrary and has no impacts on the results except to make pure velocity effects in macro models harder to understand.

      Delete
    9. I love me some $\$$ signs. I can't get enough $\$$ signs. $\$$ signs everywhere! =)

      Delete

    10. No, it does not assume any properties of the dynamics.

      Accounting identities are behavior-neutral and independent of schools of economic thought.

      S(0, t) is defined in a practical way to reflect underlying accounting semantics and available time-series data.

      FOFA/NIPA measures total quantity of F(t) and no detailed money velocity V-F(t) and money demand Md-F(t) for flow variable F(t).

      F(t) is supposed to be equal to Md-F(t) * V-F(t) according to
      this definition:

      Money velocity represents the average rate at which money changes hands in a given time period.


      Our GDP production basically consists of many transactions with money changed hands for services, products, labors and other payments such as transfer, interest payments, etc. FOFA/NIPA records aggregation of these transactions according to spending flow variables such as I, C, G, etc. and income flow variables such as wages, net operating surplus, etc.

      An interest question is: can we compute or estimate money velocity from current FOFA accounting?

      Yes, we can estimate Md-F(t) and V-F(t) for certain flow variables F(t) such as GDP. Note that M2 velocity refers to money supply velocity.

      Delete
    11. Let me try again -- this is a repeat of the point I made below:

      A flow F, even in a discrete accounting representation happens between two discrete time points t and t + Δt (this is your valid time [t-start, t-end) interval, t-start = t and t-end = t + Δt). Therefore F = F(t, Δt). A flow depends on its valid time interval length. The t in this case is just an index.

      A stock S, in a discrete or continuous representation is an amount like €100. It is not "€100 for 1 year". There is no time scale associated with it. If the US printed one dollar (ever), outside of the time it was created, that would be a currency stock of 1 dollar -- regardless of whether you look at it over a year or a month. Therefore S = S(t-1) where t-1 is an index.

      Therefore, if you add

      α S(t-1) + F(t, Δt)

      There must exist a time scale τ such that

      α S(t-1) + F(t, Δt/τ)

      that renders the time period Δt (valid time interval) dimensionless.

      α S(t-1) + F(t, "some number")
      α S(t-1) + F(t)

      Basically, it's units:

      (dimless factor) * €100 + (€100 over Δt)

      cannot be added. There must exist a unit of time. Something must be in that flow that turns it into a stock that can be added to another stock.

      The integral representation lets you see this more explicitly. The accounting representation hides it in external definitions (e.g. valid time). The accounting representation makes a fundamental aspect of economics (it is a dynamical system and things happen over time) harder to understand. I can tell because stock-flow/accounting advocates do not seem to understand it!

      Delete
    12. "The accounting representation hides it in external definitions (e.g. valid time)"

      No, accounting representation is a standards practice in temporal data management
      https://en.wikipedia.org/wiki/Valid_time. Also, FOFA/NIPA pretty much be consistent with international SNA2008 standard.

      On the contrary, valid time representation uses time-interval explicitly, no hiding and treat time as a logic variable, not index. If a stock has no time-interval associate, then it cannot a temporal logic statement for assertion on time.

      Delete
    13. No, accounting representation is a standards practice ...

      Yes, that is hiding the time dependence in an external document as opposed to in the mathematical object itself.

      Also, nothing you have said in any way interferes with the way I've represented time above. I'm pretty sure you have no idea what I meant by index because there's no difference between saying time is a "logic variable" and saying it is an "index" (unless by "logic variable" you mean something is wrong).

      Also, time really is an index at least as far as the known universe goes. Quantum gravity might eventually have something different to say. But accounting ain't quantum gravity.

      Are you familiar with object attributes in coding?

      Let's represent the function S(t)

      S[i].time = ti
      S[i].value = si

      Now let's represent the function F(t)

      F[i].time = ti
      F[i].value = fi
      F[i].interval = Δt

      Now I can't just add:

      S[i-1] + F[i]

      because they have different attributes. I have to create a method that adds these objects.

      def SFadd(s, f, α)
      x.time = f.time
      x.value = α s.value + f.value
      return x

      Since x does not have an attribute interval, we know it is a stock, not a flow. And so I can say:

      S[i] = SFadd(S[i-1], F[i])

      Side note: the index i of S[i] is exactly mapped to the values ti, so time is an index.


      My objection is that the proper way to define this function is (at a minimum assuming a constant flow over the interval
      Δt)

      def SFadd_constantFlowOverInterval(s, f, α, τ)
      x.time = f.time
      x.value = α s.value + f.value *(τ/f.interval)
      return x

      Delete


    14. I can only say your representation is different from the definitions of stocks and flows in accounting.

      Accounting itself is a consistent system. You can not understand accounting term definitions and data by using your concept of flows and stocks since they are inconsistent.

      Delete
    15. S and F should have same attributes as modified in bold below

      S[i].time = ti
      S[i].value = si
      S[i].interval = [0 t-end]

      Now let's represent the function F(t)

      F[i].time = ti
      F[i].value = fi
      F[i].interval = Δt = [t-start t-end]

      Delete
    16. I defined the interval [t-start, t-end] by [f.time, f.time + f.interval]. There's no functional difference.

      However, there is no S[i].interval. But let me humor you for a moment. Even if there is, the proper way to deal with this is:

      S[i].time = ti
      S[i].value = si
      S[i].interval = Δt1

      Now let's represent the function F(t)

      F[i].time = ti
      F[i].value = fi
      F[i].interval = Δt2

      And therefore:

      def SFadd_constantFlowOverInterval(s, f, α, τ)
      x.time = f.time
      x.value = α s.value * (τ/s.interval) + f.value *(τ/f.interval)
      return x

      It's still there!

      Whatever you do that Δt will pop back up! You can't get rid of it because it depends on the existence of change.

      Nothing can change without time, and therefore there must exist a time scale. There is no such thing as dimensionless time. Time is not a pure number.

      Delete
    17. I do this way to make return type x is stock variable.
      Assume α is constant.

      def SFadd_constantFlowOverInterval(s, f, α, τ)
      x.time = f.time
      x.value = α s.value + f.value
      x.interval = (τ/s.interval) + (τ/f.interval)
      return x

      Delete
    18. You are correct; I made a mistake there. The correct version would be (assuming changes in the interval have no impact on the stock, but you still could):

      def SFadd_constantFlowOverInterval(s, f, α, τ)
      x.time = f.time
      x.value = α s.value + f.value*k(τ/f.interval)
      x.interval = s.interval + f.interval
      return x

      where k(τ/f.interval) is a function with some dependence on the time scale .. the simplest being k(τ/f.interval) = τ/f.interval.

      But this still has to incorporate the idea of a time scale.

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Jason,

    People use integrations in continuous time models all the time. It's just that there are exactly zero real world transactions that happen as continuous flows. You are playing around with math that has no correspondence to observable real world data.

    Heat flows in a bar - continuous.

    Monetary transactions - discrete set of non-zero transactions that occur at isolated time points.

    SFC models respect that reality, your continuous time models do not.

    ReplyDelete
    Replies
    1. Per Ed Seedhouse below, heat flow is not continuous at the scale of optical phonons.

      There exist time scales over which there is no difference between a continuous and a discrete representation. Therefore at time scales over which thousands of transactions occur (N), a continuous representation will be accurate to o(1/N).

      And thousands of transactions occur in less than a second in the US. So on any time scale greater than a second, there is an effective representation in terms of continuous variables.

      However, my primary point does not have anything to do with discrete versus continuous. In the post above, all of those functions can be represented by piecewise step functions that faithfully represent the discrete transactions.

      A flow F, even in a discrete representation happens between two discrete time points t and t + Δt. Therefore F = F(Δt).

      A stock S, in a discrete or continuous representation is an amount like €100. It is not "€100 for 1 year". There is no time scale associated with it.

      Therefore, if you add

      S + F(Δt)

      There must exist a time scale τ such that

      S + F(Δt/τ)

      Basically, it's units:

      €100 + (€100 from t to t + Δt)

      cannot be added. There must exist a unit of time. Something must be in that flow that turns it into a stock that can be added to another stock.

      Delete
    2. "A stock S, in a discrete or continuous representation is an amount like €100. It is not "€100 for 1 year". There is no time scale associated with it."

      No, a stock S in accounting must have a time interval associated it. I used [0,t] in a recursive function definition.

      Delete
    3. Heat flow - I did not put in a disclaimer for quantum effects. People have been using continuous time differential equations for heat flow for decades, and were able to build engineering systems with them.

      There is no delta T for an instaneous transfer of money. The best you can approximate it with is a Dirac delta function (which is not actually a function). There is certainly no time constant associated with a single delta "function"; all we can do is cumulate several such events across an accounting period. This creates the $/time units that you seem to be worried about. But, there is no well defined flow per unit of time for a single transaction, since it happens on an arbitrarily small interval, while a non-zero amount of money changes hands. This is covered in any undergraduate signals and systems textbook.

      I am pretty sure that this is covered in any economics textbook that uses continuous time expressions, like Romer, although the handling of the mathematics is going to be sloppy. There are some continuous time SFC models, but that was not the preferred methodology. It is more difficult to get the accounting correct, and it is harder to simulate more complex behaviour. Furthermore, you then have to somehow relate your model to observed data, which consist of monthly and quarterly series.

      Delete
    4. So a stock S(t) changes if you change the zero in [0,t] to [1, t]? It is then S(t), but a different S(t) I guess?

      In any case, if that is true then there is an implicit time scale in the stocks too. And therefore you have to reconcile both scales:

      α S(t-1, Δt1/τ1) + F(t, Δt2/τ2)

      The τ2 can't jump over the addition symbol to multiply the t1!

      Delete
    5. "There is no delta T for an instaneous transfer of money."

      This would violate causality. You cannot send a signal faster than light.

      But that is not what were' talking about here.

      "But, there is no well defined flow per unit of time for a single transaction, since it happens on an arbitrarily small interval, while a non-zero amount of money changes hands."

      This is what we are talking about here!

      Who said single transaction? We have always been talking about an ensemble of transactions and just like a single atom doesn't have a well defined temperature, a single transaction doesn't have a well defined velocity.

      But, just like you can create an ensemble of phonons to create a continuous heat flow (note: phonons not quantum effect, they are discrete lattice effects based on atoms) or an ensemble of atoms to create a temperature, you can have an ensemble of transactions characterized by a flow.

      Also know that these "new" quantities (temperature, heat flow, money flow) create new model scales (kB, thermal conductivity, velocity).

      THAT IS MY POINT.

      YOU ARE TRYING TO SAY kB DOES NOT EXIST AND MUST BE kB = 1 BECAUSE OF ACCOUNTING.

      NOPE.

      Delete
    6. "So a stock S(t) changes if you change the zero in [0,t] to [1, t]? It is then S(t), but a different S(t) I guess?"

      S(1, t) is meaningless. This powerful recursive definition does not define it. "0" in S(0, t) is just a short notation for a "fixed" starting time in a system and a reference for all stock and flow temporal variables. We can use any notation for it.

      Delete
    7. "A stock S, in a discrete or continuous representation is an amount like €100. It is not "€100 for 1 year". There is no time scale associated with it."

      I think you have a different interpretation about stock S.

      When I say Net worth S(0, 2014)= €100 at end of year 2014, it really means an accumulation from beginning of year 0 to end of year 2014. No. of accumulation time-intervals = 2014 Δ

      When I say Saving F(2015)= €100 at end of year 2015, it only means an accumulation from beginning of year 2015 to end of year 2015. No. of accumulation time-intervals = 1 Δ

      I do not know why you say it cannot add? I assume there are time-intervals operations required for adjusting the time interval in the result of S + F.


      Delete
    8. Most money is defined as an entry on a digital computer. If a bank sends a transfer of $100 to another, the transfer will occur on one clock cycle on the relevant computer. The transfer occurs in one step; at no point does a transfer of $50 occur. Since digital numbers only make sense in terms of their steady state value, what is happening in the underlying analog circuitry (which propogates at a finite speed) does not matter.

      Cash flows are not like teeny little atoms; they can be large, and you cannot always pretend that we can approximate them with continuous flows. Walmart sees a monthly sales cycle related to the fact that welfare payments are paid on a single day.

      As soon as you start averaging your cash flows over time, you are doing standard accounting, which is what SFC models do. However, you had some theory that was somehow inadmissable because you were arguing that the underlying cash flows were continuous, and there was some time constant in there, which somehow made SFC models invalid.

      Delete
    9. Cash flows are not like teeny little atoms; they can be large, and you cannot always pretend that we can approximate them with continuous flows. Walmart sees a monthly sales cycle related to the fact that welfare payments are paid on a single day.

      Do you have a reference to the research that shows this is true at the scale of the macroeconomy?

      Total welfare spending is about 212 billion per this article, therefore annual welfare spending is about 1% of the economy (assumed 18 trillion). Even this massive lumpiness is a 1% effect. Social security spending is about 4 times that. Overall, discretization effects are small.

      However, even if that mattered, this still does not eliminate the need for a time scale -- there'd be one that determines the rate at which the money in all those millions of credited accounts decay away.

      Delete
    10. As a public service to the readers, I'm redoing Brian's first couple of lines above for readability:

      "Most money is defined as an entry on a digital computer. If a bank sends a transfer of $\$$100 to another,the transfer will occur on one clock cycle on the relevant computer. The transfer occurs in one step; at no point does a transfer of $\$$50 occur."

      Delete
    11. ... not to mention to show off my mad $\$$ skillz.
      (check it out, two kinds: $\$$ and $\text{\$}$)
      ;^)

      Delete
    12. Tom,
      Important skill: how to make money $$$ :-)

      Delete
    13. I wish there was an option to "like" comments.

      Delete
  4. "Heat flows in a bar - continuous."

    Not so sure about that. Heat is the motion of molecules and molecules are discrete. Of course so many of them move at the same time that you can treat heat as a continuous flow with no meaningful errors. Same with electricity which, technically, is the motion of discrete entities called "electrons" but can be calculated as a flow with no noticeable errors.

    Cannot the same be true for money?

    Mind you I am neither a mathematician nor an economist or an accountant. Just a layman's question.

    ReplyDelete
    Replies
    1. Yes, this is basically correct. Heat flows through phonons.

      Delete
  5. Text: "I do not understand the resistance to the idea that calculus can handle accounting."

    Moi aussi. It may not be necessary, but that is another question. :)

    ReplyDelete
  6. Text: "The equation in question is (call stock S and flow F, and define a revaluation functional α=α[S]):

    S(t)=α[S(t−Δt)]+F(t)"

    I am reminded of a riddle attributed to Abraham Lincoln.

    Q: How many legs does a dog have if you call a tail a leg?

    A: Four. Calling a tail a leg doesn't make it one.

    ReplyDelete
    Replies
    1. That's Peiya's equation, not mine!

      Delete
    2. My version is here.
      The recursive definition of S(0, t) in FOFA is as follows.

      S(0, t)
      =
      if (t = 1)
      then F(t)
      else α(S(0,t-1),t) + F(t)

      Delete
    3. Jason, remember that I am one of your supporters. :)

      Peiya, saving (without the final "s") is indeed a flow variable. Suppose that last year I saved USD 1,000, as indicated by the difference in my savings account. Then my saving was USD 1,000 per year. To get the change in my nominal net worth (USD 1,000) we have to multiply may saving by one year. That may seem like a trivial step, but it means that we have to write the equation differently to indicate the multiplication by time.

      Delete
    4. Bill,
      Note that Net Worth S is defined as a recursive function.
      Each year saving F(t) is already added to that year net worth S.

      Let me illustrate the meaning of this recursive function.
      Assume revaluation function α is an identity function.
      i.e. α(S(0,t-1), t) = S(0, t-1)


      S(0, 2015) = S(0,2014) + F(2015)
      S(0, 2014) = S(0,2013) + F(2014)
      S(0, 2013) = S(0,2012) + F(2013)
      ....
      S(0, 1) = F(1)

      This is how S(0, 2015) adds each year saving

      Delete
    5. Peiya,

      You have this:

      S(0, 2015) = S(0,2014) + F(2015)

      which means that

      F(2015) = S(0, 2015) − S(0,2014)

      I. e., F(t) is the difference between two stock variables. And that means that F(t) is also a stock variable, not a flow variable. Or, perhaps F(t) is a flow variable and so S(0,t) is too.

      Delete
    6. Maybe I am not quite using the terms correctly. But if the stock of widgets, S, is measured in widgets, then the difference in two Ss is also measured in widgets. The flow of widgets is measured in widgets/time. It is not simply the difference in two stocks of widgets.

      Delete
    7. No, you are correct Bill. The time comes from the fact that:

      S(0, 2015) − S(0,2014)

      has a Δt = 1 year.

      This is the problem -- this kind of stuff (like time scales) is all implicit and represented in terms of "metadata".

      Delete
    8. Bill,

      Note that, to get down to the core issue, I made an assumption about α in previous example.

      Assume revaluation function α is an identity function.
      i.e. α(S(0,t-1), t) = S(0, t-1).


      For a full version,
      S(0, 2015) = α(S(0,2014), 2015) + F(2015)
      S(0, 2014) = α(S(0,2013), 2014) + F(2014)
      ...

      Each year, BEA calculates current Stock by just adding the revaluation of existing Stock from end of previous year with current year Flow. This is why I mentioned before ∆H is not correct in G&L SFC ∆H = G - T.



      Jason,
      In a valid-time temporal logic formalism, we need to define
      special temporal operators such as BEFORE, AFTER, OVERLAP, etc https://en.wikipedia.org/wiki/Temporal_logic for handling logic assertions over time-interval relationships.


      To formalize accounting in temporal logic, we define certain temporal operators for manipulating Flows and Stocks. To this formalism, α is a just special one-step temporal operator for revaluation of previous year Stock to current year. "+" is also a special 1-step temporal operator for adding external Flow into Stock.

      We only need one-step(time interval) operator "+" for adding one external flow with a stock in accounting as shown in this simple recursion. Also, one-step operator α for revaluation of Stock.

      But this "+" from an external flow into a stock has a different meaning from generic "+" in adding two flows or two stocks. To make it easier in reading, we can use different operator names such as "ExternalFlowIn" for "+", "InternalFlowIn" for α.

      So, this kind of stuff (like time scales) is all "explicit and defined in terms of temporal operators". We can say different temporal operators have different time scales in semantics.


      Delete
    9. Bill,

      "F(t) is the difference between two stock variables. And that means that F(t) is also a stock variable, not a flow variable. Or, perhaps F(t) is a flow variable and so S(0,t) is too."

      The main difference between flow and stock variables is the form of time-interval. Stock is in [0 t-end] from a fixed time beginning(0) to end of time period t. Flow is in this form [t-start t-end]. While stocks use time-snapshot representation, flows use time-interval representation in valid-time temporal logic terminology.

      Accounting data are macro data and represent aggregation of all transactions over time intervals. There is no detailed micro transaction data. The meaning of aggregated accounting data is: the aggregation is valid over specific time-interval. They are not transaction data instance.


      For example, NetWorth(0, 2015) is in this interval [1/1/0 12/31/2015], Saving(2015) is in this interval [1/1/2015 12/31/2015]

      Each temporal operator explicitly defines its value operation AND time-interval operation from input operands of stocks and flows associated with time-intervals.

      The result of temporal operator "revaluation" for stock NetWorth(0, 2014) is a stock with time-interval (0, 2015).

      The result of temporal operator "+" for adding revaluation of stock NetWorth(0, 2014) with flow Saving(2015) should be a stock NetWorth (0, 2015) with time-interval [0 end-of-2015].

      The time-interval from the result of a temporal operator is defined by the operator semantics.


      Delete
    10. Then we can access the time scales and construct flows from stocks, introducing exactly the degree of freedom I mentioned above.

      What is the problem you had with what I said?

      PS Now "+" is a special operator :)

      (That's a joke; in our case here plus is the time evolution operator.)

      Delete
    11. This comment has been removed by the author.

      Delete
    12. This comment has been removed by the author.

      Delete
    13. This comment has been removed by the author.

      Delete
    14. [Had to switch computers.]

      So what we have is

      $$
      S(t+ \Delta t) = S(t) e^{\hat{O} \Delta t}
      $$

      $$
      \approx S(t) (1 + \hat{O} \Delta t)
      $$
      $$
      = S(t) + S(t) \hat{O} \Delta t
      $$

      So that

      $$
      F \equiv S(t) \hat{O} \Delta t
      $$

      And there's your explicit dependence on the time scale and your degree of freedom. Part of $\hat{O}$ has to cancel out the $\Delta t$ to give $F$ units of a stock.

      And note that this does work for discrete systems; it is how you propagate a field in lattice QCD.

      And note that now I've illustrated why I'm right in three different ways (calculus, direct simulation, and lattice operators). I might have made a mistake -- but in three completely different approaches?

      You should at least consider the possibility I might be right.


      [Sorry to spam -- editing LaTeX in comments is difficult; I found out align doesn't work or at least opens the opportunity for errors.]

      Delete
  7. It may be the case that -simply as a stylized fact - the money supply turns out to fluctuate around 1X annual gdp for many or most of the high-income countries that constitute the bulk of global output ( maybe it represents a sort of "operating capital" or "working capital" for the whole economy ) . If so , this would render the stock vs flow argument moot in many cases , as one could simply choose to use either gdp or the money proxy depending on the model being examined.

    Looking at M3 or M2 for high-income OECD countries as a group , it seems that this stylized fact may indeed hold ( close enough for gov't work , anyway ) :

    http://www.tradingeconomics.com/high-income-oecd/liquid-liabilities-m3-as-percent-of-gdp-wb-data.html

    http://www.tradingeconomics.com/high-income-oecd/money-and-quasi-money-m2-as-percent-of-gdp-wb-data.html

    Marko

    ReplyDelete