Dashboard
Where the business is today, and what is waiting.
Revenue and profit
12 monthsRevenue by month with profit tracking underneath it. Both come from the ledger, not from a separate reporting copy.
Signals
Rules, not a modelWaiting on somebody
12 pendingToday across the plant
Cash position
60 days, then 30 projectedCurrent balance $1.24M, projected $1.31M by 14 September. The dip is the 1 September payroll at $96,000, which is a known date rather than a forecast.
Revenue by channel
This quarterOrder funnel
This quarterLine utilisation
1 bottleneckStock health by category and site
Lower is riskier| Rotterdam | Porto | Malmo | Bristol | |
|---|---|---|---|---|
| Desks | 86 | 42 | 71 | 64 |
| Seating | 58 | 24 | 63 | 78 |
| Storage | 91 | 67 | 82 | 55 |
| Lighting | 73 | 81 | 38 | 69 |
| Tables | 64 | 52 | 76 | 31 |
| Acoustics | 88 | 74 | 69 | 83 |
| Accessories | 95 | 88 | 91 | 72 |
Seating at Porto and tables at Bristol are the two cells that would fail a large order tomorrow. Everything else has cover somewhere in the network.
Deliveries this week
63 bookedDelayed orders
11 lateDue today
6 dueFinance snapshot
Recent activity
Team output this week
79% averageOrders
Sales, purchase, work orders, returns and shipments.
Sales orders
312 total| Order | Customer | Channel | Value | Ordered | Promised | Rep | Status |
|---|---|---|---|---|---|---|---|
| SO-2026-1548 | Marigold Assisted Living | Dealer network | $15,050 | 15 Aug | 07 Sep | Anna Sundqvist | Draft |
| SO-2026-1661 | Charthouse Analytics | Wholesale | $81,400 | 18 Aug | 30 Sep | Milo Kraus | Confirmed |
| SO-2026-1673 | Granite Peak Outfitters | Direct | $34,200 | 21 Aug | 18 Sep | Clara Bergh | In production |
| SO-2026-1688 | Harborline Logistics | Wholesale | $62,900 | 24 Aug | 12 Sep | Milo Kraus | Picking |
| SO-2026-1701 | Stonegate Country Club | Direct | $28,400 | 27 Aug | 09 Sep | Anna Sundqvist | On hold |
| SO-2026-1712 | Alta Vista Hotels | Dealer network | $44,800 | 30 Aug | 22 Sep | Clara Bergh | Confirmed |
CRM
Pipeline, deals, accounts and the activity behind them.
Pipeline
38 open deals| Deal | Account | Value | Probability | Owner | Source | Expected close | Last activity |
|---|---|---|---|---|---|---|---|
| Charthouse reception refit | Charthouse Analytics | $405,000 | 15% | Milo Kraus | Inbound | 26 Sep | 12 days ago |
| Granite acoustics retrofit | Granite Peak Outfitters | $348,000 | 35% | Clara Bergh | Outbound | 20 Oct | 5 days ago |
| Stonegate mezzanine fit-out | Stonegate Country Club | $330,000 | 15% | Anna Sundqvist | Trade show | 23 Oct | 8 days ago |
| Harborline training centre | Harborline Logistics | $297,000 | 60% | Milo Kraus | Referral | 05 Oct | Yesterday |
| Alta Vista lobby programme | Alta Vista Hotels | $268,000 | 75% | Clara Bergh | Existing customer | 18 Sep | Today |
Production
Work orders, scheduling and capacity across the lines.
Queued · 16
Blocked · 5
5 blockedLine utilisation
Last 7 daysA blocked job names what is blocking it and what would unblock it. "Waiting on material" with no purchase order reference is not a status, it is a shrug.
Inventory
Stock, reservations, incoming and value across warehouses.
Products
156 SKUs| Product | SKU | Category | Warehouse | Class | On hand | Reserved | Incoming | Value |
|---|---|---|---|---|---|---|---|---|
| Nomad compact desk | DES-1000 | Desks | Bristol hub | B | 175 | 15 | - | $40,075 |
| Drift task chair, slate | SEA-2140 | Seating | Rotterdam plant | A | 61 | 54 | 240 | $21,350 |
| Aspen desk, 60 inch | DES-1180 | Desks | Rotterdam plant | A | 38 | 31 | 150 | $18,240 |
| Dock monitor arm | ACC-3320 | Accessories | Porto distribution | A | 92 | 84 | 400 | $8,280 |
| Hush panel, natural | ACO-4410 | Acoustics | Malmo hub | B | 144 | 118 | - | $26,640 |
| Forum training table | TAB-2610 | Tables | Rotterdam plant | C | 22 | 4 | - | $14,300 |
Procurement
Purchase orders, suppliers, quotes and receiving.
Purchase orders
84 total| Purchase order | Supplier | Lines | Value | Raised | Expected | Lead time | Status |
|---|---|---|---|---|---|---|---|
| PO-2026-0924 | Brightwire Electrical | 6 | $12,750 | 18 Aug | 08 Sep | 21 days | Pending approval |
| PO-2026-0918 | Apex Foam Systems | 3 | $28,400 | 14 Aug | 05 Sep | 22 days | Sent |
| PO-2026-0911 | Nordica Veneers | 11 | $61,200 | 11 Aug | 02 Sep | 22 days | Receiving |
| PO-2026-0902 | Crown Extrusions | 4 | $18,900 | 05 Aug | 26 Aug | 21 days | Received |
| PO-2026-0894 | Clearedge Glass | 2 | $9,400 | 01 Aug | 29 Aug | 28 days | Closed |
Projects
Budgets, tasks and what has actually been spent.
Projects
12 projects| Project | Client | Reference | Tasks | Budget | Spent | Due | Status |
|---|---|---|---|---|---|---|---|
| Vertex coworking, Rotterdam fit-out | Vertex Coworking | PRJ-101 | 3 of 50 | $225,000 | $12,300 | 10 Oct | Planning |
| Alta Vista lobby programme | Alta Vista Hotels | PRJ-102 | 51 of 69 | $547,000 | $352,100 | 02 Nov | Active |
| Monarch senior living, phase 2 | Monarch Living | PRJ-103 | 38 of 44 | $412,000 | $388,600 | 18 Sep | At risk |
| Harborline training centre | Harborline Logistics | PRJ-104 | 12 of 61 | $297,000 | $41,900 | 15 Dec | Active |
Finance
Cash, receivables, payables and margin.
Revenue against cost
12 monthsReceivables ageing
$3.38M outstandingSixty-six invoices are overdue. The over-90 column is what actually turns into a write-off.
Invoices
| Invoice | Customer | Amount | Issued | Due | Age | Status |
|---|---|---|---|---|---|---|
| INV-2026-4123 | Ironwood Breweries | $3,850 | 02 Aug | 01 Sep | 1 day | Disputed |
| INV-2026-4098 | Alta Vista Hotels | $88,400 | 28 Jul | 27 Aug | 6 days | Overdue |
| INV-2026-4061 | Harborline Logistics | $142,000 | 18 Jul | 17 Aug | 16 days | Overdue |
| INV-2026-4012 | Charthouse Analytics | $61,900 | 05 Jul | 04 Aug | 29 days | Overdue |
| INV-2026-4188 | Granite Peak Outfitters | $34,200 | 29 Aug | 28 Sep | - | Current |
Approvals
What is waiting on a decision, and the rules that routed it.
Waiting, sorted by remaining SLA
12 pendingWorkflows
Reports
Executive, sales, inventory, financial and supplier packs.
Revenue and profit
12 monthsChannel mix
This quarter, $1.93MScheduled packs
People
Directory, attendance, leave, payroll and utilisation.
Directory
52 people| Employee | Role | Department | Location | Utilisation | Tenure | Status |
|---|---|---|---|---|---|---|
| Ines Duarte | Operations director | Operations | Rotterdam | 92% | 4.6 years | Active |
| Liam Iverson | Financial controller | Finance | Rotterdam | 88% | 3.1 years | Active |
| Milo Kraus | Senior account manager | Sales | Porto | 81% | 2.4 years | Active |
| Tessa Kuhn | Procurement lead | Operations | Rotterdam | 79% | 5.2 years | Active |
| Clara Bergh | Account manager | Sales | Malmo | 74% | 1.8 years | On leave |
| Devon Keller | Production planner | Operations | Rotterdam | - | 6.9 years | On leave |
Automation
Rules that run on their own, with their steps in the open.
Automations
| Automation | Trigger | Steps | Runs | Success | Last run | State |
|---|---|---|---|---|---|---|
| Low stock to draft purchase order | Stock below reorder | Velocity check, approval over $10k, draft PO, notify | 1,284 | 99.4% | 12 minutes ago | Active |
| Overdue invoice reminders | Invoice 14 days overdue | Wait 3 days, three emails, escalate to receivables | 986 | 98.8% | 2 hours ago | Active |
| Order to work order | Sales order confirmed | Check stock, raise work order, schedule line | 2,140 | 99.7% | 6 minutes ago | Active |
| Supplier lead-time drift | Receipt later than quoted by 20% | Recalculate reorder point, notify procurement | 84 | 100% | Yesterday | Active |
| Quote follow-up | Quote sent, no activity for 7 days | Notify the owner | 312 | 97.1% | 4 hours ago | Paused |
Integrations
Accounting, commerce, carrier, directory and banking.
Finance and commerce
Operations
Sync history
| When | Integration | Direction | Records | Latency | Result |
|---|---|---|---|---|---|
| 12 minutes ago | Accounting | Outbound | 184 | 1.2s | Success |
| 42 minutes ago | Online store | Inbound | 312 | 6.8s | Rate limited |
| 2 hours ago | Carrier | Both ways | 96 | 0.9s | Success |
| 6 hours ago | Banking | Inbound | 412 | 2.1s | Success |
Settings
Company, roles, custom fields, security and the audit log.
Company
Roles and permissions
Custom fields
Security
Audit log
Append only| When | Who | Area | What changed |
|---|---|---|---|
| Today | Nadia Kraus | Approvals | Discount threshold moved from 15% to 10% |
| Yesterday | Liam Iverson | Finance | Two unmapped accounts assigned to cost of sales |
| 3 days ago | Nadia Kraus | Users | Clara Bergh moved from Finance to Operations |
| Last week | Nadia Kraus | Automation | Quote follow-up paused pending a copy rewrite |
Branding
Users
Workflow rules
1 pausedNotifications
Billing
Integrations at a glance
PO-30412
One approval, its history and what it commits.
Third order to the same supplier this week, each just under the $10,000 threshold that would need a second approver. Together they are $29,400 and one commitment.
Related orders
$29,400 total| Order | Raised | Supplier | Value | Approvers | Status |
|---|---|---|---|---|---|
| PO-30412 | 6 Sep | Marchetti Supplies | $9,800 | 1 | Awaiting |
| PO-30398 | 4 Sep | Marchetti Supplies | $9,900 | 1 | Approved |
| PO-30386 | 2 Sep | Marchetti Supplies | $9,700 | 1 | Approved |
Why this is flagged
The supplier
Order to cash
One order followed through every module it touches.
Order to cash
11 days at one step| Step | Module | Date | Days | By | Status |
|---|---|---|---|---|---|
| Order taken | CRM | 12 Aug | - | Ines Lehmann | Done |
| Credit checked | Finance | 12 Aug | 0 | Automatic | Done |
| Stock allocated | Inventory | 13 Aug | 1 | Automatic | Done |
| Picked and packed | Operations | 14 Aug | 1 | Warehouse | Done |
| Despatched | Operations | 25 Aug | 11 | Waiting for a vehicle | Done |
| Invoiced | Finance | 26 Aug | 1 | Automatic | Done |
| Paid | Finance | - | 11 overdue | Customer | Overdue |
What each module reported
Where this happens
Reports: activity
Volume and throughput, by owner and by module.
By module
This quarter| Module | Open | Closed | Median days | Overdue |
|---|---|---|---|---|
| Inventory | 512 | 1.0 | 0.2 | 2 |
| Finance | 1,240 | 1.4 | 0.4 | 9 |
| Operations | 1,840 | 1.2 | 6.1 | 184 |
| Procurement | 684 | 2.1 | 1.8 | 41 |
| Projects | 284 | 3.4 | 2.2 | 14 |
Volume over time
12 weeksOrders per week. Volume is comfortably within capacity; the elapsed time is spent in handovers between modules rather than inside any of them.
By module
This quarterReports: performance
Against target, with the gap named.
Against target by module
100 is the targetNo module is slow. Eleven of the fourteen median days sit in the gaps between them, and every module reports a good number on its own dashboard.
What moved
Rule-derivedReports: exceptions
What breached, what is late and what nobody owns.
Exceptions
184 open| Item | Where | Volume | Problem | Owner |
|---|---|---|---|---|
| 184 orders | Packed, awaiting transport | 6 d median | No module owns the gap | Nobody |
| PO-30412 and 2 others | Procurement | $29,400 | Split under the approval threshold | Operations |
| Marchetti Supplies | Procurement | $284,000 a year | No contract, never benchmarked | Procurement |
| 62 orders | Approved, awaiting stock | 4 d median | Allocation runs nightly | Inventory |
| 41 orders | Delivered, not invoiced | 3 d median | Manual trigger | Finance |
Every module in this business reports a good number. The order that took fourteen days spent eleven of them on a loading bay, and no module dashboard shows that at all.
People
Who has an account, and what they own.
People
188 accounts| Name | Role | Company | Last active | Status |
|---|---|---|---|---|
| Halvard Ness | Administrator | Group | 8 minutes ago | Active |
| Jutta Reinhardt | Operations director | Operations | 24 minutes ago | Active |
| Sunniva Aas | Finance controller | Finance | 1 hour ago | Active |
| Kian Boyle | Buyer | Procurement | 2 hours ago | Active |
| Ines Lehmann | Sales | Commercial | 40 minutes ago | Active |
| Katarzyna Nowak | Planner | Operations | 3 hours ago | Active |
Roles
What each role is scoped to and what it may approve.
Recent changes
Why custom roles exist
- Approval thresholds apply to the week total per supplier, not to one order
- A manager approves inside their own module and sees every module
- Nobody approves a purchase they raised, at any value
- Handover delays belong to the receiving module, so somebody owns each gap
Roles
5 roles| Role | Type | People | Scope | Can approve to | Status |
|---|---|---|---|---|---|
| Administrator | Built in | 2 | Everything | No limit | Active |
| Director | Built in | 4 | All modules | Approves any value | Active |
| Manager | Built in | 18 | Own module | Approves to $50,000 | Active |
| Staff | Built in | 148 | Own module, own work | Raises to $10,000 | Active |
| Read only | Custom | 16 | All modules, read | - | Active |
Permissions
Every capability against every role, as enforced.
What each role can do
10 capabilities| Capability | Administrator | Director | Manager | Staff | Read only |
|---|---|---|---|---|---|
| See every module | Yes | Yes | Yes | Own | Yes |
| Raise a purchase order | Yes | Yes | Yes | To $10k | No |
| Approve to $50,000 | Yes | Yes | Own module | No | No |
| Approve above $50,000 | Yes | Yes | No | No | No |
| Approve own request | No | No | No | No | No |
| Override an aggregated threshold | Yes | With a reason | No | No | No |
| Move an order between modules | Yes | Yes | Yes | Yes | No |
| See cross-module timings | Yes | Yes | Yes | Own | Yes |
| Change approval thresholds | Yes | No | No | No | No |
| Read the audit log | Yes | Yes | Own module | Own | Yes |
Approval thresholds apply to the week total for a supplier rather than to a single order. Three orders of $9,800 now require what one order of $29,400 requires, which is what the threshold was always for.
Notifications
What the system sends, to whom, and when.
What is sent
Quiet hours
Notification rules are yours to set. What is here is a starting point drawn from how the queue actually behaves.
Import and export
Bulk load and extract, with per-row validation.
Import
Validated before anything is written. A file with one bad row imports the rest and tells you which line failed and why.
Export
Recent imports and exports
Last 30 days| When | What | Rows | Result | By |
|---|---|---|---|---|
| 1 Sep 06:00 | Import | 4,120 | Complete | Halvard Ness |
| 1 Sep 18:00 | Export | 18,400 | Complete | Sunniva Aas |
| 14 Aug 08:00 | Import | 412 | Complete | Kian Boyle |