A budget is where project financials are stored.
It is a place where you define which Services you offer to a client and at which rate / price.
People working on a project will also track their time against services defined in the budget.
You can add discounts and track expenses you might have on a project (you hired a contractor, bought licenses or paid for catering).
A project can have more than one Budget. For example, you could build a website in several phases.
All of these project stages can be organized under the same project, as separate Budgets. This gives you a lot of flexibility to cover specific use cases and tackle complex, multi-phase projects.
Budget <> Invoice link
The budget is also used to generate invoices. When creating an invoice, the data from the budget will be used to fill it out. Also, this connection between the budget and the invoice keeps you constantly informed about how much you've invoiced, and what you still need to invoice.
Once you have all this financial data in place, a budget gives you an insight into:
how many hours were spent
how many hours were estimated
how many hours were billable
what's the revenue
how much cost has occurred
how much profit you've made
If you take a look at a Budgets tab in a project, where you have a list of all the budgets for this project, you can see a financial summary for open (budgets you're still working on) and delivered (the work is done and can be invoiced) budgets.
total time people tracked on the budget
total billable time