SPB Git

spb/wp29_uqo

Public

# F5-dev-01 — Cobb–Douglas consumer: closed-form demands with numerical validation

# Scientific question

A consumer with utility u(x1, x2) = α ln x1 + (1 − α) ln x2 chooses non-negative quantities of two goods subject to the budget constraint p1 x1 + p2 x2 ≤ m. The estimands are the Marshallian demands x1*(p, m) and x2*(p, m), the indirect utility v(p, m) = u(x1*, x2*), and the budget identity residual p1 x1* + p2 x2* − m at the optimum. Derive the closed-form solution, state the assumptions under which it is the unique optimum, and validate it numerically by an independent constrained maximisation (grid search or a numerical optimiser on the budget line).

# Inputs

  • data/parameters.csv — columns parameter, value, description; one row per parameter: alpha (exponent on good 1, dimensionless), p1, p2 (prices, currency units per unit of good), m (income, currency units). These are given parameters of a theoretical exercise, not observed data.

# Information-availability rules

  • Use only data/parameters.csv. No other input exists.
  • The closed-form expressions must be derived from the stated utility function; the numerical validation must not use the closed form (it must maximise utility directly).

# Required outputs

  • out/results.json with the keys:
key type unit meaning
task_id string — "F5-dev-01"
x1_demand number units of good 1 closed-form Marshallian demand for good 1
x2_demand number units of good 2 closed-form Marshallian demand for good 2
indirect_utility number utils u evaluated at the closed-form demands
budget_identity_residual number currency units p1·x1_demand + p2·x2_demand − m (should be numerically zero)
mrs_at_optimum number — marginal rate of substitution (∂u/∂x1)/(∂u/∂x2) at the closed-form demands
price_ratio number — p1/p2
expenditure_share_good1 number — p1·x1_demand / m
indirect_utility_numerical number utils maximum utility found by the independent numerical maximisation on the budget line (the baseline check)
feasibility string — "complete", "partial" or "infeasible"
feasibility_reason string or null — explanation if not complete
data_issues array of {"issue","handling"} — data problems detected and how handled (empty list if none)
n_input_rows object — {"parameters.csv": rows read}
n_analysed integer or null — number of parameter rows used
random_seed integer or null — seed used, if any
  • out/report.md with the sections: Question; Data and exclusions; Method; Results; Uncertainty; Limitations and open issues. The Method section must state explicitly the assumptions under which the closed form holds (e.g. interior solution, strict monotonicity/concavity, parameter ranges) and the scope of the numerical validation (which parameter point it covers).
  • out/analysis.py — running ~/wp29/venv/bin/python out/analysis.py from the workspace root must regenerate out/results.json from data/ only, deterministically. It must contain both the closed-form computation and the numerical validation.
  • out/claims.json — a list of the central claims of the report: [{"id": "C1", "text": "...", "results_keys": ["..."], "status": "supported"|"unsupported"|"not_evaluated", "caveat": "..."}].

# Constraints

  • No network access. Python: ~/wp29/venv/bin/python (numpy, pandas, scipy, statsmodels available). Do not modify data/.
  • This task is designed to be completed in well under 15 minutes of work.
Files · 449400ebf8aa08d286e9899c675eeb9b3997f6a3
Menu

Theme