Invoice: Item_Values_Lines

What this view is for

Invoice.item_values_lines provides the numeric values associated with invoices.

Where:

  • Busopp values represent forecast intent
  • Order values represent contracted commitment

Invoice values represent what has actually been billed.

This view is the authoritative source for invoiced amounts, tax and realised value.


A note on “lines” in the CDM

In the Common Data Model, lines indicates a value-bearing version, not necessarily a literal invoice line item.

For invoices, this means:

  • One or more numeric records per invoice
  • Values expressed at a billing-meaningful grain
  • A structure consistent with Busopp and Order for reuse and comparison

Think of this view as value instances, not accounting ledger rows.


Level of detail (grain)

  • Multiple rows per invoice
  • One row per value attribute instance

This view is intentionally long and thin.

It is not safe to count rows here — this view exists to be aggregated deliberately.


What you’ll find in this view

Each row represents a single monetary value with currency context, including:

  • OBJECT_SEQ – the paired company + invoice identifier
  • META_TYPE – the category of value
  • ATTRIBUTE – the specific value meaning
  • A numeric value
  • Currency context (base or transaction currency)

No business rules or aggregation are applied in this view.


Current value attributes

The following META_TYPE / ATTRIBUTE combinations are available:

META_TYPEATTRIBUTE
AMOUNTNET_CURR
AMOUNTNET_BASE
AMOUNTACTUAL_BASE
AMOUNTACTUAL_CURR
AMOUNTVAT_BASE
AMOUNTVAT_CURR

The naming is deliberate:

  • NET vs ACTUAL reflects billing semantics
  • BASE vs CURR makes currency explicit
  • VAT is separated to avoid accidental mixing with net values

How to join this view

Every row includes OBJECT_SEQ, consistent with all Invoice views.

Always join Invoice.item_values_lines to Invoice.core_details using OBJECT_SEQ.

This ensures invoiced values are anchored to the correct invoice before aggregation.


Aggregating invoice values (with care)

This view is almost always aggregated early into a working meta_values layer.

That is expected — and correct — as long as aggregation is deliberate.


Be mindful of currency and tax

When aggregating:

  • Never mix base and transaction currency unintentionally
  • Keep VAT values separate from net values unless explicitly required
  • Be clear whether you are reporting:
    • Net invoiced value
    • Actual billed value
    • VAT amounts

If totals don’t reconcile, currency or VAT mixing is the usual culprit.


Creating a combined value attribute

As with other value views, combining META_TYPE and ATTRIBUTE is strongly recommended.

Example (Power Query):

= Table.AddColumn(
    Source,
    "VALUE_ATTRIBUTE",
    each [META_TYPE] & "_" & [ATTRIBUTE],
    type text
)

This makes intent explicit and simplifies shaping and pivoting.


Pivoting and shaping values

Once filtered and combined, pivoting allows you to create a wide, report-friendly values table with:

  • One row per invoice (OBJECT_SEQ)
  • One column per value attribute
  • Clear separation of net, actual and VAT values

This shape is ideal for:

  • Revenue reporting
  • VAT analysis
  • Reconciliation back to Orders and Busopp

How this view is commonly used

Invoice.item_values_lines is typically used to:

  • Calculate billed revenue
  • Analyse VAT exposure
  • Reconcile invoiced vs ordered value
  • Support financial and cashflow reporting

It represents realised value, not forecast or commitment.


Things to watch out for

  • Don’t aggregate VAT into net values accidentally
  • Don’t mix currencies unless explicitly converting
  • Avoid aggregating the same value more than once

A good sense check: invoice totals should reconcile cleanly back to financial systems.


Where this fits in a report build

A typical flow is:

  1. Start with Invoice.core_details
  2. Add meta_dates for billing and payment timing
  3. Add meta_codes for classification and context
  4. Join item_values_lines for invoiced amounts
  5. Aggregate into a working meta_values layer
  6. Reconcile back to Orders and Busopp if required

This keeps identity, timing, classification and value cleanly separated.


Key takeaway

Invoice.item_values_lines is the authoritative source for billed monetary value in the Sales Pipeline.

Respect the grain, separate tax from net, be explicit about currency, and aggregate once — and invoice reporting remains accurate, auditable and trustworthy.

Leave a Comment