Our App is in the alpha stage, the beta is coming soon.

Welcome to Costs to Expect



Costs to Expect is a service focused on tracking and forecasting expenses. We are trying to simplify your budgets. There are three core products in the service; the Open Source REST API, our App and an Open Source website showing the costs to raise our children to adulthood.

Our API is the backbone of the service, everything depends on it. Our API is available to anyone who wants to use it. Our focus is expenses, however, that will change as the product matures.

Access API View our API on Github

The documentation for the API is available as a Postman collection.

Examples Postman

Our Products

There are multiple products within the Costs to Expect service, the major products being our API and App, below is a quick overview of each product.


Our Open Source REST API, available under the MIT license, the API drives the entire service.

Our App

Our App is the commercial offering for Costs to Expect, we are working towards the public alpha, our aim is to make tracking and forecasting expenses as simple as possible.

Our Website

Our website is a long-term social project. My wife and I are tracking all the expenses to raise our child to adulthood.

Our Blog

Our blog acts as a central repository to list all updates, explains why we are doing what we are and acts as a place for us to talk about our products and the service.


The latest release of the Costs to Expect API is v3.02.0; we released it on the 4th Aug 2022.

The changelog below shows all the fixes and improvements we have made, to view the entire changelog please check here.


  • We have added a keyed data endpoint, allows us to store arbitrary data for games, later, we will add support for keyed data below the `allocated-expense` item-type.
  • We have added an `include-players` parameter for the items collection and show requests when fetching games.
  • v3.02.0 - We have added the "budget" `item-type`, required for the Budging app.


  • The validation error for a non-distinct category is not based on the resource type/item type combination. For expenses the message refers to categories, for the game item type the message refers to players.
  • v3.01.0 - Updated the limit for category assignments.
  • v3.01.1 - Updated the README to document the `X-Skip-Cache` header.


  • The fallback route returns a 404 status code along with the existing message.
  • Added a lang file for `parameters-show` for allocated expenses.
  • We have updated model calls in the manage controllers, using `$viewable_resource_types` when they should be using `$permitted_resource_types`.
  • Minor refactoring and clean-up.
  • v3.00.1 - Corrected the route prefix for cache invalidation, JSON schema files and the README.
  • v3.00.2 - The `player_id` should be the `category_id`, not the `item_category_id`.
  • v3.00.3 - The `complete` filter parameter for games can return in progress games, was limited to be a positive option only.
  • v3.01.1 - Corrected the case for the `X-Skip-Cache` header.


  • We have removed the `simple-expense` and `simple-item` item types. Simple expense are covered by Allocated expenses and Simple items don't have a place inside the service at the present time.

Copyright © Dean Blackborough 2018 - 2022
Our App | Our Website | Our Blog | Status

Latest release: v3.02.0 (4th Aug 2022)

All code maintained by Dean Blackborough and released under the MIT license.