julia-mpsge / MPSGE.jl

MPSGE for Julia
MIT License
14 stars 2 forks source link

Syntax improvements and additions #152

Open mitchphillipson opened 2 weeks ago

mitchphillipson commented 2 weeks ago

Endowments

In MPSGE there is syntax of the form

e: E   q:Q    r:RATE

This is equivalent to

e: E    q:Q*RATE

We should add a keyword to the endowment constructor of the form

@endowment(E, Q, ration= RATE)

This is the same as #100

Taxes

It's possible in a netput to have something of the form

I:X    q:Q    A:CONS    N:Z     M:C

This is equivalent to

I:X    q:Q    A:CONS    t:Z*C

N stands for endogenous and M for multplier

Productivity Externality

Currently in MPSGE we must do

i:P   Q: L*x    P: 1/L

It would be preferable to have syntax of the form

i:P   Q: x   X: L
EliLazarus commented 2 weeks ago

I'm generally in favour of more articulation and flexibility, so e.g. I'd rather have e: E q:Q*RATE than either e: E q:Q r:RATE or @endowment(E, Q, ration= RATE) I think it's clearer to read, and interpret, and allows other operations. There's some economics in there (MPSGE/GAMS construction) that suggests those particular combinations, but I don't think it's necessary to lock those in. Better to provide documentation on the economic intuition of those, but leave open other possibilities for users to construct.

We can discuss.

EliLazarus commented 2 weeks ago

Adding a reference back to #100 to make sure we have that clearly in mind for all this.