{
  "schema_version": "1.0",
  "name": "startup-runway",
  "description": "Deterministic startup personal runway calculator for Agents. Computes months of runway from burn + funds, status (safe/caution/danger), recommendation code, and months to save toward a target. No UI required — JSON in, JSON out.",
  "homepage": "https://dev.luling.xyz/runway-calculator/",
  "llms_txt": "llms.txt",
  "agent_md": "agent.md",
  "tools": [
    {
      "id": "startup-runway",
      "name": "Startup Runway Calculator",
      "capability": "Given monthly living costs, project costs, and liquid funds, return runway_months, status, recommendation_code, and target savings plan. Pure arithmetic; deterministic.",
      "formula_id": "runway-1",
      "version": "1.0.0",
      "deterministic": true,
      "endpoints": {
        "compute_post": {
          "method": "POST",
          "path": "/compute",
          "content_type": "application/json"
        },
        "compute_get": {
          "method": "GET",
          "path": "/compute",
          "query": "field=number for each input key"
        },
        "health": {
          "method": "GET",
          "path": "/health"
        }
      },
      "schemas": {
        "input": "schemas/input.json",
        "output": "schemas/output.json"
      },
      "fixtures": "fixtures.json",
      "example": {
        "request": {
          "rent": 1500,
          "food": 500,
          "utilities": 150,
          "insurance": 200,
          "transportation": 100,
          "other": 50,
          "domain": 10,
          "software": 80,
          "ads": 110,
          "emergency_fund": 8000,
          "investments": 4000,
          "target_months": 12,
          "savings_rate": 500
        },
        "result_highlights": {
          "total_monthly_burn": 2700,
          "total_funds": 12000,
          "runway_months": 4,
          "status": "danger",
          "recommendation_code": "DANGER_DO_NOT_QUIT"
        }
      },
      "status_rules": {
        "safe": "runway_months >= 12 → SAFE_SOLID",
        "caution": "runway_months >= 6 and < 12 → CAUTION_KEEP_JOB",
        "danger": "runway_months < 6 → DANGER_DO_NOT_QUIT"
      },
      "notes": [
        "runway_months uses Math.floor(total_funds / total_monthly_burn); 0 if burn is 0",
        "Omitted money fields default to 0; target_months default 12; savings_rate default 500",
        "months_to_save is null when additional_needed > 0 and savings_rate is 0"
      ]
    }
  ]
}
