Contract & tender operations · Oil and gas

7 contracts expire in 90 days.None has a replacement raised.

That is the sentence TenderEdge puts at the top of the contract portfolio, recomputed every time the page opens. Because it holds each contract and the tender that will replace it as one record, the question a spreadsheet cannot answer is answered before anyone asks it.

8tender phases, each with its own target in days
4alert tiers, the first a full year before expiry
5expiry bands every contract is sorted into
10minutes to undo an import after it commits
0passwords anywhere in the product

The gap, drawn

A contract runs out in 110 days. Its replacement needs 280.

No spreadsheet puts those two numbers on the same row, so the months in between stay invisible until they have already happened.

Today
Cover in force
Contract CT-2108 · 110 days left
Follow-on tender TN-0412 · ~280 days to award
Replacement being procured
Contract expires
Replacement awarded
170 days uncovered

Illustrative data

Sort the sheet

Which contracts expire in 90 days. Answerable, slowly.

Cross-check two lists

Which of those have a follow-on raised. Answerable, manually.

Not answerable

Which will not award in time. At any cost in effort.

One record

Same expiry. Same owner. Both amber. Not the same state.

Two contracts can match on every figure a spreadsheet holds. TenderEdge shows the one difference that decides what happens next: whether a replacement tender exists, which phase it has reached, and how many days it still needs.

Once a contract has expired, the question becomes whether a replacement is coming at all. The Expired tab answers it in four parts, and a contract nobody has decided about is never counted as a decision.

Every capability, screen by screen

By business line

Every contract, by business line and department, in one click.

Choose a business line and the portfolio narrows to it, with a count on every pill: how many contracts, how many tenders, how many departments. Choose a department and you are looking at its contracts. The same filter sits on the Contract Portfolio, counting contracts, and on the Tender Board, counting tenders.

Try it: choose a business line or a department.

Contract Portfolio · Business line and departmentIllustrative data

Business Administration27 contracts9 tenders4 departments→ Supply Chain · 7 contracts · 3 tenders

CT-2712215d
Warehouse management services · Supply Chain
In progress
CT-272523d
Freight forwarding · Supply Chain
Awarded
CT-273896d
Spare parts supply · Supply Chain
No follow-on

Governance

Every phase move needs a name against it.

A tender moves forward one phase at a time, through a checklist and a named reviewer. The reviewer cannot be the person who submitted it, and a returned move must say why. The column turns red the day its oldest tender passes target — not the day someone notices.

Target
0.8×
CLM
SLA 5d
1.6×
Package Prep
SLA 20d
0.6×
Issuance
SLA 5d
1.2×
Tendering
SLA 45d
4.9×
Tech Eval
SLA 84d
1.1×
Comm Eval
SLA 56d
0.7×
Awarding
SLA 28d
0.5×
Execution
SLA 42d

Height is the oldest tender's time in phase, as a multiple of that phase's target.

Every role starts somewhere different

One product. A different first screen for each role.

Section HeadWhat needs my decision, who is overloaded, and which column is overheating.
Contract AdminWhat I am holding, what runs out first, and what is waiting in my queue.
ExecutiveWhere my business line stands this morning, and the three tenders most stuck.

Where it runs

A dedicated environment in your jurisdiction, or on your own servers.

Every client's production runs in its own environment. In Saudi Arabia that means Google Cloud's Dammam region — or entirely inside your own data centre.

Dammam regionPostgreSQL 16 · managedYour data centrePostgreSQL 16 · your server

One boundary — your data never leaves it

Three inputs and your own book is on screen.

Your contract and tender file. The names of a first Section Head, Contract Admin and Executive. A decision on where it runs.