blog

Alex Cannon /

Build a bank relationship context layer in an afternoon

A fee they agreed to waive is back on the statement.

You remember it being mentioned months ago. But your bank contact has left and the email is sitting in a mailbox belonging to a former colleague.

Chasing it costs more than paying it.

The relationship manager across the table has a system holding every commitment their bank made to you, dated and attributed to a person. You have an inbox and shared Excel sheets.

I don’t think every treasury team needs a full CRM, but I do think they need a bank relationship context layer: a short, structured record of what each bank agreed, where it came from and when somebody has to look at it again.

Bank relationship management is named as a skill in 32 of the 50 senior treasury job ads I read this week, behind only cash flow forecasting and FX, which tied at 35.

So the work is asked for by name, with nothing provided to do it in.

Not another system

Nobody wants another dashboard to log in to.

A new system is never just the software. It is a vendor review, a security questionnaire, a procurement cycle, seats to justify at renewal and a login that three people have and one person uses.

You need none of it because both expensive parts are already on your desk.

The documents. Fee schedules, facility agreements, mandate letters, meeting notes, the email where they agreed to the waiver. Nothing is missing. It is unretrievable, which is a different problem.

An AI assistant pointed at a folder of your own files will pull the clause, quote it back and tell you which file it came from.

So the layer is a folder and a table. The only missing piece is structure.

Structure is free.

What you end up with

One page per bank. Every row carries where it came from, when it starts and who looks at it next.

WhatValueSourceEffectiveNext lookOwner
EUR outbound wire feeWaived for 12 months, so back at the €12.50 schedule rate since April”we’ll waive the outbound charge for the first 12 months”, RM email 4 Mar 20251 Apr 2025Lapsed 31 Mar 2026AC
Account maintenance€28, not the €35 in schedule v3RM email 4 Mar 2025, confirmed on the Apr invoice1 Apr 20251 Apr 2027AC
Notice to cancel the RCF90 days before maturityFacility agreement, cl. 4.312 Jun 202414 Mar 2027Treasurer
PromisedIndicative pricing for virtual accounts “by the end of Q3”Meeting note, 11 Jul 2026—OverdueTM
PromisedA named escalation contact for the payment cutoff issueMeeting note, 11 Jul 20261 Aug 2026DoneTM
Why this bankThe only one of four that could do same-day EUR with our entity structureRFP scoring sheet, Mar 202412 Jun 2024At the next reviewTreasurer

Six rows. Half a page. Being that short is the only reason anybody will keep it up.

Most of it is already somewhere

Most of what a bank relationship template asks for is already in a document you received.

What you would captureWhere it already is
Covenant levels and test datesThe facility agreement. Tracked anyway because the auditors ask
Facility size, margin, commitment feeThe facility agreement, clauses 2 and 8
Maturity datesThe same agreement. The bank will remind you anyway
Account inventory and signatoriesThe portal and the account opening file
Standard feesThe published fee schedule
Balances, flows, utilizationYour treasury system or the portal

Copying those into a second place creates two versions of the truth. The second one goes stale.

Six things are not

What is missingWhy you cannot find it
Waivers and concessionsAgreed in an email, by a person who may have left
Pricing agreed outside the fee scheduleWorse still: it contradicts the document you do have
Service commitments made in a meetingA note, if anyone wrote one
Promises that never got a replyOnly visible by reading a thread to the end
Derived deadlinesComputable from the agreement. Written down nowhere
Why this bank, over which alternativesReconstructed from memory each time it comes up

Six things. That is the context layer.

What you need

  • The skills pack. One Claude skill plus the templates and the worked example that come with it. It is on GitHub, so you can read every file before installing it. It goes in a skills folder or uploads into a Claude project if that is all you have.
  • Somewhere to put files. The shared drive your team already uses. It inherits permissions, backup and retention that somebody already approved, so there is no new system to review.
  • Whatever AI assistant your company has already approved for business data. The skill is written for Claude. The method works anywhere that can read a folder.
  • Ninety minutes and your largest bank. Not all of them. One.

What is in the skills pack

One Claude skill, called bank-file. It installs as a single folder and appears in Claude as one skill rather than five.

Inside it are five workflows. Claude reads the one that fits what you asked for.

WorkflowAsk forWhat comes back
intake”Take this folder in”Every file named by the date inside the document, filed into sources/, with a list of what got renamed
build-record”Build the record”Six rows at most, each carrying the quote it came from and the file it was in
derived-dates”What are the real deadlines here?”Notice dates worked out from each agreement with the arithmetic shown, as calendar entries you can import
review-pack”Get me ready for the Northbank review”Charged against agreed, promises nobody delivered, what lapses in the next two quarters and the questions your documents cannot answer
check”Check this record”Rows with no quote, dates that have passed, values that contradict each other, then the handover test

You never type those names. Asking in your own words is enough.

The rest of the pack is a template for the record, a template for the meeting note and the worked example. Two reference notes come with it: the twenty fields left out on purpose, plus what to ask your banks for instead of a PDF invoice.

Read the example before anything else. It takes two minutes and it makes the case better than this article does: a waiver with a 12 month term, agreed in an email, which expired without anybody deciding to let it expire.

Step 1: Get the documents into one folder

This is the part people skip and it is most of the work. Make one folder for one bank and drop the documents in. The names do not matter.

banks/
  northbank/
    Scan_0012.pdf
    fee schedule FINAL (3).pdf
    RE_ RE_ FW_ pricing.eml
    notes from thursday.docx

Nothing can read your mailbox or decide which twelve documents matter, which is why collecting them is yours. The filing is not. Step 2 reads each file, names it from the date inside the document, moves it into sources/ and tells you what it renamed:

banks/
  northbank/
    record.md
    sources/
      2024-06-12-facility-agreement.pdf
      2025-03-04-rm-email-wire-waiver.eml
      2025-04-01-fee-schedule-v3.pdf
      2026-07-11-review-meeting-note.md

The record keeps the name each file arrived under, so a row can still be traced back to what is on the shared drive.

Agreements and fee schedules. Pull the PDFs from the portal. Facility agreement, mandate letter, the current fee schedule and the one before it.

Emails. The waivers and the promises live here, so this is the part that matters.

In Outlook, File then Save As writes a .msg. Dragging the message into the folder does the same thing. Either way you keep the sender and the date.

Save as .eml if the dialog offers it. A .msg is a container an assistant may not be able to open. The skill names the files it could not read rather than filing them blind.

Meeting notes. Whatever exists, however rough. A paragraph in a Word file is fine.

The selection note. The RFP scoring sheet or the memo from when you chose this bank, if one was written. It is the only source for the sixth row.

Do not aim for completeness. Ten to fifteen files is plenty. Gaps show up as “not stated” in the next step, which tells you what to go and find.

Step 2: Build the first record

Point Claude at the folder and run the skill. The first pass files and names everything you dropped in. Then you get candidate rows, each with the words they came from and the file they were in.

What you ask for:

Take this folder in and build the record. Six rows at most. Every row carries the exact quote it came from and the filename. Where something is not stated in these documents, write “not stated” rather than inferring it.

Then do the part that cannot be delegated. Open each source and find the sentence. Six rows, ten minutes.

Two rules hold the record together.

1. A row with no quote is not a fact. Not a paraphrase, not a summary. The words somebody wrote, with where they wrote them.

2. A new value supersedes rather than overwrites. Keep the old row with its date. The history is the negotiating position. “When did this change” is usually the question you need answered.

Step 3: Find the dates that exist nowhere

Look at the notice row in the table above.

The facility matures on 12 June 2027. Everyone remembers that one. It is in the covenant pack and the bank will raise it a year out, because they want the renewal.

The date that matters is 14 March 2027. Maturity minus the 90 days of notice sitting in clause 4.3.

Miss it and you have rolled into another term on terms you did not choose.

Nobody writes the second one down because it appears in no document. It has to be calculated once, by somebody holding the maturity date and the notice period together.

Run it across every agreement in the folder:

For every agreement here, give me the maturity or renewal date, the notice period, the clause each one comes from and the date notice must be served by.

You get a short list of dates that exist in no system you own.

Ask for those as calendar entries and you get them with a reminder 30 days before each, as an .ics you can import. Put them in the calendar everyone already uses, not just yours. A date that only exists in a file is a date nobody is chasing.

Step 4: Produce the review pack

With a record, the review stops being a meeting where you receive information.

Give the skill the record and the last twelve months of invoices and it produces the review pack: charged against agreed, promises with no evidence of delivery, dates inside the next two quarters, waivers about to lapse and last review’s open items.

The last page is the questions, built from everything the documents do not answer. That is usually the useful one.

Every line carries its quote, so it can go across the table.

The review asksWith the recordWithout it
What did we agree to pay, against what we paid?The pricing rows, dated, next to the invoiceSomebody searches their mail for “fee schedule”
What did they promise that never arrived?The promises, with the meeting note attachedWhatever anyone remembers
What renews and when is notice due?A derived date, already in the calendarThe maturity date, found late
What did we say last time we would fix?Last review’s open itemsNothing

Who holds what, with four people

PersonOwnsReads before the review
TreasurerFacilities, the derived dates, why this bankThe two largest banks
Treasury managerPromises and concessions on banks 1 and 2Banks 3 and 4
Treasury analystThe monthly fee check across every bank—
Ops or AP leadWhat breaks operationally if a relationship stopsBanks 1 and 2

One owner per bank, never one owner per field. Split the work by field and nobody owns the file.

Disagreement is a finding, not an error. When two people remember different versions of what was agreed, both go in, dated and attributed, until a document settles it. Quietly overwriting one is how a file stops being trusted.

Run the handover test before you need it. Give the folder to somebody who sat in none of the meetings and ask what the bank agreed, what they promised and when notice is due.

What they cannot answer is your gap.

Keeping it safe

Keep it in the treasury folder, not the finance-wide one. Concessions and pricing are what hurt if they spread.

Keep full account numbers out. The last four digits identify an account well enough here. Do it that way and the worst case for the whole folder is losing documents you already held.

Never use it to confirm payment detail. Not account numbers, not payment instructions and not signatory changes. That is the business email compromise attack. An authoritative-looking internal file is a convincing source for a wrong answer. Those stay on the phone, with a contact you already know.

Know what leaves the drive. When you ask an assistant about a record, the text of what you ask about goes to whoever runs that assistant. Use what your company has already approved for business data, on terms that exclude training.

Ask your banks for camt.086 today

Ask each bank for camt.086, the ISO 20022 bank services billing statement. It is your fee invoice as structured XML instead of a PDF, which makes the monthly check something you can run rather than read.

While you are asking, get camt.053 for statements if you are still on MT940 or PDF.

Enrollment starts the clock. It takes an email, most EU banks support both messages and it costs nothing if you never automate anything.

Where to start

Your largest bank. One folder. Ninety minutes.

Get the files in, build the six rows, check every quote, then run the date exercise across every agreement you found. The dates are what pay for the afternoon.

The rest only has to happen once a year.

The skill is here. Start with the worked example in example/northbank/.