Monthly Billing
Expand a month to review charges. Bulk-create or sync invoices per month.
| Property | dkPlus Customer | Locks | Pricing | Subtotal | Invoice help_outline |
|---|---|---|---|---|---|
|
{{ $row['property_name'] }}
{{ $row['api'] }}
|
{{-- dkPlus customer --}}
@if($propertyEmail?->dkplus_customer_id)
{{ $propertyEmail->dkplus_customer_name ?: '—' }}
{{ $propertyEmail->dkplus_customer_id }}
Edit |
{{-- Locks --}}
{{ $row['billable_unique_lock_count'] }} | {{-- Pricing --}}
{{ $row['pricing_rule_label'] }}
{{ $row['pricing_badge'] }}
{{ $formatIsk($row['unit_price']) }}/u
Formula
{{ $row['calculation_formula'] }}
Qty: {{ $row['input_quantity'] }} {{ $row['input_quantity_label'] }} |
{{-- Subtotal --}}
{{ $formatIsk($row['subtotal']) }} | {{-- Invoice actions --}}
@if($invoiceRecord?->dkplus_invoice_id)
ID: {{ $invoiceRecord->dkplus_invoice_id }}
@endif
@if($invoiceStatus)
{{ strtoupper($invoiceStatus) }}
@endif
@if($invoiceRecord?->synced_at)
access_time
{{ $invoiceRecord->synced_at->diffForHumans() }}
@endif
@if(!$invoiceRecord?->dkplus_invoice_id)
@else
{{-- Compact icon-button row: Sync | PDF | Email --}}
@endif
|
| API subtotal — {{ $apiGroup['api'] }} | {{ $formatIsk($apiGroup['api_total']) }} | ||||
| Month grand total | {{ $formatIsk($monthGroup['month_total']) }} | ||||
account_balance_walletCommission breakdown
{{ $formatIsk($monthGroup['month_total']) }}
{{ $formatIsk($monthGroup['godo_commission']) }}
{{ $formatIsk($monthGroup['sturla_bonus']) }}
{{ $formatIsk($monthGroup['brynjar_bonus']) }}
{{ $formatIsk($monthGroup['net_revenue']) }}
No billing data for the selected filters.
@endforelse{{ $prop['property_name'] }} {{ strtoupper($prop['api'] ?: 'unknown') }} @if(!$hasCustomer) link_off No customer @endif {{-- Selection-summary chip — visible when ≥1 month is checked --}} 0 selected · 0 ISK
{{-- Mini month strip — one chip per month, status-coloured. Visible even when card is collapsed. --}}Edit
| Property | API | Status | dkPlus customer |
|---|---|---|---|
|
{{ $property->PropertyName }}
{{ $property->PropertyID }}
|
{{ strtoupper($property->API ?: 'unknown') }} | @if($hasCustomer) Linked @else Missing @endif |
Gross Revenue
{{ $formatIsk($billing['grand_total']) }}
All subscription billing
Godo Commission
{{ $formatIsk($billing['total_godo_commission']) }}
100 ISK × {{ $billing['total_godo_lock_count'] }} Godo lock(s) × month
Sturla Bonus
{{ $formatIsk($billing['total_sturla_bonus']) }}
10% of gross revenue
Brynjar Bonus
{{ $formatIsk($billing['total_brynjar_bonus']) }}
10% of gross revenue
Net to Company
{{ $formatIsk($billing['total_net_revenue']) }}
After commissions & bonuses
account_balance_wallet Monthly Commission Breakdown
Godo: 100 ISK/lock | Sturla & Brynjar: 10% each| Month | Gross Revenue | Godo Commission | Sturla (10%) | Brynjar (10%) | Net to Company |
|---|---|---|---|---|---|
| {{ $mg['month'] }} | {{ $formatIsk($mg['month_total']) }} | {{ $formatIsk($mg['godo_commission']) }} @if($mg['godo_lock_count'] > 0) {{ $mg['godo_lock_count'] }} Godo lock(s) @elseif($mg['godo_commission'] === 0) no Godo properties @endif | {{ $formatIsk($mg['sturla_bonus']) }} | {{ $formatIsk($mg['brynjar_bonus']) }} | {{ $formatIsk($mg['net_revenue']) }} |
| Grand Total | {{ $formatIsk($billing['grand_total']) }} | {{ $formatIsk($billing['total_godo_commission']) }} @if($billing['total_godo_lock_count'] > 0) {{ $billing['total_godo_lock_count'] }} Godo lock(s) @endif | {{ $formatIsk($billing['total_sturla_bonus']) }} | {{ $formatIsk($billing['total_brynjar_bonus']) }} | {{ $formatIsk($billing['total_net_revenue']) }} |
Grand total billed
{{ $formatIsk($billing['grand_total']) }}
Latest month total
{{ $formatIsk($latestMonthTotal) }}
Average monthly total
{{ $formatIsk($averageMonthTotal) }}
Active filter groups
{{ $activeFilterCount }}
Latest unique locks
{{ $latestUniqueLocks }}
New locks in range
{{ $totalNewLocksInRange }}
New properties in range
{{ $totalNewPropertiesInRange }}
Months tracked
{{ $monthsTracked }}
Growth Health
How fast the selected period expanded.
{{ $netGrowthRate }}%
Net lock velocityNew locks in range vs. latest unique lock base.
Property Activity
Average additions per tracked month.
{{ $propertyCoverageRate }}
Properties / monthMonthly onboarding consistency in current filters.
Billing Signal
Snapshot of active invoice periods.
{{ $billableMonths }}
Billable monthsVerify billing continuity across the selected range.
Monthly Lock Growth
Unique locks and property additions per month.
| Month | Unique Locks | New Locks | New Properties |
|---|---|---|---|
| {{ $statRow['month'] }} | {{ $statRow['count'] }} | {{ $statRow['new_locks'] }} | {{ $statRow['new_properties'] }} |
| No rows for selected filters. | |||
Monthly Property Growth
Property additions per month.
| Month | Property Added | Locks Added |
|---|---|---|
| {{ $propertyRow['month'] }} | {{ strip_tags((string) $propertyRow['name']) }} | {{ $propertyRow['locks'] }} |
| No new properties in the selected range. | ||