Skill Tracer
Skills › Knowledge Work Plugins › ap-processor › gotchas.md

gotchas.md

131 lines · small-business/skills/ap-processor/reference/gotchas.md at 2574e29

Open on GitHub
1# Gotchas
2
3The failure modes that pay a bill twice, pay the wrong one, or quietly wreck the books. Every one of these has a dollar value attached.
4
5---
6

Gotchas

The failure modes that pay a bill twice, pay the wrong one, or quietly wreck the books. Every one of these has a dollar value attached.


Raw lines 1 to 6
7## Gotcha: reading a total that isn't legible
8
9**Why it matters:** The extracted total flows into the coded entry, the payment run, and the cash forecast. A confident wrong number is worse than a blank, because nobody checks a number that looks fine.

Gotcha: reading a total that isn't legible

Why it matters: The extracted total flows into the coded entry, the payment run, and the cash forecast. A confident wrong number is worse than a blank, because nobody checks a number that looks fine.

Raw lines 7 to 10
11### Bad
13```
14Watsco, invoice 40218, total USD 1,847.00
15```
16(read from a glare-washed photo where only "1,84" was visible)

Bad

Watsco, invoice 40218, total USD 1,847.00

(read from a glare-washed photo where only "1,84" was visible)

Raw lines 11 to 17
18### Good
20```
21Watsco, invoice 40218 — total unreadable, glare across the amount block.
22Vendor, date, and PO are clear. Send me the figure or a better photo and
23this one's ready.
24```
26---

Good

Watsco, invoice 40218 — total unreadable, glare across the amount block.
Vendor, date, and PO are clear. Send me the figure or a better photo and
this one's ready.

Raw lines 18 to 27
28## Gotcha: the same invoice on the email and the statement
30**Why it matters:** Duplicate payment is the most expensive thing that goes wrong in AP, and it is quiet. The vendor rarely calls to say you overpaid.

Gotcha: the same invoice on the email and the statement

Why it matters: Duplicate payment is the most expensive thing that goes wrong in AP, and it is quiet. The vendor rarely calls to say you overpaid.

Raw lines 28 to 31
32### Bad
34Stage the emailed PDF as a bill. Later, stage the statement line as a second bill because it has a different reference. Pay both.

Bad

Stage the emailed PDF as a bill. Later, stage the statement line as a second bill because it has a different reference. Pay both.

Raw lines 32 to 35
36### Good
38Match on vendor plus invoice number before coding anything. Flag the pair, name both sources, and let the owner confirm. Statements never create entries on their own.
40---

Good

Match on vendor plus invoice number before coding anything. Flag the pair, name both sources, and let the owner confirm. Statements never create entries on their own.


Raw lines 36 to 41
42## Gotcha: treating approval of coding as approval to pay
44**Why it matters:** These are different decisions. An owner who agreed to file bills has not agreed to move USD 22,000. Getting this wrong once ends the trust relationship that makes the rest of the plugin useful.

Gotcha: treating approval of coding as approval to pay

Why it matters: These are different decisions. An owner who agreed to file bills has not agreed to move USD 22,000. Getting this wrong once ends the trust relationship that makes the rest of the plugin useful.

Raw lines 42 to 45
46### Bad
48```
49Staged 19 bills and scheduled the payment run for Thursday.
50```

Bad

Staged 19 bills and scheduled the payment run for Thursday.
Raw lines 46 to 51
52### Good
54```
5519 bills staged in QuickBooks, USD 41,208, all as unpaid.
56Separately: 11 of them are due or discountable this week, USD 22,140.
57Want me to build that payment run?
58```
60---

Good

19 bills staged in QuickBooks, USD 41,208, all as unpaid.
Separately: 11 of them are due or discountable this week, USD 22,140.
Want me to build that payment run?

Raw lines 52 to 61
62## Gotcha: auto-paying the recurring bill
64**Why it matters:** Recurrence tells you the account code. It tells you nothing about whether the amount is right this month. Rate increases arrive inside recurring bills, and an auto-approved run is where they slip past.

Gotcha: auto-paying the recurring bill

Why it matters: Recurrence tells you the account code. It tells you nothing about whether the amount is right this month. Rate increases arrive inside recurring bills, and an auto-approved run is where they slip past.

Raw lines 62 to 65
66### Bad
68Insurance bill arrives, matches last month's vendor and account, goes straight into the run.

Bad

Insurance bill arrives, matches last month's vendor and account, goes straight into the run.

Raw lines 66 to 69
70### Good
72Code it automatically, include it in the proposal, and flag that it moved from USD 1,410 to USD 1,690 — up 20%. The owner may have agreed to that. Often they did not.
74---

Good

Code it automatically, include it in the proposal, and flag that it moved from USD 1,410 to USD 1,690 — up 20%. The owner may have agreed to that. Often they did not.


Raw lines 70 to 75
76## Gotcha: splitting a job cost evenly because the split is unknown
78**Why it matters:** An invented allocation is indistinguishable from a real one three months later, when the owner is trying to work out why the Maple St job lost money.

Gotcha: splitting a job cost evenly because the split is unknown

Why it matters: An invented allocation is indistinguishable from a real one three months later, when the owner is trying to work out why the Maple St job lost money.

Raw lines 76 to 79
80### Bad
82USD 3,400 supply invoice, three jobs open, code USD 1,133 to each.

Bad

USD 3,400 supply invoice, three jobs open, code USD 1,133 to each.

Raw lines 80 to 83
84### Good
86Code the whole thing to the most likely job, flag it as unsplit, and ask. A flagged single coding gets fixed. A tidy fake split never does.
88---

Good

Code the whole thing to the most likely job, flag it as unsplit, and ask. A flagged single coding gets fixed. A tidy fake split never does.


Raw lines 84 to 89
90## Gotcha: staging a Ramp or Expensify charge as a payable
92**Why it matters:** It is already paid. Staging it creates a liability that does not exist and sets up a genuine double payment.

Gotcha: staging a Ramp or Expensify charge as a payable

Why it matters: It is already paid. Staging it creates a liability that does not exist and sets up a genuine double payment.

Raw lines 90 to 93
94### Bad
96Card feed and bill inbox both processed into the same payables list.

Bad

Card feed and bill inbox both processed into the same payables list.

Raw lines 94 to 97
98### Good
100Card charges get coded, not staged for payment. Keep them in a separate bucket and say so in the summary.
102---

Good

Card charges get coded, not staged for payment. Keep them in a separate bucket and say so in the summary.


Raw lines 98 to 103
104## Gotcha: dropping an excluded bill silently
106**Why it matters:** A bill held back for a good reason still has a vendor waiting on it. Silence turns a careful exclusion into a late payment.

Gotcha: dropping an excluded bill silently

Why it matters: A bill held back for a good reason still has a vendor waiting on it. Silence turns a careful exclusion into a late payment.

Raw lines 104 to 107
108### Bad
110Present a clean run of 11 bills. Say nothing about the 3 that were held.

Bad

Present a clean run of 11 bills. Say nothing about the 3 that were held.

Raw lines 108 to 111
112### Good
114```
115Held 3: Johnstone (billed 12, received 8), Grainger (no receiving record),
116Watsco (total unreadable). None of these are late yet. Two need the vendor.
117```
119---

Good

Held 3: Johnstone (billed 12, received 8), Grainger (no receiving record),
Watsco (total unreadable). None of these are late yet. Two need the vendor.

Raw lines 112 to 120
121## Gotcha: creating a vendor record from a bad name read
123**Why it matters:** "ACME SUPPLY #4412" as a new vendor splits the history that makes future coding automatic, and it makes the AP aging report wrong.

Gotcha: creating a vendor record from a bad name read

Why it matters: "ACME SUPPLY #4412" as a new vendor splits the history that makes future coding automatic, and it makes the AP aging report wrong.

Raw lines 121 to 124
125### Bad
127New vendor created for every branch number and formatting variant.

Bad

New vendor created for every branch number and formatting variant.

Raw lines 125 to 128
129### Good
131Fuzzy-match against existing vendors first, propose the match, and only create a record when the owner confirms it is genuinely new.

Good

Fuzzy-match against existing vendors first, propose the match, and only create a record when the owner confirms it is genuinely new.

Raw lines 129 to 131