# How costs reach an initiative

> Every way spend becomes an initiative's cost, where the same dollar can arrive twice, and what Roiva leaves out, counts anyway, or only suspects.
>
> Source: https://roiva.ai/docs/how-costs-reach-an-initiative
> Checked against the product on October 12, 2026

An initiative's cost is the sum of its cost entries. Every one of those is one row, and every row goes through the same door — whether a sync wrote it, a recurring schedule wrote it, or a person typed it — so a currency, a cost category and a period mean the same thing whatever recorded them.

This page is about where those rows come from, and about the question a finance team asks second: if spend can reach an initiative from several directions, how do you know it hasn't been counted twice?

#### The ways spend becomes a cost

- **A cost source link** on a connection. The provider's own bill, narrowed to the part the initiative runs on. What narrows it depends on the platform — the vendors you pick on a finance or card system, the services or usage types on a cloud, the projects or workspaces a model provider's link claims, a cost-allocation tag on AWS or Azure. [What each platform books](https://roiva.ai/docs/reference/platforms) has a row per platform; [Linking connections to initiatives](https://roiva.ai/docs/linking-connections-to-initiatives) walks through setting one up.
- **A vendor mapping** on a finance or card connection. The vendor's bills on your books become the initiative's cost, at the share you set.
- **An allocation rule** on a finance or card platform. A rule splits a platform's bills across initiatives on an approved basis, with journals behind it. See [Allocation rules and accounting periods](https://roiva.ai/docs/allocation-rules-and-accounting-periods).
- **A recurring cost** on the initiative — a subscription or a retainer no integration reports. See [Vendors, shares and recurring costs](https://roiva.ai/docs/vendors-shares-and-recurring-costs).
- **A cost entry** somebody records, asks the Assistant to record (marked as recorded through the Assistant), imports from a CSV or a tracker workbook, or accepts from a document Roiva read. See [Adding costs and value entries](https://roiva.ai/docs/adding-costs-and-value-entries).

None of these books anything new into a locked accounting period. A row dated in a locked month, or moved into one, is refused whichever way it arrives, and a bill a sync finds for that month waits until someone reopens it.

#### Tax on a bill

Roiva takes out only tax your books posted to a tax account. On a bill or expense from QuickBooks or Xero, the cost is the total less that tax. That's usually VAT or GST the company claims back, which was never part of what the initiative cost. The cost entry's notes record the tax left out.

Tax your books leave in the expense stays in the cost. US sales tax a company pays on a software purchase is normally recorded that way, as part of the expense, and so is VAT the company can't reclaim. Roiva doesn't judge whether a tax is recoverable, because your books already have: tax that can't be claimed back isn't entered as tax, so it sits in the expense line.

Where a source can't say what your books posted to a tax account, Roiva books its total, tax included. Source by source:

- **QuickBooks and Xero.** Bills, expenses and spend money are booked at their total less the tax posted to a tax account.
- **NetSuite.** Vendor bills and credit card charges are booked at their total. NetSuite's query language can't read tax kept under its Legacy Tax engine, and Roiva doesn't read SuiteTax's tax details.
- **American Express statements.** Charges are booked at their total. The statement file has no tax figure.
- **A card charge your books also carry.** It counts from the card platform, at its total, and your books' copy is left out even when that copy is net of VAT. Taking the books' figure would mean matching each charge to its copy, which is the guess Roiva doesn't make (see below). A company that reclaims VAT on card spend books that VAT as cost here. **Finance → AI Spend**, below its table, and the card connection's page say how much it is, totaled from your books' copies.
- **AWS, Azure and Google Cloud.** Links book usage before tax. AWS lists tax as its own "Tax" line, which no service mapping books, and a tag-scoped link never sees it. Azure's cost data is before tax. Google Cloud counts tax in a budget's own spend, but Roiva leaves it out, so a budget shows less in Roiva than in Google Cloud by its VAT or sales tax.
- **GitHub, OpenAI, Anthropic, Snowflake and Databricks.** Their usage reports carry no tax, which is added on the invoice. Databricks is priced at its list prices.
- **A cost entry a person records or imports.** It's the amount they enter.

So US sales tax a cloud or model provider adds to its invoice isn't in that provider's link, even where your books keep it as cost. For five of those vendors you can close that gap yourself, below.

#### Pricing a linked vendor by your books

For GitHub, OpenAI, Anthropic, Snowflake and Databricks, a link counts the vendor's own report and leaves its bill in your books out. The report is usage before tax, and Databricks' is at list price, so the link's cost and your ledger rarely agree.

The vendor's page (open it from **Finance → AI Spend**) sets the two side by side: what your books hold from it and what its report says, over the last twelve complete months, and the ratio between them. A factor of 1.083 means your books hold 8.3% more than the report. Where a vendor's bills are dated the month after the usage they cover, each is read against the month before. The part of a bill the report never carries, such as Claude Team seats, is left out of the books' side: it's booked from your books already (see What Roiva leaves out, below), and a factor that included it would count it a second time.

An Owner or Admin can accept that factor: on the vendor's page, choose **Apply to linked costs**. From then on:

- Each month of the link's usage carries one adjustment at the accepted factor, as its own cost line of type Adjustment. At 1.083, a $1,000 month gains $83. At 0.75, it loses $250.
- The usage lines stay exactly what the vendor reported.
- The accepted factor doesn't move by itself. It's recorded with who accepted it, when, and the figures it was read from.
- If the figures later give a factor more than three points away, the row and your Inbox say so. Accept the new one or stop; nothing reprices until you do.
- A locked accounting period is never adjusted.

Roiva never applies a factor without that acceptance, and offers none where the figures can't support one: books in a different currency from the report, fewer than three months to compare, under $1,000 on the report, or a ratio outside 0.5 to 1.3, which is more likely a prepayment than a price. The row says which.

**Stop applying** takes the adjustments back, except in locked periods.

#### Why the same dollar can arrive twice

Because a vendor's spend does not only appear on that vendor's bill.

Anthropic charges you, and the charge also lands on your books as a bill from "Anthropic, PBC" and on a card statement from your card platform. Databricks charges you, and the same usage appears as an "Azure Databricks" line on your Azure bill. Each of those is a real record of the same dollar, held by a different system, spelled differently by each.

Roiva connects to all of them on purpose — that is what makes the total complete — so every one of those pairs is somewhere a cost could be counted twice. There are three honest answers to that, and Roiva gives all three rather than claiming the problem away.

#### What Roiva leaves out

Where a vendor's name is one no other company's bill carries, Roiva leaves that vendor's bill to the vendor's own link, in any month the link books. "Anthropic", "OpenAI", "GitHub", "Snowflake" and "Databricks" each name one company and nothing else, so a bill on your books whose vendor name contains one of them is the link's to count.

A link counts the vendor's own report, though, and a report isn't the whole invoice. So Roiva leaves out only the part of a bill the report also counts. What a vendor bills outside its report is booked from your books beside the link:

| Vendor | Its link counts | Booked from your books beside it |
|---|---|---|
| Anthropic | Claude API usage billed to your Console organization, from Anthropic's cost report | Claude Pro, Max, Team and Enterprise plans, which are billed through claude.ai and appear in no cost report, and Priority Tier, which the cost report leaves out |
| OpenAI | API usage, from OpenAI's organization costs | Every ChatGPT plan, which OpenAI bills apart from the API |
| Snowflake | The usage types the link maps, from Snowflake's usage in currency | Snowflake Marketplace listings, which Snowflake invoices separately |
| GitHub | Copilot seats, premium requests and AI credits, from GitHub's billing usage | Nothing. The rest of a GitHub invoice, such as plan seats, Actions and storage, isn't an AI initiative's cost unless the link names it |
| Databricks | The products the link maps, at list price | Nothing. What the invoice adds is price, which Pricing a linked vendor by your books, above, covers |

Roiva tells the two apart by what the bill says it's for. A bill line or item, or a card charge's descriptor, that names one of those products is booked beside the link, and the rest of that bill is left to it. On an Anthropic invoice with a $300 usage line and a $250 Claude Team line, $250 is booked and $300 is left out. The part booked is those lines' share of what the bill cost, so tax posted to a tax account comes off it as it would off the whole bill. The cost entry's notes say so, naming the product booked beside the link and the amount the link took.

Roiva matches the product's name, never an amount or a date. A bill that doesn't name the product is read as usage and left to the link, as is every NetSuite bill, because Roiva doesn't read NetSuite bill lines. A card charge has no lines, so it's booked beside the link only when its descriptor names the product. If your books record a seat invoice without saying what it's for, put the plan's name in the line's description or item, or in the vendor's name.

Each vendor's page, opened from **Finance → AI Spend**, says how much of its bills was left out, and how much of those same bills is still counted because the report doesn't carry it.

If you buy Copilot under a volume or prepaid agreement, those seats may not be in GitHub's billing usage until the agreement ends. Compare your GitHub bills with the link on GitHub's vendor page.

Two things take the bill back, and the link books nothing that month:

- **An allocation rule** for that vendor, because a rule is an approved split with journals behind it, and an approval outranks a heuristic.
- **A locked accounting period**, which no sync may change — journal entries and auditor packets already reference those numbers.

Each takes the month only when the bill holds usage the link's report counts. A rule's Claude Team invoice, or a locked row holding only seats, leaves the link's usage counted.

Months before the link has data still book from the mapping, at the share you set. The same rule runs on a cloud's bill: an "Azure Databricks" line is left to the Databricks link in any month that link books.

Card charges work the same way in the other direction. Where a card platform is connected, its charges are counted from the card platform, and the copies of them posted from that card's account in your books are left out.

#### What Roiva counts twice on purpose, and says so

AWS, Azure and Google Cloud do not have a name that belongs to them alone. Azure bills as Microsoft, beside your Microsoft 365 invoice from the same name. Google Cloud invoices come from "Google Cloud EMEA Limited", so an exact match fails the other way.

A wrong match there would not double a cost — it would silently drop a real one, and a dropped cost is worse than a doubled one, because a doubled cost is at least visible in the total. So for those three Roiva suppresses nothing. Both copies are booked, the mapping form warns you, and you set the share for the part the link does not already count.

Roiva knows the size of that overlap and reports it rather than leaving you to find it. The figure is the smaller of the two copies, never the invoice.

#### What Roiva only suspects

A person's typed cost and a synced bill for the same vendor and the same month may be the same money or may not, and nothing in the data settles it. The same is true of one invoice reaching Roiva through two books systems.

Roiva matches those on vendor name and month and reports them as candidates. It never picks a winner: nothing is authoritative enough to decide between a person's entry and a bill, and quietly deleting one would be the kind of silent correction this product exists to avoid.

#### Where your account's own answer is

**Finance → AI Spend** says it for your account, all time, in one line under its figures: how much of the cost your initiatives record may be counted twice, and on how many vendors. **Review** sets its Status filter to **May be counted twice**, and each vendor's page lists:

- what is counted twice on purpose, and by how much;
- what Roiva suspects is counted more than once, labeled as a guess;
- what was already settled, and which copy counts.

The line is there only when something may be counted twice.

It is all-time rather than windowed, because "is anything counted twice" is a question about everything recorded, and a reporting period that happened to exclude the double count would answer it wrongly.

It is a figure and the lists behind it rather than a tick, on purpose. "Nothing is double counted" is unfalsifiable, and a green check invites the question again instead of settling it. The enumeration is the part a CFO can audit.

#### What this does not cover

One connection linked to two initiatives, where both links map the same bill, the same service or the same deal, books that item in full for each of them. The syncs fan out, so the portfolio counts it twice.

Roiva finds that in the rows themselves and shows it on the connection's **Initiatives** tab, but it does not prevent it: which initiative a shared bill belongs to is a judgment about your business, not a fact in the data. Splitting it is what shares and mappings are for.

#### Related

- [Linking connections to initiatives](https://roiva.ai/docs/linking-connections-to-initiatives) — what each connection books, and the vendor-on-both-sides rule in detail
- [Allocation rules and accounting periods](https://roiva.ai/docs/allocation-rules-and-accounting-periods) — approved splits, journals, and what a locked period refuses
- [Vendors, shares and recurring costs](https://roiva.ai/docs/vendors-shares-and-recurring-costs) — setting a share, and costs no integration reports
