Invoice: Meta_Dates

What this view is for

Invoice.meta_dates provides the key billing, lifecycle and payment-related dates for invoices.

If:

  • Invoice.core_details defines what the invoice is
  • Invoice.meta_codes defines how it is classified

then meta_dates explains when important invoice events occurred or are expected to occur.

This view is central to billing timelines, ageing analysis and cashflow reporting.


Level of detail (grain)

  • Multiple rows per invoice
  • One row per date attribute

This view is intentionally long and thin.
An invoice with several important dates will appear multiple times — once for each date type.


What you’ll find in this view

Each row represents a single date associated with an invoice, including:

  • OBJECT_SEQ – the paired company + invoice identifier
  • META_TYPE – the lifecycle or terms context of the date
  • ATTRIBUTE – the specific event within that context
  • The date value itself

As with other meta_dates views, the word “DATE” is deliberately omitted from attribute names.
All values here are dates; meaning comes from the context, not repetition.


Available date types

The following META_TYPE / ATTRIBUTE combinations are available:

META_TYPEATTRIBUTE
LIFECYCLEINVOICE
LIFECYCLEVOUCHER_REF
LIFECYCLECREATION
TERMSDUE
TERMSPAY_TERM_BASE

META_TYPE provides the phase (lifecycle vs terms), while ATTRIBUTE describes the specific event.


How to join this view

Every row includes OBJECT_SEQ, consistent with all Invoice views.

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

This ensures invoice timing stays aligned to the correct invoice and company.


Working with the long, thin date structure

Like other meta_dates views, this table is designed for flexibility rather than direct consumption.

In most reports, you’ll want to:

  1. Filter to the date types you need
  2. Create a combined attribute identifier
  3. Pivot to a wide, report-friendly shape

Creating a combined date attribute

Because META_TYPE provides essential context, it’s strongly recommended to create a combined attribute.

Example (Power Query):

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

This avoids ambiguity (for example, multiple lifecycle-related dates) and makes shaping predictable.


Pivoting to a wide date table

Once combined, pivoting allows you to:

  • Turn each DATE_ATTRIBUTE into a column
  • Reduce each invoice to a single row
  • Work with explicit billing, creation and due dates

This shape is especially useful for:

  • Invoice ageing and overdue analysis
  • Cashflow forecasting
  • Payment term compliance

How this view is commonly used

Invoice.meta_dates is typically used to:

  • Track invoice issue and creation timing
  • Analyse payment terms and due dates
  • Support ageing buckets and days outstanding calculations
  • Anchor invoiced values to accounting periods

It provides time context, not monetary values.


Things to watch out for

  • Be explicit about which date drives a calculation
  • Don’t mix lifecycle and terms dates unintentionally
  • Remember that “invoice date” and “creation date” may differ

If ageing calculations feel inconsistent, revisit which date is being used.


Where this fits in a report build

A typical flow is:

  1. Start with Invoice.core_details
  2. Add Invoice.meta_dates for billing and payment timing
  3. Shape dates using a combined attribute and pivot if required
  4. Add meta_codes and item_values_lines for context and value

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


Key takeaway

Invoice.meta_dates gives you clear, contextual timing for invoices — from creation through billing to payment due.

The dates themselves are simple; their meaning comes from META_TYPE + ATTRIBUTE.
Shape deliberately, pivot when useful, and invoice timing becomes straightforward to reason about.

Leave a Comment