The treasury integrations that never paid back now do. Upper Quartile builds them in weeks.

Applications, interfaces and agents from people who have built and run treasury systems across S&P 100 and FTSE 100 treasury functions. Built to integrate with all your systems, on the stack you want, at a speed you have not seen before.

Show us your problem
upper quartile.25.50.751Q3
Upper Quartile Systems

Three treasury jobs still running on spreadsheets and goodwill.

  1. The bank still sending a fixed-width file

    Problem
    One of your banks still sends a fixed-width file. Every morning someone counts characters to find the closing balance and keys it into the TMS by hand, and it has been that way for longer than anyone remembers.
    Solution
    We write the parser against the bank’s own layout, test it against your real statement history, and hand the TMS a camt.053 it already knows how to read. The statement lands with the others and the morning keying stops.
  2. The FX exposure that arrives by email

    Problem
    Every month the subsidiaries send their exposures in whatever spreadsheet they used last time. By the time they’ve been rekeyed into one position, the hedging decision is already late.
    Solution
    We take exposures from where they are created: open payables and receivables in the ERP, and the subsidiaries’ own forecasts. They arrive in one position by currency and date that your hedging policy can read. You still make the hedging decisions, now on a complete, current number.
  3. The forecast that dies at the entity boundary

    Problem
    Each entity forecasts in its own spreadsheet, on its own calendar, in its own categories, and the group number is whatever survives consolidation.
    Solution
    We build the collection layer the TMS assumes already exists: submissions pulled from the ERPs and files they really live in, mapped to one set of categories, checked against actuals and loaded into the TMS. The forecast stays in your TMS. It stops being assembled by hand.

None of these are your fault, and none of them are on any vendor’s roadmap.

Show us your problem

The problems haven’t changed. The cost of fixing them has.

The same problems sit at the top of treasury surveys each year and remain on your to-do list, because the arithmetic never worked. Ten more integrations at conventional build prices rarely pay back, so they were left to spreadsheets. That is where Upper Quartile comes in: with treasury expertise and rapid delivery, the cost of each integration has now fallen far enough to clear that hurdle.

You see a written specification before you spend anything.

Tell us the manual task. We come back with a specification in plain writing: what we’ll build, what it connects to, what it costs and when it lands. If it isn’t worth building, the specification says so. Money changes hands only once you’ve agreed it.

Solution development

Bespoke applications, interfaces and web front-ends for treasury-specific problems. You choose what happens after go-live: we build it and keep supporting it, or we build it and hand it over to your team with the code and the documentation.

Automation development

The pipes between your systems: banks, ERP, TMS and the in-house tools in between. We build them as integrations that run unattended and scale with the business, not as scripts on someone’s desktop.

Agent development

Agents where the work is genuinely fuzzy: mapping an unknown format, reading an unstructured confirmation. Deterministic problems get deterministic code, not a model.

Advisory and design

Need the design before the build? We also advise on treasury architecture, system selection and integration strategy, and we’ll hand you a specification you can build with us or anyone else.

Project delivery

Already running a technology or change project across treasury and IT? We support its delivery, from requirements through to go-live, with people who speak both languages.

We’ll recommend a stack. Then we’ll build on the one you actually run.

Show us your problem

The Labs

Things we built because we needed them. Free, and running entirely in your browser.

See what’s in The Labs →

Before
01,EXAMPLEBANK,EXAMPLECO,260922,0600,1,,,2/
02,EXAMPLECO,EXAMPLEBANK,1,260921,,USD,2/
03,0123456789,USD,010,25000000,,,015,28441460,,/
16,195,4825000,0,INV-10442,,CUSTOMER RECEIPT
16,495,1273040,0,PO-7781,,SUPPLIER PAYMENT
16,698,110500,0,FEES-SEP,,ACCOUNT FEES
49,59650000,5/
98,59650000,1,7/
99,59650000,1,9/
After
<Bal>
  <Tp><CdOrPrtry><Cd>OPBD</Cd></CdOrPrtry></Tp>
  <Amt Ccy="USD">250000.00</Amt>
  <CdtDbtInd>CRDT</CdtDbtInd>
  <Dt><Dt>2026-09-21</Dt></Dt>
</Bal>
<Ntry>
  <Amt Ccy="USD">48250.00</Amt>
  <CdtDbtInd>CRDT</CdtDbtInd>
  <Sts><Cd>BOOK</Cd></Sts>
  <BookgDt><Dt>2026-09-21</Dt></BookgDt>
  <ValDt><Dt>2026-09-21</Dt></ValDt>
  <NtryDtls><TxDtls><Refs>
    <EndToEndId>INV-10442</EndToEndId>
  </Refs></TxDtls></NtryDtls>
</Ntry>
…
<Bal>
  <Tp><CdOrPrtry><Cd>CLBD</Cd></CdOrPrtry></Tp>
  <Amt Ccy="USD">284414.60</Amt>
  <CdtDbtInd>CRDT</CdtDbtInd>
  <Dt><Dt>2026-09-21</Dt></Dt>
</Bal>
Before: a statement as one bank still sends it, in BAI2, where amounts carry no decimal point and every transaction is a three-digit type code. After: the same statement as camt.053, ready for any TMS. Upper Quartile writes that conversion for your banks and runs it every morning.

Where this comes from

We have supported treasury functions across the S&P 100 and FTSE 100 in two ways: as consultants on their treasury systems, and by building the solutions they run on. That means TMS implementations, bank and ERP integrations, and the applications that fill the gaps around them.

Most people who understand treasury can’t build. Most people who can build don’t understand treasury.

On the first call you learn exactly who you’re dealing with: who we are, where we’ve done this work and which platforms we’ve run. By the end of it you’ll know whether we’re the right people to build it, and so will we.

Show us your problem

Tell us the manual task and how often it happens. We read every enquiry ourselves and reply with a first view of how we’d solve it, or tell you plainly that this one isn’t for us.

What happens today, which systems are involved, and where it goes wrong.

If we can’t help, we’ll tell you.