Exports
Exports
Overview
Exports are downloadable files generated from Invoices or Statements.
They are not the primary billing records themselves. Instead, they are a snapshot in time of those billing records at the moment the export is generated.
This distinction is important:
- Invoices and Statements are the actual billable artifacts in Colabmacs
- Exports are packaged representations of those artifacts for download, sharing, and finance workflows
What Exports Are For
Exports are useful when staff need to:
- download billing documents
- send billing files to finance teams
- distribute packaged statement and invoice outputs
- preserve a point-in-time export of the current billing state
The operational working list for exports is the Exports tab in Billing Admin.
Export Types
Invoice Exports
Invoice exports provide a project-level billing snapshot.
They are generated from individual invoices and typically include:
- invoice totals
- charge-level detail
- billing-period context
Statement Exports
Statement exports provide a team-level billing snapshot.
They are generated from statements and may include:
- statement summary detail
- related invoice exports
- batch packaging for distribution
Snapshot Behavior
Exports are cached outputs.
That means:
- the export reflects the invoice or statement exactly as it existed when the file was generated
- the export does not keep itself in sync automatically after generation
- the underlying invoice or statement may later change even though the old export file still reflects the older state
Because of this, exports should be treated as point-in-time deliverables, not live views.
What Happens When Billing Changes
Invoices and statements are still live billing records until they are paid and locked.
If underlying usage or charges change before settlement, the billing correction workflow can cascade through:
Usage Record / Usage Session correction
↓
Charge regeneration
↓
Invoice regeneration
↓
Statement regeneration
↓
Export invalidationIn practice, this means:
- invoice totals may change
- statement totals may change
- existing export files for those records become stale
When an invoice or statement is regenerated, Colabmacs invalidates the current export cache for that record. The old export file is removed from the active exportable record, and a new export must be generated if staff need an updated download.
Paid Billing Artifacts and Offset Charges
Once billing artifacts are paid, Colabmacs preserves that historical record instead of rewriting it.
If a usage record is corrected after the related billing has already reached a paid/read-only state:
- the original paid charge is preserved
- Colabmacs creates an Offset Charge when a billing difference exists
- that offset can be picked up by later invoice or statement runs
This allows the system to record corrections without silently altering already-settled billing history.
For finance teams, the implication is:
- previously generated exports remain a snapshot of what was billed at that time
- later corrections may appear as new billing adjustments in later billing periods rather than as edits to the old paid export
Export Lifecycle
Generation
Exports are generated from invoice and statement workflows in Billing Admin or the Admin section actions.
Batches
Exports are tracked through Export Batches and Export Batch Items.
This allows Colabmacs to:
- bundle multiple billing files together
- track export status
- provide a downloadable package
- notify users when async export generation completes
Expiration and Cleanup
Export batches are intended to be temporary operational artifacts.
They:
- remain downloadable for a limited period
- can be purged after expiry
- clear cached references when no longer used
Best Practices
- Treat invoices and statements as the source of truth
- Treat exports as snapshots for delivery and review
- Regenerate exports after invoice or statement regeneration
- Review whether billing has changed before re-sending a previously generated export
- Expect paid-history corrections to appear as offset-driven adjustments rather than silent rewrites