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.
| What | Value | Source | Effective | Next look | Owner |
|---|---|---|---|---|---|
| EUR outbound wire fee | Waived 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 2025 | 1 Apr 2025 | Lapsed 31 Mar 2026 | AC |
| Account maintenance | €28, not the €35 in schedule v3 | RM email 4 Mar 2025, confirmed on the Apr invoice | 1 Apr 2025 | 1 Apr 2027 | AC |
| Notice to cancel the RCF | 90 days before maturity | Facility agreement, cl. 4.3 | 12 Jun 2024 | 14 Mar 2027 | Treasurer |
| Promised | Indicative pricing for virtual accounts “by the end of Q3” | Meeting note, 11 Jul 2026 | — | Overdue | TM |
| Promised | A named escalation contact for the payment cutoff issue | Meeting note, 11 Jul 2026 | 1 Aug 2026 | Done | TM |
| Why this bank | The only one of four that could do same-day EUR with our entity structure | RFP scoring sheet, Mar 2024 | 12 Jun 2024 | At the next review | Treasurer |
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 capture | Where it already is |
|---|---|
| Covenant levels and test dates | The facility agreement. Tracked anyway because the auditors ask |
| Facility size, margin, commitment fee | The facility agreement, clauses 2 and 8 |
| Maturity dates | The same agreement. The bank will remind you anyway |
| Account inventory and signatories | The portal and the account opening file |
| Standard fees | The published fee schedule |
| Balances, flows, utilization | Your 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 missing | Why you cannot find it |
|---|---|
| Waivers and concessions | Agreed in an email, by a person who may have left |
| Pricing agreed outside the fee schedule | Worse still: it contradicts the document you do have |
| Service commitments made in a meeting | A note, if anyone wrote one |
| Promises that never got a reply | Only visible by reading a thread to the end |
| Derived deadlines | Computable from the agreement. Written down nowhere |
| Why this bank, over which alternatives | Reconstructed 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.
| Workflow | Ask for | What 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 asks | With the record | Without it |
|---|---|---|
| What did we agree to pay, against what we paid? | The pricing rows, dated, next to the invoice | Somebody searches their mail for “fee schedule” |
| What did they promise that never arrived? | The promises, with the meeting note attached | Whatever anyone remembers |
| What renews and when is notice due? | A derived date, already in the calendar | The maturity date, found late |
| What did we say last time we would fix? | Last review’s open items | Nothing |
Who holds what, with four people
| Person | Owns | Reads before the review |
|---|---|---|
| Treasurer | Facilities, the derived dates, why this bank | The two largest banks |
| Treasury manager | Promises and concessions on banks 1 and 2 | Banks 3 and 4 |
| Treasury analyst | The monthly fee check across every bank | — |
| Ops or AP lead | What breaks operationally if a relationship stops | Banks 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/.