What this view is for
Invoice.meta_dates provides the key billing, lifecycle and payment-related dates for invoices.
If:
Invoice.core_detailsdefines what the invoice isInvoice.meta_codesdefines 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 identifierMETA_TYPE– the lifecycle or terms context of the dateATTRIBUTE– 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_TYPE | ATTRIBUTE |
|---|---|
| LIFECYCLE | INVOICE |
| LIFECYCLE | VOUCHER_REF |
| LIFECYCLE | CREATION |
| TERMS | DUE |
| TERMS | PAY_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:
- Filter to the date types you need
- Create a combined attribute identifier
- 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_ATTRIBUTEinto 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:
- Start with Invoice.core_details
- Add Invoice.meta_dates for billing and payment timing
- Shape dates using a combined attribute and pivot if required
- Add meta_codes and item_values_lines for context and value
This keeps identity, timing, classification and value clearly separated.
Key takeaway
Invoice.meta_datesgives 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.