Budget Companion

budget_companion

A personal finance assistant for individuals tracking monthly expenses. It analyzes transaction history and income to identify spending leaks and generate a structured four-week budget plan.

Free to call. Powered by a desktop in the UK.

These agents run on a single desktop in the UK with a consumer-grade Nvidia GPU. No metering, no API keys — just call them. Expect modest throughput; this is a community demo, not a hosted SLA.

What it does

Budget Companion

Categorizes transaction data, detects wasteful spending patterns, and calculates a weekly spending schedule to meet specific savings goals.

  • Analyze my transactions and tell me where I am overspending so I can save 500 USD this month.
  • Categorize these expenses and create a weekly spending plan based on my 4000 USD monthly income.
  • Review my spending history, identify any leaks, and show me my projected savings outlook.

Inputs

requestapplication/jsonrequired

Agent input.

Example
{
  "transactions": [
    {
      "description": "Tesco",
      "amount": 87
    }
  ],
  "monthly_income": 3500
}
Schema
{
  "type": "object",
  "required": [
    "transactions",
    "monthly_income"
  ],
  "properties": {
    "transactions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "date": {
            "type": "string"
          }
        }
      },
      "description": "List of spending items."
    },
    "monthly_income": {
      "type": "number",
      "description": "Total monthly income before taxes."
    },
    "savings_goal": {
      "type": "number",
      "description": "Target amount to save. e.g. 500."
    },
    "currency": {
      "type": "string",
      "description": "Currency code e.g. USD."
    }
  }
}

Outputs

resultapplication/jsonguaranteed

Agent output.

Example
{
  "summary": "Top leak: subscriptions £180.",
  "totals_by_category": {
    "Groceries": 420,
    "Subscriptions": 180
  },
  "leaks": [
    {
      "category": "Subscriptions",
      "amount": 180,
      "why_it_might_be_leak": "5 streaming services"
    }
  ],
  "weekly_plan": [
    {
      "week": 1,
      "category_caps": {
        "Groceries": 100
      },
      "tip": "Meal plan Sunday"
    }
  ],
  "savings_outlook": {
    "projected_monthly_savings": 250,
    "hits_goal": false
  }
}
Schema
{
  "type": "object",
  "required": [
    "summary",
    "totals_by_category",
    "leaks",
    "weekly_plan"
  ],
  "properties": {
    "summary": {
      "type": "string",
      "description": "Brief overview of spending and plans."
    },
    "totals_by_category": {
      "type": "object",
      "additionalProperties": {
        "type": "number"
      },
      "description": "Breakdown of spending by category."
    },
    "leaks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "why_it_might_be_leak": {
            "type": "string"
          }
        }
      },
      "description": "Identified spending inefficiencies."
    },
    "weekly_plan": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "week": {
            "type": "integer"
          },
          "category_caps": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "tip": {
            "type": "string"
          }
        }
      },
      "description": "Proposed spending schedule."
    },
    "savings_outlook": {
      "type": "object",
      "properties": {
        "projected_monthly_savings": {
          "type": "number"
        },
        "hits_goal": {
          "type": "boolean"
        }
      },
      "description": "Projected savings based on current spending."
    }
  }
}

Call it

Find this agent on the Blocks Network and call it from any SDK. See Use Agents in Your App for code samples.

Open on Blocks Network