Navigation
14.20. Style and Shape MSP Invoice Layouts: Branding, Line-Item Tables, Totals, and Transforms
Style and shape AlgaPSA invoice layouts with brand colors, logo placement, line-item tables, dynamic content, totals, taxes, discounts, and advanced transforms that filter, sort, group, or summarize invoice data.
Once a layout is built (14.19. Building an Invoice Layout), the next pass is shaping how it reads. This page covers four concerns that all act on a completed layout: applying your brand, presenting line-item tables, configuring totals/taxes/discounts, and — for advanced cases — using transforms to filter, group, or summarize invoice data before it renders.
The goal of every styling and shaping choice is the same: a professional invoice that clients understand quickly. Decoration for its own sake usually creates confusion, not confidence.
Branding
Invoice styling should make the document easier to read and reinforce your MSP brand. Use the canvas and inspector to adjust layout, size, spacing, alignment, borders, backgrounds, text color, and other visual settings.
Branding elements
| Element | Recommendation |
|---|---|
| Logo | Place it in the header. Keep it large enough to identify your MSP but not so large that it crowds invoice details. |
| MSP name and address | Include near the logo or footer. |
| Brand color | Use sparingly for headings, dividers, or total emphasis. |
| Fonts | Keep invoice fonts readable and professional. |
| Payment instructions | Put them in a consistent location, usually the footer or near totals. |
| Support contact | Include a billing email or portal instruction for questions. |
Add the logo with the Logo or Image component, then upload or pick the file from the document image picker in the inspector. Resize using the width, height, max-width, and max-height fields so the logo stays crisp at preview and print resolutions.
Layout and spacing
Good invoice layouts use whitespace intentionally. The inspector exposes these controls per component:
| Setting | Use it for |
|---|---|
| Padding | Space inside a section or container. |
| Margin | Space outside a component. |
| Gap | Space between items in a container. |
| Align Items | Line up labels, fields, columns, and totals along the cross axis. |
| Label / Value Alignment | Choose how field labels sit next to their values (between, left, center, right, around, distribute). |
| Width and height | Keep components from overlapping or crowding, including min and max bounds. |
Padding, margin, and gap accept px, rem, or % values, and can be set as one value for all sides or different values per side. Avoid placing too much information in the header. Clients usually look for invoice number, client name, due date, line items, and total first.
Containers and alignment
Use containers to keep related items together. Common patterns:
- two-column header: logo and MSP address on the left, invoice number and due date on the right;
- billing details row: customer information, PO number, and service period;
- line-item section: table with clear column widths;
- totals section: aligned to the right, below line items;
- footer: payment instructions and billing contact.
Borders, dividers, and color
Borders and dividers are useful when they guide the reader. The inspector includes a Border control on most components plus dedicated Section Border style and Field Border style options for grouped layouts. Use them to:
- separate the header from invoice details;
- define a totals box;
- separate payment instructions from billing lines;
- make a client-specific note stand out.
Avoid heavy borders around every component. Too many boxes can make an invoice harder to read.
For color, the inspector exposes Background and text color on containers and fields, plus dedicated Header Background and Header Color controls on tables. Apply your brand color to a few targeted elements rather than every component.
Payment text
Bind payment instructions, remit-to addresses, and support contacts using text and field components — see the binding reference in 14.19. Building an Invoice Layout. Keep the wording short, place it in a consistent location, and use a slightly smaller font size than line items so it does not compete with totals.
Brand-safe checklist
Before assigning a layout, confirm:
- logo looks crisp in preview;
- invoice fields do not overlap;
- line-item descriptions have enough room;
- totals are easy to find;
- colors print clearly in black and white;
- footer text is readable;
- the PDF fits the chosen page size and margins.
Set the page size and safe margins, and validate end-to-end, in 14.21. Page Setup, Preview, and Troubleshooting.
Line-Item Tables and Dynamic Content
Dynamic content repeats based on invoice data. The most common example is the line-item table: one invoice may have three lines, while another may have thirty. A dynamic component lets the layout adapt without redesigning the invoice each time.
Figure 1: Line-item tables and totals components adapt to the invoice data rendered in preview or PDF output.
Use a line-item table for charges
A line-item table should explain what the client is paying for.
Common columns:
| Column | Purpose | Example |
|---|---|---|
| Description | Service, labor, product, usage, or fee name. | Managed Endpoint Monitoring |
| Quantity | Count, hours, GB, licenses, or other units. | 35 endpoints |
| Rate | Unit price. | $42.00 |
| Amount | Quantity multiplied by rate or calculated line amount. | $1,470.00 |
| Service Period | The date range for recurring service. | May 1–May 31 |
MSP billing examples
| Billing model | Recommended table detail |
|---|---|
| Fixed monthly managed services | Service name, service period, quantity, monthly rate, amount. |
| Block hours | Included support line, overage hours, hourly rate, amount. |
| Usage billing | Usage description, measured quantity, unit rate, amount. |
| Flat plus usage bucket | Base fee line plus separate overage line. |
| Project billing | Project service, hours or milestone, rate, amount. |
Dynamic tables beyond standard line items
Use a dynamic table when you need another repeating section in the invoice. Examples:
- group charges by location;
- show backup usage by storage bucket;
- list contract service periods;
- summarize project task billing;
- show attachment or supporting detail rows when available.
Make dynamic content readable
Dynamic content can grow. Design for long invoices before assigning the layout.
- give description columns enough width;
- right-align numeric columns such as quantity, rate, and amount;
- keep headers short and clear;
- avoid tiny font sizes for tables;
- preview with a sample that has multiple rows;
- confirm totals stay below the table and do not overlap;
- include service period fields when recurring charges need context.
Totals, Taxes, Discounts, and Custom Totals
Totals are one of the most important parts of an invoice layout. Clients should be able to find the amount due immediately and understand how it relates to subtotal, tax, discounts, and any custom billing summaries.
The designer includes a combined Totals component and individual total row components for custom arrangements.
Totals components
| Component | Use it for |
|---|---|
| Totals | Standard subtotal, tax, and total block. Best for most layouts. |
| Subtotal Row | A custom subtotal line when you are building your own totals section. |
| Tax Row | A custom tax line. |
| Discount Row | A discount or credit line. |
| Custom Total Row | A business-specific summary line, such as managed services total or project total. |
Tax behavior — the rates themselves — is configured in 14.4. Tax Rate Configuration.
Recommended placement
Place totals below line items, usually aligned to the right. This matches how most clients read invoices: details first, amount due second.
A typical order is:
- Subtotal
- Discount or credit, if applicable
- Tax
- Total
Use stronger text weight or a border around the final total, but keep the supporting rows readable.
MSP examples
| Scenario | Useful totals presentation |
|---|---|
| Fixed monthly support | Subtotal, tax, total. |
| Backup storage overage | Subtotal, tax, total, with overage line item above. |
| Discounted contract | Subtotal, discount, tax, total. |
| Project retainer | Project subtotal plus total due. |
| Multi-location client | Group subtotal by location, then overall invoice total. |
Avoid duplicate totals
Do not place several competing total blocks on the same invoice unless each one has a clear purpose. Duplicate totals can confuse clients and create billing questions.
If you use custom total rows, make sure the final total still matches the invoice total in preview.
Preview totals carefully
Figure 2: Preview totals with realistic sample data before using a layout for client invoices.
Before assigning the layout, confirm:
- currency formatting is correct;
- subtotal matches the sum of line items;
- discount appears only when expected;
- tax appears correctly for taxable invoices;
- total is prominent and easy to find;
- totals do not overlap with long line-item tables.
Transforms (Advanced)
Transforms shape invoice data before it appears in a layout. They are useful when the invoice has many rows or when billing staff want charges presented in a business-friendly order. They are optional — start with a normal line-item table first, and reach for the Transforms tab in the designer only when presentation requires filtering, sorting, grouping, or summary aggregations.
Figure 3: The Transforms tab lets advanced billing admins shape invoice data before it appears in the layout.
What transforms can do
The Transforms tab exposes six operations you can chain into a pipeline:
| Transform | Use it for | MSP example |
|---|---|---|
| Filter | Include only rows that meet a condition. | Show only managed services lines in one section. |
| Sort | Order rows by one or more fields. | Sort line items by service period, location, or amount. |
| Group | Combine rows by a shared field. | Group charges by client location or service category. |
| Aggregate | Calculate sum, count, average, minimum, or maximum across grouped or filtered rows. | Sum all backup storage overage lines. |
| Computed field | Create a derived value for display. | Build a custom service label from category and period. |
| Totals composition | Assemble rows for a totals display. | Create subtotal, tax, discount, and total lines in a custom order. |
A dynamic table can then bind to either the raw collection or to the Transforms output binding produced by the pipeline.
When to use transforms
Use transforms when a normal table is accurate but not readable enough. Good candidates:
- invoices with many usage rows;
- clients with multiple service locations;
- mixed project, recurring, and support charges;
- contracts that need line items grouped by service category;
- billing summaries that need subtotal rows by group.
Avoid transforms for simple invoices with only a few lines. Simpler layouts are easier to maintain, and the standard Totals component already covers subtotal, tax, discount, and final-total presentation without a custom pipeline.
Example: group by service category
For a client like Cascade Manufacturing, a detailed invoice may include endpoint care, security monitoring, onsite support, and backup usage. A transform pipeline can filter out non-billable rows, sort by service period, and group line items by service category so the invoice reads like:
- Managed Services
- Security Services
- Backup and Disaster Recovery
- Onsite Support
An aggregate operation then produces a per-category subtotal that the dynamic table renders as a group footer. This helps the client understand what each portion of the monthly bill represents.
Transform checklist
Before saving a layout that uses transforms:
- preview with a sample that includes enough rows to test the rule;
- confirm filtered rows are intentionally excluded;
- confirm sort order matches how clients expect to read the invoice;
- confirm grouped totals match the invoice total;
- document why the transform exists in the layout description or internal billing notes;
- have another billing admin review complex grouping before assignment.
Validate the final pipeline against a real invoice in 14.21. Page Setup, Preview, and Troubleshooting before assigning the layout to live billing.
