Busopp: Item_Values_Lines

What this view is for

Busopp.item_values_lines provides the numeric values associated with business opportunities.

If:

  • core_details tells you what the opportunity is
  • meta_codes tells you how it is categorised
  • meta_dates tells you when things happen

then item_values_lines tells you how much.

This is the view where pipeline value lives.


A note on “lines” in the CDM

For convinience, in the Common Data Model (CDM), the term lines is used as a version indicator.

For opportunities, this typically means:

  • One or more value-bearing records per opportunity
  • Values expressed at a meaningful numeric grain
  • A structure that remains consistent across Busopp, Order and Invoice

Think of “lines” as value instances, not as physical sales order lines.


Level of detail (grain)

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

This view is intentionally long and thin, just like meta_codes and meta_dates, but focused purely on numbers.

It is not safe to count rows here — this view exists for aggregation.


What you’ll find in this view

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

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

No business rules or aggregations are baked in.


Current value attributes

The following META_TYPE / ATTRIBUTE combinations are currently available:

META_TYPEATTRIBUTE
SALEUNIT_PRICE_BASE
SALEUNIT_PRICE_CURR
TOTALVALUE_BASE
TOTALVALUE_CURR

The naming makes currency explicit and avoids ambiguity at the point of use.


How to join this view

Every row includes OBJECT_SEQ, consistent with all other Busopp views.

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

This ensures values are anchored to the correct opportunity before any aggregation takes place.


Aggregating values (with care)

In most reports, this view is aggregated early into a working meta_values layer.

This is a good and common practice — as long as it’s done deliberately.

Be mindful of currency

When aggregating values:

  • Never mix currencies unintentionally
  • Group by currency or select a single currency context
  • Be clear whether you are working with:
    • Base values
    • Transaction (current) values
    • A converted reporting currency

If totals feel “almost right”, currency is the first thing to check.


Creating a combined value attribute

As with codes and dates, 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, you can pivot to create a wide, report-friendly values table with:

  • One row per opportunity (OBJECT_SEQ)
  • One column per value attribute
  • Clear separation of base and currency values

This often becomes the foundation for reusable measures.


Things to watch out for

  • Don’t sum values across different currencies
  • Don’t assume all numeric values should be summed (unit prices vs totals)
  • Avoid aggregating the same value more than once in the report flow

A simple sense check: if a value exists at both line level and aggregated level, make sure you’re only using one.


Where this fits in a report build

A typical flow is:

  1. Start with Busopp.core_details
  2. Add meta_dates and meta_codes for context
  3. Join item_values_lines for numeric values
  4. Aggregate into a working meta_values layer
  5. Build measures on top of the aggregated values

This keeps identity, context, timing and value clearly separated.


Key takeaway

Busopp.item_values_lines is where pipeline value lives — and where the most care is needed.

Use it intentionally, respect currency, aggregate once, and it becomes a powerful and flexible foundation for opportunity value reporting.

Leave a Comment