Thought piece

UnityTrip and SAP: a single source of truth for operations and finance

Two gates, one source of truth

Spend is gated by a claim number and travel is gated by a trip number. Without a claim number the claim cannot be approved and the airline or hotel cannot be paid. Without a trip number there is no travel.

Linking the two numbers ties the seat, the bed, the approval and the SAP account assignment together, so operations and finance work from a single source of truth. For an energy company with SAP, a TMC, leased aircraft and camp accommodation, that link is the one join between the two. A traveller can start with a trip and add a claim, or start with a claim and add a trip.

That flexibility gives travellers a better experience and support staff less overhead. Commercial flights, company aircraft and accommodation are booked in one engine, and every claim carries the four fields SAP needs.

FieldQuestion it answers
ReasonWhy is this person travelling?
FundWhich pot of money pays?
Cost centre or WBSWho owns the cost?
GL codeWhat kind of cost is it?

Budget is checked before the seat is sold, and it can be checked twice: once for available fund and once for available cost centre or WBS budget. Authority limits apply at approval. The posting carries the same fields the claim was made with. Where the customer runs SAP, it stays the master ledger, and UnityTrip is the child that runs across operations and feeds it.

Who is authoritative, and where budgets attach

UnityTrip either holds the authoritative books or shadows SAP's. Either way, budgets attach to funds, to cost centres and WBS, or to both.

CustomerAuthoritative booksWhat UnityTrip does
No SAPUnityTripHolds the budgets itself, mixing fund and cost-centre budgets as needed, with derived rules such as no operations spend against a capital fund
SAPSAPKeeps the shadow books: takes balances from SAP daily, checks against them, and posts back daily, attaching budgets to funds, cost centres and WBS, or both

As shadow books, UnityTrip translates dynamic, complex travel content into something that works for travellers and that SAP can consume. Core requirements such as leased-aircraft travel and corporate hyper-personalisation exist only because UnityTrip carries the burden SAP is too inflexible to handle.

In either case the expense definition does the fine-grained work. It fixes the cost centre and GL code where needed, caps the entitlement, and limits the reasons it can be claimed for.

Questions that place a client

Where the customer runs SAP, these questions show where budgets should attach.

  1. Where do the daily balances come from: fund, or cost centre and WBS?
  2. Will SAP reject a posting for an invalid fund, or for a fund that does not belong with that cost centre?
  3. Is fund derived inside SAP or keyed by hand, and who owns the fund list?
  4. Which expenses are paid from a central pot, whatever the traveller's department?

Balances by fund, with rejections for invalid funds, means budgets attach to funds. Balances by cost centre with no rejections for invalid funds means shadow books where fund is for SAP document purposes only. Anything else sits between.

What a live deployment taught us

The specification asked for A: fund as a financial control, each fund restricted to the cost centres it may be used with. The deployment runs B: balances arrive by cost centre, and fund is mandatory on every posting but never rejected. The bit in the middle is where A met 3,500 cost centres and WBS elements. Restricting funds on each of them was never going to be practical, so it was never done, and the four questions above put the deployment in shadow books.

  • The job fund was designed to do is done by the expense definition: fixed cost centre, GL code, entitlement cap and permitted reasons.
  • Fund is arbitrary but mandatory. UnityTrip derives it rather than asks for it, and sends a correct one anyway, so if validation is ever switched on the postings are already clean.
  • UnityTrip can model either behaviour, A or B, and the record shows which one is really running.

The lesson carries to every client: read how the master really behaves, then mirror it. Here the truth was that fund is arbitrary but mandatory. Elsewhere it will be something else, and the model does not mind which.