← Demos
Runsheet · presenter reference

Copilot in Excel — the three modes

One workbook, six demos. Chat only, Plan, Allow editing, skills, and filling a template from a Word doc.

≈30 min planned 30 min of core sections 10 sections 4 anchors Finance, ops, anyone who lives in a monthly pack verified 2026-09-16
delivered live 16 Sep 2026 — went well

↯Pivot map — read the room, not the script

They challenge whether it can really read accounts
Ask for the mix-versus-rate split. A real analytical answer, not a summary.
1 →
They ask who is accountable when it gets something wrong
The margin driver answer, where it refuses to name a cause it cannot evidence.
1 →
A planning or FP&A audience
Plan mode stopping to ask two questions is the whole value proposition.
2 →
They say their data is a mess
55 rows, 21 spellings of 6 departments, 4 date formats. Their reality.
3 →
They ask about consistency, audit or handover
Same three sentences for the 2,600 variance as for the 445,000 one.
4 →
A developer or IT audience asks how it is built
It is a text file. Open it on screen and the mystique evaporates.
5 →
Anyone says we retype things between systems
Strongest close. The Proposal gaps table is the moment.
6 →
They worry about lock-in
It is the open agentskills.io spec, not a Microsoft format.
What a skill is →
Short on time, or a skill has not synced
Runs an existing skill from another project. Better talking point than the planned demo.
Fallback →

AWhat you need open

1
Harbourline Group - Monthly Finance Pack - Aug 2026.xlsx
11 sheets. Six are the finance pack, five are one per demo. Every figure synthetic.
OneDrive · Documents · Microsoft Scout
2
Capex proposal - Cold Chain Renewal.docx
Three-page business case. Section 6 only. Three extraction traps and a decoy.
OneDrive · Documents · Microsoft Scout
3
harbourline-variance-commentary
Skill used in section 4. Upload the day before.
OneDrive · Documents · Copilot · Microsoft Excel · skills
4
harbourline-board-format
Skill built LIVE in section 5. Keep this one on your device — do not upload it.
stays local until you build it on stage

BPre-flight

!Things that will bite you

Enter sends, so a pasted prompt gets cut at the first blank line
Paste a multi-paragraph prompt and only the opening sentence is submitted. You get a scope with no task and Copilot asks what you actually want. Happened live. Every prompt here copies as one unbroken block. Use Shift+Enter if you need a line break yourself, and check the sent bubble contains your last sentence before you talk over it.
Auto is the model picker, not the mode
The pane shows an Auto dropdown that chooses the model. The mode control is the separate pencil icon beside it. Confirm which one you are on before you claim a mode on stage.
A new skill takes about fifteen minutes to appear
Measured 16 Sep 2026. Uploaded, pressed Refresh repeatedly, nothing for ten minutes, then it appeared on its own. The file was correct the whole time. Do not start deleting and re-uploading while you wait — you will convince yourself something is broken when it is not.
Copilot silently skips a folder whose name does not match SKILL.md
No error, no warning. Microsoft documents this as the supported way to hide a skill without deleting it, which is exactly why it fails invisibly. If a skill will not load, check the folder name first, then check the file is SKILL.md and not SKILL.md.txt.
Uploaded skills arrive enabled
You do not need to switch them on. And the toggle only controls automatic selection — an explicit @mention still runs a disabled skill, so it is not a security control. Say that plainly if asked.
Do not use =COPILOT()
Microsoft retired the preview worksheet function on 14 September 2026. Use the pane.
1 Read the numbers anchor Chat only Summary P&L ≈4m proven 2026-09-16

This is a normal month-end pack. I am not asking Copilot to change anything. I want to know whether it can actually read a set of accounts.

Copy promptcopies as one block
Use only this workbook. Read the Summary P&L, Revenue, Cost detail, Headcount and Cash sheets.

Revenue is up 11 per cent on last year but EBITDA is down. Explain why, and be specific about which line items caused it.

Separate the margin effect from the cost effect. For every driver you name, tell me the sheet and the number it came from. If the workbook does not evidence a cause, say so rather than proposing one.
What it produced, checked to the dollar

It built an EBITDA bridge unprompted and every figure was independently verified against the source data.

The bridge it built on its own
EffectEBITDA impactIts evidence
Revenue growth at last year's margin+1,259k30.620m to 34.005m
Lower gross margin-766k37.2% to 34.9%
Higher operating costs-1,043k9.700m to 10.743m
Net EBITDA change-550k1.691m to 1.141m, down 32.5%
Three things to point at on screen
The Reasoned in N steps chipClick it. It shows the working, which is what a finance audience wants before they trust a number.
The cell references beside every figureThat is the tell me the sheet and the number instruction doing its job. Without it you get assertions. With it you get something auditable.
Where it refuses to name a causeIt says the workbook does not evidence whether the margin fall came from mix, pricing or supplier cost. Say out loud that this is the behaviour you want, because the alternative is a confident wrong answer.

It just told me it cannot separate the margin drivers. Let us test whether that is true, because I think the Revenue sheet has enough in it.

Copy the follow-upcopies as one block
The Revenue sheet has net revenue and cost of goods sold by channel and by product line, with the budget alongside.

Use it to split the gross margin miss against budget into two parts: how much came from the channel mix changing, and how much came from margin falling within the channels themselves.

Show the actual and budget margin for each of the four channels, and each channel's share of revenue. State your method before the numbers.
The strongest two minutes in the demo. It refuses to guess, then goes deeper when you point it at the evidence.
Controls — budget margin 36.14%, actual 34.95%, gap 1.19 points
ChannelActual marginBudget marginActual shareBudget share
Retail40.7%41.2%34.2%35.9%
Wholesale22.4%23.6%32.1%28.4%
Online47.8%47.8%20.8%21.7%
Export30.2%30.5%12.9%14.0%
Splits almost exactly in half: 0.59 points from mix, 0.60 points from rate.
The business point

Wholesale took 3.7 points more of the revenue mix than planned at roughly half the margin of Retail, and its own margin also slipped. Half the problem is what they sold, half is what they sold it for. Two different conversations with two different owners.

1b Other follow-ups, in order of how well they land optional Chat only stay where you are
AskWhy it works
Marketing is 18 per cent under budget. Is that good news?It has to reason past the sign of the variance. An underspend on programmes is a forward revenue risk, and it can see Marketing headcount fell from 8 to 7.
Cash is down 1.3 million but we are profitable. Where has it gone?Forces it off the P&L and onto debtor days moving from 38 to 51.
Something changed in Operations in May. What was it?Freight steps from about 135,000 a month to about 159,000 and keeps climbing. A clean step change it can find without being told where.
Which customer should I ring this afternoon?Tasman Retail Group is over its credit limit. Nobody expects it to check a limit against a balance.
If the last three months continue, where do we land at year end?Run-rate extrapolation with a stated assumption. Ask it to show the assumption.

The two that make a finance room go quiet are the Marketing underspend and the credit limit. Keep them even if you cut everything else.

2 Plan the next budget anchor Plan Plan - FY27 budget ≈5m proven 2026-09-16

Now a harder job. Seventeen assumptions, six constraints that all have to hold at once, and an empty grid. I want the method before I want the numbers.

Copy promptcopies as one block
Use only this workbook. Plan how you would build the FY27 operating cost budget in the empty grid on this sheet.

Read every row of tblAssumptions and tblConstraints on this sheet, and the FY26 actuals in tblCosts. The FY26 annualised column is already calculated for you.

Set out the order you would work in, which assumption drives which department and cost category, and how you would prove that all six constraints hold at the same time.

Two assumptions interact: Technology headcount rises by three while contractor spend goes to zero. Say how you would handle that so the cost is not double counted.

Tell me which constraints you believe cannot all be met together, and what you would need me to decide. Do not write anything into the grid yet.
It does not answer. It stops and asks you two questions.

This is the part worth rehearsing. Both were verified live. Answer them deliberately and narrate why.

Question 1 — when do the FY27 headcount changes take effect?
Answer: All from AprilIt matches the salary inflation assumption on the sheet, which already says effective 1 April 2027. It saves 152,960 against a January start. And January consumes 95 per cent of the entire 4 per cent cost headroom where April consumes 72 per cent.

Watch what just happened. I gave it seventeen assumptions and it found the one I had not thought about. Nobody wrote down when these people start. That single choice is worth a hundred and fifty thousand dollars, and in Allow editing it would have picked one silently and never told me.

Question 2 — how should it handle the closing cash constraint?
Answer: Flag as not provableThe other two options are traps. Treat EBITDA as cash proxy is disproved by your own section 1: this company made 1.1m of EBITDA while cash fell from 2.845m to 1.536m. Use FY26 run-rate cash would project forward a burn caused by the collections problem.

Look at option three. Treat EBITDA as a cash proxy. Ten minutes ago this same workbook showed us a company making a profit and running out of cash. If it picked that option it would produce a confident, tidy, wrong budget. Not provable is the honest answer, and it is the one I want.

Worth knowing: closing cash at 31 August is 1,536,000 against a covenant of 2,000,000 by December 2027. They are already below it. This is not a hypothetical gap, it is the constraint most likely to fail.

The plan it produced — every figure independently checked
What it concludedFigureChecked
FY27 operating cost as modelled17,885,00011.0% growth on 16,115,100
EBITDA margin that produces2.47%against a 6.0% floor
Cut required to satisfy the constraints1,882,0001,881,324 exactly
Technology non-people cost1,331,0001,329,360
Of which breaches the no-growth rule111,000108,960
Two things it worked out that nobody told it
The 10 per cent cloud cut is not enoughIt still breaches the no-growth constraint, because 10 per cent off an August exit rate of 116,200 is more than the FY26 average. Cloud cost climbed every month from 78,400 in January. A cut that sounds decisive is not.
The binding constraint is not the obvious oneMost people assume the 4 per cent cost cap bites first. It does not. The 6 per cent EBITDA floor caps operating cost at 16,003,676 while the 4 per cent rule allows 16,759,704. The covenant is 756,000 tighter.
Then click Proceed

Proceed executes the plan and writes into the grid. It does NOT need you to switch modes. Say: this is the same work Allow editing would have done, but I have already seen the method, corrected two assumptions and been told which constraint is impossible. The argument happened before the work, where it was cheap.

2b So what is Plan mode actually for optional
The three modes are not a scale from cautious to brave. Two of them write and one does not.
Chat onlyPlanAllow editing
Changes the workbookNeverYes, after you approveYes, straight away
You see the method firstNoYesNo
Stops to ask about missing inputsNoYesRarely
A wrong answer costs youNothing, you ignore itNothing, you reject the planAn undo, or worse, you do not notice
Use it whenYou want to understandThe job has assumptions worth arguing aboutThe job is obvious
Chat only against Allow editingRead against write.
Plan against Allow editingThe same write, with a checkpoint in front of it.
The line that lands

Plan mode is not slower. It is the same work with the argument moved to the front, where it is cheap. Everything you just watched it ask me would otherwise have been a silent assumption inside a finished budget.

Do not sell Plan as the careful option. Sell it on cost. Cleaning an expense sheet has no assumptions worth debating, so use Allow editing and save the step. Building a budget has seventeen, and the cheapest place to catch a wrong one is before the work.

3 Clean a mess anchor Allow editing Edit - Expense cleanup ≈6m

This is a raw export. It is not a table, the dates are in four formats, the amounts are text and somebody has spelled Technology six different ways. This is the job most finance people actually do.

Copy promptcopies as one block
Clean the expense export on this sheet. Work on this sheet only and do not touch any other sheet.

1. Standardise every date to a real Excel date, not text. There are four different formats in the column.
2. Standardise the department names. There are twenty-one different spellings and they collapse to six real departments.
3. Convert the amount column to numbers. Values in brackets are credit notes and must stay negative.
4. Remove duplicate transactions. The TXN REF is the unique key.
5. Flag any transaction over 5,000 that has no approver.
6. Flag any transaction with no supplier.
7. Flag anything that looks like a keying error.

Then build a summary of spend by department below the data, and tell me the row count before and after you removed duplicates.

Show me the rules you applied. Do not delete anything you cannot explain.

Pick one date and show it right-aligns now. Pick one department cell and show the mapping. Then scroll to the flagged rows.

Controls — 55 rows in, 3 duplicates removed, 52 out. Total 361,624.68.
DepartmentClean total
Technology134,124.98
Operations60,213.81
Marketing50,986.23
Sales46,362.06
People & Culture37,160.50
Finance32,777.10
The seeded defects
DuplicatesEXP-26021, EXP-26133, EXP-26280.
Over 5,000 with no approverEXP-26028 at 6,400.00, EXP-26077 at 10,002.94, EXP-26133 at 6,400.00, EXP-26231 at 15,772.36, EXP-26308 at 10,339.49.
Blank suppliersEXP-26035, EXP-26154, EXP-26266, EXP-26329.
Credit notes that must stay negativeEXP-26063 at -1,789.34 and EXP-26189 at -823.20.
Keying errorEXP-26084, Deloitte, 97,533.00 — ten times what it should be, and it already carries the note check coding.
If it deletes the credit notes instead of keeping them negative

Do not hide it. Say that is wrong, and here is why it matters, then ask it to restore them. A recovered mistake is more convincing than a clean run.

4 Use a skill you already have Allow editing Skill - Commentary ≈4m

Every month somebody writes the commentary, and every month it reads differently depending on who wrote it. The method now lives in a skill, so it reads the same way every time.

Copy promptcopies as one block
Write the Commentary column for every row in tblCommentary on this sheet. The numbers are live from Summary P&L, so do not change a single value or formula.

Apply the house style rules on this sheet exactly. Use the owner table for the named owner in the third sentence.

Where the workbook does not evidence a driver, say so rather than proposing one.
Attach harbourline-variance-commentary from the @ picker FIRST, then paste this. Typing the name as plain text does not attach it.

Exactly three sentences per row, every row, no exceptions. A number in sentence one, a named driver in sentence two, an owner in sentence three. It ends with Variance commentary v1.0 applied.

The point to make out loud

The Finance row is only 2,600 under budget. A human writes three paragraphs about Technology and one word about Finance. The skill writes the same three sentences for both, which is what an auditor wants.

Leave this sheet as it is. Section 5 builds a second, different skill and runs it on this same sheet, which is the payoff.

5 Build a second skill from scratch Author the file, then Allow editing Skill build - Board format, then run on Skill - Commentary ≈6m

That first skill was already installed. Let us build a different one, live, in about two minutes. A skill is two things. A description that says when to use it, and instructions that say how to do the job. That is the whole idea.

Read the bad output on the sheet aloud and ask the room which of the three faults they would actually notice in a board pack. Most people say none of them. That is the argument for writing the rules down once.

Build it
  1. Copilot pane, Settings (...) then Manage skills then Custom skills.
  2. Follow Skills OneDrive folder. A new user picks Create skills folder first, then Open skills folder.
  3. Create a subfolder named exactly harbourline-board-format.
  4. In Notepad, paste the file below. Save as SKILL.md with Save as type All files and UTF-8. Check it did not become SKILL.md.txt.
  5. Upload it into the subfolder. The folder name and the frontmatter name must match exactly.
  6. Back in Excel, Refresh custom skills.
  7. Go to Skill - Commentary, type @, select the new skill and run the prompt below.
Copy the whole SKILL.mdkeeps its line breaks
---
name: harbourline-board-format
description: Use when I ask to format a finance sheet for the board pack.
---

# Format a finance sheet for the board

Method version: 1.0.

1. Work only on the worksheet and table I name. Never change a value, a formula or the row order. Ask if the target table is unclear.
2. Do not assume the table starts at row 1. Find the actual header row first.
3. Bold the header row, fill it navy and set the header text white.
4. Format NZD columns with thousands separators, no decimal places, and negatives in red parentheses. Keep the cells numeric, never text.
5. Format percentage columns as 0.0%. Never apply a percentage format to a currency column.
6. Wrap the header text, widen columns so no cell shows hashes, and freeze the header row.
7. Right align number columns and left align text columns.
8. Add no totals, no charts, no commentary and no new worksheets.
9. Report what you changed, confirm that no value moved, and finish with "Board format v1.0 applied."
This one keeps its line breaks. It is a file, not a prompt.
Copy the run promptcopies as one block
Format tblCommentary on the Skill - Commentary sheet for the board pack.

Preserve every value and formula exactly as they are. Apply your formatting instructions and tell me what changed.
Attach the new skill from the @ picker first.
The two traps built into the steps
Step 2, do not assume row 1That sheet has rules and an owner table above the data. A skill that assumes row 1 formats the wrong thing.
Step 5, never percent-format a currency columnGet it wrong and 11,883,900 renders as 1188390000.0%.
Why two skills is the better demo

Two skills, one workflow. The first one wrote the words. The second one made it presentable. Neither touched a number, and neither knows the other exists. Next month I run both and month end is a thirty second job.

That is also the honest answer to how far does this go. Skills are small and single purpose on purpose. You do not build one enormous skill that does month end. You build several that each do one job properly and compose.

6 Fill a form from a document anchor Allow editing Template - Capex, plus the Word proposal ≈5m proven 2026-09-16

Somebody has written a three page business case in Word. Somebody else has to get it into the capex template. That retyping is where the errors come from.

Copy promptcopies as one block
Fill the capex template on this sheet from the Word document "Capex proposal - Cold Chain Renewal".

Every shaded cell is an input. Put each figure in the right field and in the right year. The proposal states some amounts in words rather than digits, so read carefully.

Calculate the totals and the payback period. Leave the formulas in the total cells alone.

Do not guess. List separately every field the proposal does not state, and every number I should go back and ask for.
Attach the Word document to the chat first, or reference it by name if your tenant grounds on OneDrive.
What it produced — every line matched the controls exactly
Cost lineFY27FY28FY29Total
Hardware1,840,000001,840,000
Software licences126,000138,000138,000402,000
Installation and commissioning340,00000340,000
Training48,00016,000064,000
Project management118,00054,0000172,000
Contingency218,00000218,000
Total2,690,000208,000138,0003,036,000
Benefit 1,721,000 over three years. Payback 4.3 years. The 41,300 pallet movements decoy was ignored.
The moment to stop and point at

It builds a Proposal gaps and follow-up table beside the form that nobody asked for. Six rows, each naming the missing item and quoting what the proposal actually says: date received, benefit type, base insurance premium reduction, net present value, the EUR/NZD rate assumption, the completion penalty and the forward cover terms.

Look at the table on the right. I did not ask for that. I told it not to guess, and instead of leaving blanks it told me what it does not know and why. That list is my follow-up email to the Operations Director.

Then point at the two traps
Installation, 340,000The proposal writes it out in words: three hundred and forty thousand dollars.
Contingency, 218,000Appears nowhere in the document. It is ten per cent of hardware plus installation, and had to be calculated.
Know this before someone asks

The 4.3 year payback is against the steady state benefit. FY27 benefit is only half a year because the programme completes in June, so the calendar payback from day one is longer. If a finance person challenges the number, that is the honest answer, and having it ready is better than discovering it live.

This is the point where you turn the template plus these instructions into a skill, and next month is a thirty second job. That closes the loop back to section 5 without needing another demo.

What a skill is The explainer you read before the call optional
A skill is a plain text file with two parts
A descriptionSays WHEN to use it. This is the trigger.
InstructionsSay HOW to do the job. Free form, no required structure.
The line that lands with a business audience

It is the difference between telling a new analyst what to do every month, and giving them the desk procedure once.

What a skill is not
People assumeActually
It is a Copilot Studio agentDifferent product. An agent has connectors, triggers, publishing and a lifecycle. A skill is a text file in your OneDrive.
Turning it off blocks itThe toggle only stops Copilot selecting it automatically. An @mention still runs a disabled skill. It is not a security control.
Sharing the workbook shares the skillIt does not. Skills are personal to your OneDrive. A recipient needs their own.
It is Microsoft proprietaryIt follows the open Agent Skills specification at agentskills.io. The same format is used by other AI tools. Worth saying to anyone worried about lock-in.
It only works on the file it was written forNo. See the Fallback section — a skill written for a construction cost workbook ran correctly against this finance pack.
Can Copilot build the skill for you
Can Copilot do it?
Write the SKILL.md contentYes. Ask any Copilot to draft it. It is just text, and it is good at this.
Save the file to your skills folderNo. You save it and upload it yourself.
Turn a chat you liked into a skill automaticallyNo. There is no save this as a skill button in Excel today.
Excel Copilot writing into OneDriveNo. Excel Copilot works inside the workbook.

So the honest answer is: Copilot writes the words, you place the file. That is two minutes of work, and drafting is the part that takes the thinking.

Copy the meta promptcopies as one block
Write me a SKILL.md file for Copilot in Excel.

The job: every month I paste a raw expense export into a sheet, and I need it cleaned the same way every time. Standardise dates, standardise department names, convert amounts to real numbers, keep credit notes negative, remove duplicates on the reference column, and flag anything over 5,000 with no approver.

Use the Agent Skills format: three dashes, then name and description, then three dashes, then numbered instructions. The name must be lowercase with hyphens. The description must say when to use the skill, written the way I would actually ask for it.

Include a rule that stops it inventing data it cannot find, and end the instructions with a version marker so I can tell which version ran. Give me the file only, no commentary.
Run this in Copilot Chat, Word, or the Excel pane. Using Copilot to build the thing that makes Copilot better.
Fallback When a skill has not synced — run someone else's optional Allow editing Cost detail proven 2026-09-16
Proven live, 16 September 2026

When the new skill had not synced in time, running a pre-existing skill from a completely different project against this workbook worked — and produced a better talking point than the planned demo.

Copy promptcopies as one block
Review the operating costs in tblCosts on this sheet for the year to date. Treat Department as the review grouping and Cost category as the line detail.

Use a materiality threshold of 100,000 NZD and 10 per cent, both of which must be met for a row to be material.

Report the material unfavourable variances, name the department and category for each, and reconcile your totals back to the source table. Do not invent a cause for any variance.
Select the existing skill from the @ picker, then paste this. Thresholds are supplied inline because this workbook has no rules table for that skill to read.
What it returned — every figure independently verified
DepartmentCost categoryVarianceVariance %
TechnologySoftware & cloud173,90029.4%
OperationsFreight & logistics148,50014.1%
TechnologySalaries & wages136,00012.3%
TechnologyContractors135,30060.4%
Total material593,700
All 192 rows reviewed. 10,743,400 actual less 10,228,000 budget equals 515,400 unfavourable, reconciled with a 78,300 favourable offset.
The best sentence available to you in this whole demo

It reported: No causes were supplied in tblCosts; none were inferred. A skill built for a different workbook, refusing to invent the data it could not find.

This skill was written for a completely different workbook, in a different industry. Watch what happens when I point it at this one. The method travels. The data assumptions do not. That is exactly why you keep skills small and single purpose.

RIf something goes wrong

Copilot is slow
Talk through the inputs and the controls. Do not resend — that queues a second job.
The answer is wrong
Switch to Chat only and ask which cells it used. A recovered mistake is more convincing than a clean run.
A skill will not load
Use the Fallback section, or run section 4's prompt without the mention and call it a prompt workflow, not a skill. Do not pretend.
Someone asks whether it is safe
Copilot sees exactly what that user can already open, and a skill is a text file in your own OneDrive that nobody else inherits.
Down to fifteen minutes
Sections 1, 3 and 6 only. They stand alone and need no skills setup.

✓Truth ledger

Public sources
Last verified 2026-09-16 · re-check by 2026-12-16 · Sush