Second Look
Every bill that arrives gets a second look. It is compared against what that vendor has billed for that property before, against the approval thresholds you already set, and against every invoice you have already received from that vendor. When something does not line up, one card appears on the invoice you were already looking at, states the fact in your own numbers, and offers two buttons.

That is the whole feature. There is no separate screen, nothing to configure, and no setup step. It starts on the day your first invoices arrive, and at activation it runs over the documents already in your workspace, so the first thing you see is what it found rather than a promise to start watching.
What it is not
Four limits, stated first because they are the questions everybody asks.
- It does not hold your bills. One exception, and only one: a top-tier duplicate cannot be exported until a person decides. Everything else is information beside the invoice. Approval and export carry on exactly as before.
- It does not contact your vendors. No email, no notice, no portal message. Nothing leaves your workspace.
- It does not make approval decisions. It has no vote. Your rules and your approval tiers decide what happens to an invoice; a finding is a sentence next to it.
- It makes no accusation about anybody. Every headline is a comparison of amounts you already have — "$1,450.00 every month since March, $1,595.00 this month". It is not a judgment about a vendor, an employee or a manager, and it is not written as one. What the comparison means is yours to decide.
You will also never see a score, a band, a percentile or a confidence figure on a finding. We compute one internally to decide whether a finding is worth showing; showing it to you would replace a fact you can check with a number you cannot.
What it checks
| Check | What fires it | How much history it needs |
|---|---|---|
| Exactly-billed contract changed | A vendor that has billed the identical amount for this property every time bills a different amount. Any change over $25, or over 1%, whichever is larger. | 3 invoices |
| Higher than usual, one invoice | This invoice is at least 10% and at least $50 above the usual amount for this vendor and property. | 5 invoices |
| Looks like a rate change | Two invoices in a row come in above that same line. This is the one worth acting on: one high invoice is an event, two is a new price. | 5 invoices |
| Never seen this high | The largest invoice you have ever had from this vendor for this property, by at least $250. | 9 invoices |
| Possible duplicate | Nine matching rules across vendor, invoice number, amount, date and the document itself. See duplicate detection. | None |
| Just under an approval threshold | An invoice lands within 5% below a threshold that would have sent it to an approver — and at least one more from the same vendor did the same in the last 90 days. | None |
| One job, several invoices | Two or more invoices from the same vendor for the same property inside seven days, each below an approval threshold, adding up to more than it. | None |
| First invoice from this vendor | Exactly what it says. A note, not a warning. | None |
The last four need no history at all, which is why they work on your first day. The first four are comparisons, and a comparison needs something to compare with.
When it cannot check a price
Two situations, and the card says which one applies rather than staying silent.
Not enough history yet. We need about five invoices from a vendor for a property before we can compare prices. Below that, the card tells you where you are — "We need about 5 invoices from this vendor for this property before we can compare prices. This is number 3." Duplicate checks, threshold checks and the first-invoice note are unaffected and run from the start.
The amounts move too much to compare. Each vendor-and-property pair is classified from its own history: a monthly landscaping contract at a fixed price, a metered utility bill, a per-incident repair vendor. Price comparison only runs where the amounts have been steady enough for a comparison to mean anything. A gas bill that swings between January and July is not going to be told it went up in January, because it did, every year, and a check that says so every winter is a check people learn to ignore. Utilities, waste and telecom vendors are treated as variable by default, whatever their numbers look like.
The pairing matters as much as the vendor. The same landscaper can be on a fixed contract at one building and time-and-materials at another, so the history is kept per vendor and property, never per vendor alone.
What a finding tells you
Every finding carries the same four things:
- A plain sentence. One per check, written out rather than assembled from a category name.
- The baseline, with its own sample size. "Usual $1,450.00 — last 9 invoices, Nov–Jul." The sample size is on the card because it is the evidence, the explanation and the reason a first invoice was never flagged, all in one phrase.
- This invoice, and the difference, in dollars and as a percentage.
- The invoices it compared against, each one a link to the actual document. If you do not believe the baseline, open the bills it was built from.
At most two findings are shown on one invoice. Five flags on a single bill reads as software that is confused, so the rest sit behind a more link.
The two verbs
There is no "Dismiss". Both buttons are decisions, and both are recorded.
That's fine. The invoice is correct and you know why. The card collapses to a one-line note, and a toast tells you what was learned from the decision — for example that increases under 10% from that vendor at that property will not be raised again. The toast carries Undo and Change, and Undo stays available on the collapsed note for the rest of the session. On a rate change, the new amount joins the baseline straight away rather than after another five invoices.
Look into it. The invoice is put in the disputed filter on the review screen, an audit row is written, and a note is left for whoever approves it. It does not email the vendor, and by itself it does not block anything.
Accepting the same check twice in a row for the same vendor produces one inline offer — "You've accepted the last two increases from GreenLeaf. Stop flagging increases under 20% for them?" — asked once and never repeated.
Editing the amount, vendor or property on an invoice recomputes its findings when you save. A finding that contradicts a field you just corrected is worse than no finding at all.
Muting a vendor
Every mute is created from a finding, is visible afterwards, and can be undone. There is no settings screen for it and no permanent silent mute — a control that has been quietly switched off is worse than one you never had.
Open more on any card and there are exactly three links:
- Stop flagging increases under __% for this vendor. The box is pre-filled with a number that would not have raised the finding you are looking at.
- Pause all flags for this vendor for 90 days. It expires, the expiry date is stated when you set it, and it is never extended silently.
- Why did we flag this?
Both suppressions are listed on the vendor's page with an Undo beside them.
Separately, a check that you keep rejecting mutes itself. Each check tracks how often it was accepted and dismissed for your workspace over a rolling 30 days, and one that is dismissed about eleven times in a row without ever being confirmed is switched off for you. That takes no support ticket and no release.
The defaults, and why they are these numbers
Nothing here is a setup step. These are what the product ships with.
| Default | Value | Why |
|---|---|---|
| Price increase | At least 10% and at least $50 | A percentage on its own turns a $12 line into an interruption. A dollar floor on its own misses a 40% rise on a small contract. Both have to clear. The 10% is a floor rather than the whole test: the jump also has to be large next to how much that vendor's own amounts normally move, so a steady vendor is held to 10% and a wobblier one to more. |
| Dollar floor | $50 | Published on purpose. An unstated floor makes a miss look like a bug; a stated floor makes it a decision you can argue with. |
| Confirmation | Two invoices in a row before a price rise is called a rate change | A single high invoice is a one-off far more often than it is a new price. The first one is a quiet note; the second is the finding. |
| Exactly-billed contract | Any change over max($25, 1%) | A vendor that billed exactly $1,450 nine times is on a contract. Any movement in that number is a fact worth one line. |
| Never seen this high | Beyond the previous maximum by $250 | Below that it is noise on any portfolio big enough to matter. |
| Minimum history for price checks | 5 invoices for that vendor and property | Below five, a baseline is guessing, and a check behind a guess is what teaches people to stop reading checks. |
| Findings shown per invoice | 2 | The rest are behind more. |
| Weekly summary | On, Monday morning, sent in quiet weeks too | For somebody who opens the app twice a week, no email and a broken check look identical. |
| Mute expiry | 90 days, always stated | Never permanent, never silent. |
| Direction | Increases, and decreases at twice the threshold | A large drop usually means a missing line or the wrong period, not a discount. |
We publish the numbers because the alternative is a customer who cannot tell a deliberate silence from a broken check.
Where findings appear
- On the invoice, above the vendor fields on the review screen, and above the document on a phone.
- In the invoice list, as a small flag count inside the vendor cell. It is not a tenth column.
- In the review screen filters, as a saved filter for open findings and one for disputed ones.
- In the approval email you already get. A hard duplicate or an approval-threshold finding is written above the fold in the approval request, because that is the moment money is about to move. No new message is created for it.
- In one weekly summary, sent Monday morning, ordered by dollar impact. It is sent in quiet weeks too — "34 bills checked, nothing needed a second look" — because for somebody who opens the app twice a week, silence and breakage look the same. The cadence is weekly, daily or off, and weekly is the default.
The only two settings
There is no settings wizard and no rules builder. There are two boxes, both under Settings, and you can ignore both.
- The digest cadence — weekly, daily or off. Weekly, on, is the default.
- Tell me about increases over ___% — 15 by default, for the whole workspace. A lower percentage means more findings. The dollar floor sits underneath it either way: we don't flag increases under $50.
Per-vendor thresholds and pauses are not set here. They are created from a finding, as above, and a vendor rule overrides the workspace number.
What it does not do yet
These are on the list and are not in the product today. Do not buy on them.
- Contract upload and contract-rate checks. Comparing a bill against a rate in a signed contract needs the contract, a human confirming the terms read out of it, and a way to show the quoted clause. None of that ships today.
- Escalation caps against an inflation index. "Your contract caps increases at CPI, CPI was 2.6%, this is 8%" is the sentence we want. It needs contracts first.
- Weather normalization for utilities. A heating bill needs degree days before an increase means anything, which is exactly why utility bills are not price-checked today rather than checked badly.
- Comparison against other InletAP customers. We do not do this, and there is no benchmark of what other firms pay in the product.
- A missed-bill check. A vendor that billed on the 1st for nine months and then did not is worth knowing about. It is not built.
See also
- Duplicate detection — the rules, the guards, and the one finding that can block an export.
- Invoice statuses — what
duplicatemeans as a status, and how it is undone. - Designing approval tiers — the thresholds two of these checks are measured against.
- Audit trail — where every acceptance and dispute is written.