Parsware
All articles

Parsware Platform

Capital planning: a whole application, walked through

One sample that is a whole application: six tables, an approval process, two reports and a phone app, a year into use. A walk round it one rail group at a time, and what each piece is doing for the others.

The Capital programme budget position report, fourteen budget lines and a total of £15,000,000, open in the Capital planning app, next to the title "Capital planning, walked through"

Every sample in this series shows one thing. Capital planning, end to end (studio-capital-planning) is the exception: it's a whole application, because the question a department asks before it commits to a platform is what the pieces look like together.

It says one sentence that can't be said by anything smaller: a request is raised on a phone, against a budget line a programme funds, and its amount decides who approves it, read from a table a finance team edits rather than from a branch in a script.

Earlier articles took pieces of it apart: Approval by amount for the process and its bands, and A phone app on the same data for the phone screen. This one walks round the whole thing.

What's in the box

Import it with Include demonstration data ticked, into an environment that isn't Production. In the maker portal, the solution lists what came with it:

The Capital planning, end to end solution, version 2.0.0, managed: tabs for Tables (6), Option Sets (9), Apps (1), Saved Queries (2), Report (2), Studio apps (1), Roles (4) and Process (1), and the six tables Approval record, Approval threshold, Capital budget, Cashflow line, Capital programme and Capital request

Six tables, and each one has a job:

Table Its job
Capital programme One a year. Everything is charged against its total
Capital budget A department and a category together: the line a request is charged to
Capital request What somebody asked for, and where it has got to
Approval threshold The one place an amount becomes an approver
Approval record One row per decision, written by the process. Nobody types into it
Cashflow line What was forecast in a month against what was spent

And it arrives a year into use: a £15,000,000 programme, 14 budget lines, 3 threshold bands, 32 requests in every status, 47 decisions and 109 months of cashflow. The bands always come, because the process routes by them; the rest comes only with demonstration data.

The app, one group at a time

Open Capital planning in the Shell. The rail is grouped by what people come to do: Raise, Decide, Plan, Record and Configuration. It opens on Raise, the drawn phone screen, because raising a request is what most people come for:

The Capital planning app: the rail with Raise a request, Capital requests, Request for approval, Programmes, Budget lines, Budget position, Approval history, Cashflow and Approval thresholds, and the New request screen in the middle, a 390-wide column

On a desktop the column stays 390 wide in the middle; on a phone it's the whole screen. That screen and the panel that checks a request as it's typed are article 132.

Decide

Capital requests is the table's own list, and a request opens on a form with two halves: what the requester wrote on the left, and what the process decided on the right.

CR-2026-009, Clinical documentation digitisation: budget line Estates — Digital programmes, amount 693200 on the left; Request status Awaiting CIG, Approval level Executive board and CIG required ticked on the right

£693,200 is over £500,000, so the band says Executive board and CIG required, and the request is waiting for the Capital Investment Group. Its Approval history tab says how it got there:

The Approval history tab: Department head approved by Dr Helen Carver on 2026/08/21, and Finance director approved by Marcus Adeyemi on 2026/08/27

Two levels said yes; the third hasn't decided yet. Those rows were written by the process, one per decision, with who decided taken from the task as it finished. A new request starts the process when it's created, and its task appears in the top bar of whoever its band names. Request for approval is the report the CIG reads when its task opens.

Plan

Budget lines is where the money is: each line is a department and a category, with its original budget, what approved requests have committed, what's been spent and what's left.

Capital budgets: fourteen lines from Estates — Digital programmes to Theatres — Medical equipment, each with Programme, Department, Category, Original budget, Approved commitments, Actual spend and Remaining budget

Budget position is the page somebody asks for before a capital meeting, least left first, because that's the order the conversation happens in:

Capital programme — budget position: Estates — IT infrastructure first with 176,700.00 left of 300,000.00, Radiology — Medical equipment last with 2,000,000.00, and a Total of 15,000,000.00 budget, 1,527,800.00 committed and 11,998,800.00 left

Left is what's neither committed nor spent yet, which is why it's less than the budget minus the commitments. Reports get their own series, starting with the next article.

Record

Approval history lists every decision across every request, and Cashflow lists each request's months: what was forecast and what was actually spent.

Cashflow lines: 2026-04 — CR-001 for the anaesthetic machine replacement programme, forecast 130800, actual 0, and more months below; one row for the endpoint detection rollout with 73800 spent

Only approved requests have started to spend. Nothing on the phone writes cashflow; filling it in is a finance task.

Configuration

Approval thresholds holds the three bands:

Approval thresholds: Up to £100,000 — Department head, £100,000 to £500,000 — Finance director, and Over £500,000 — Executive board and CIG, with CIG required Yes

This is the table the sentence at the top is about. Edit a band's maximum and the next request over that amount goes to someone else, with nothing rebuilt and no script that mentions an amount. Approval by amount moves one and watches it happen.

How the pieces lean on each other

  • The phone needs the budget lines. Two pickers, department and category, name exactly one line, which is what makes "is there money for this?" a question with an answer.
  • The process needs the thresholds. It reads the band an amount falls in and keeps three things: the level, the role that decides at that level, and whether the CIG must see it.
  • The reports need the history and the commitments. The budget position is approved requests added up; the CIG's report is the request it's deciding.
  • The four roles keep each person on their part. A requester raises a request and reads their own and nothing else; a budget holder decides the small ones and passes the rest on; the finance director decides above that; the CIG reads a report of the request rather than its form, because a form invites an edit.

Each piece is still a separate document with its own schema and its own test, so when one breaks the failing test names it.

What we fixed

Walking round it turned up two problems, both fixed:

  • The budget position's totals broke across two lines. The money columns were too narrow for £15,000,000.00, which printed as 15,000,000. with 00 under it. The report no longer repeats the department and category, which a budget line's name already says, and the money columns have the room.
  • Requests waited for the CIG that didn't need it. The seed data had requests in Awaiting CIG whose band doesn't send anything there: CR-2026-009 was £193,200, a finance director's band, with CIG required unticked. A request waiting on the CIG is now one whose amount puts it in the CIG band.

Try it

Import Capital planning, end to end with Include demonstration data. Give one person Capital requester and another Budget holder, raise a request on the phone as the first, and decide it as the second. Then move a threshold and raise another.

Next: the Reports series, starting with a report that prints exactly as designed.