Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
314 lines
9.9 KiB
JSON
314 lines
9.9 KiB
JSON
{
|
|
"page": {
|
|
"title": "Reports"
|
|
},
|
|
"actions": {
|
|
"refresh": "Refresh"
|
|
},
|
|
"placeholders": {
|
|
"selectContract": "Select contract..."
|
|
},
|
|
"units": {
|
|
"hoursShort": "hrs",
|
|
"days": "days",
|
|
"percent": "%",
|
|
"dash": "—"
|
|
},
|
|
"reportsPage": {
|
|
"cards": {
|
|
"timeUtilization": {
|
|
"title": "Time Utilization",
|
|
"placeholder": "[Time Utilization Chart Placeholder]"
|
|
},
|
|
"projectProgress": {
|
|
"title": "Project Progress",
|
|
"placeholder": "[Project Progress Chart Placeholder]"
|
|
},
|
|
"revenueByClient": {
|
|
"title": "Revenue by Client",
|
|
"placeholder": "[Revenue by Client Chart Placeholder]"
|
|
},
|
|
"teamPerformance": {
|
|
"title": "Team Performance",
|
|
"placeholder": "[Team Performance Chart Placeholder]"
|
|
}
|
|
},
|
|
"description": "Canned operational reports for the current workspace. More customization will layer onto this catalog later.",
|
|
"categories": {
|
|
"helpdesk": "Help desk",
|
|
"operations": "Operations",
|
|
"billing": "Billing"
|
|
},
|
|
"badges": {
|
|
"planned": "Planned"
|
|
},
|
|
"actions": {
|
|
"viewReport": "View report",
|
|
"openInBilling": "Open in billing",
|
|
"requiresTier": "Requires {{tier}}",
|
|
"comingSoon": "Coming soon"
|
|
},
|
|
"errors": {
|
|
"loadReport": "Failed to load report."
|
|
},
|
|
"empty": {
|
|
"noData": "No data for this report.",
|
|
"noOpenTicketsInRange": "No open tickets in this range.",
|
|
"noDate": "No date",
|
|
"notAvailable": "n/a",
|
|
"noEmailChannels": "No email channels are configured."
|
|
},
|
|
"fallbackTitle": "Report",
|
|
"dateRange": {
|
|
"lastDays": "Last {{count}} days"
|
|
},
|
|
"units": {
|
|
"daysWithCount": "{{count}} days"
|
|
},
|
|
"metrics": {
|
|
"created": "Created",
|
|
"closed": "Closed",
|
|
"openNow": "Open now",
|
|
"awaitingCustomer": "Awaiting customer",
|
|
"awaitingInternal": "Awaiting internal",
|
|
"under2Days": "Under 2 days",
|
|
"days2To7": "2 to 7 days",
|
|
"days8To30": "8 to 30 days",
|
|
"over30Days": "Over 30 days",
|
|
"activeChannels": "Active channels",
|
|
"healthyChannels": "Healthy channels",
|
|
"problemChannels": "Problem channels",
|
|
"emailsProcessed": "Emails processed",
|
|
"ticketsFromEmail": "Tickets from email",
|
|
"failedEmails": "Failed emails",
|
|
"avgProcessingTime": "Avg. processing time",
|
|
"avgTicketCreationTime": "Avg. email-to-ticket time",
|
|
"totalHours": "Total hours",
|
|
"billableHours": "Billable hours",
|
|
"nonBillableHours": "Non-billable hours",
|
|
"billablePercent": "Billable %",
|
|
"timeEntries": "Time entries",
|
|
"activeContracts": "Active contracts",
|
|
"monthlyRecurring": "Monthly recurring",
|
|
"renewalsDue": "Renewals due",
|
|
"bucketUsedHours": "Bucket hours used",
|
|
"bucketOverageHours": "Bucket overage",
|
|
"openAssigned": "Open assigned",
|
|
"activeAssignees": "Active assignees",
|
|
"avgResolutionTime": "Avg. resolution time"
|
|
},
|
|
"sections": {
|
|
"openByStatus": "Open by status",
|
|
"openByPriority": "Open by priority",
|
|
"openByAssignee": "Open by assignee",
|
|
"ageDistribution": "Age distribution",
|
|
"responseOwnership": "Response ownership",
|
|
"oldestOpenTickets": "Oldest open tickets",
|
|
"emailProcessingStatus": "Processing status",
|
|
"emailChannels": "Email channels",
|
|
"timeByUser": "Time by user",
|
|
"billableHoursByService": "Billable hours by service",
|
|
"entriesByWorkType": "Entries by work type",
|
|
"contractRevenue": "Contract revenue",
|
|
"upcomingRenewals": "Upcoming renewals",
|
|
"bucketUsage": "Bucket usage",
|
|
"performanceByAssignee": "Performance by assignee",
|
|
"closedByAssignee": "Closed by assignee"
|
|
},
|
|
"reportCatalog": {
|
|
"ticketWorkload": {
|
|
"title": "Ticket Workload",
|
|
"description": "Created, closed, and currently open tickets grouped by status, priority, and assignee."
|
|
},
|
|
"ticketAging": {
|
|
"title": "Ticket Aging",
|
|
"description": "Open-ticket age buckets, response ownership, and oldest active tickets."
|
|
},
|
|
"emailChannelHealth": {
|
|
"title": "Email Channel Health",
|
|
"description": "Email intake volume, ticket creation speed, and mailbox connection health."
|
|
},
|
|
"timeUtilization": {
|
|
"title": "Time Utilization",
|
|
"description": "Tracked work by person and service area for PSA operations."
|
|
},
|
|
"teamPerformance": {
|
|
"title": "Team Performance",
|
|
"description": "Team-level throughput and response ownership for multi-user workspaces."
|
|
},
|
|
"contractReports": {
|
|
"title": "Contract Reports",
|
|
"description": "Contract revenue, renewals, bucket utilization, and simple profitability."
|
|
}
|
|
},
|
|
"table": {
|
|
"channel": "Channel",
|
|
"status": "Status",
|
|
"processed": "Processed",
|
|
"tickets": "Tickets",
|
|
"avgEmailToTicket": "Avg. email to ticket",
|
|
"assignee": "Assignee",
|
|
"created": "Created",
|
|
"closed": "Closed",
|
|
"open": "Open",
|
|
"avgResolution": "Avg. resolution",
|
|
"user": "User",
|
|
"totalHours": "Total hours",
|
|
"billableHours": "Billable hours",
|
|
"entries": "Entries",
|
|
"ticket": "Ticket",
|
|
"entered": "Entered",
|
|
"age": "Age"
|
|
},
|
|
"statusValues": {
|
|
"connected": "Connected",
|
|
"disconnected": "Disconnected",
|
|
"error": "Error",
|
|
"configuring": "Configuring",
|
|
"unknown": "Unknown",
|
|
"success": "Success",
|
|
"failed": "Failed",
|
|
"partial": "Partial",
|
|
"processing": "Processing"
|
|
}
|
|
},
|
|
"contractReports": {
|
|
"title": "Contract Reports",
|
|
"description": "Analyze contract performance, revenue, and utilization metrics",
|
|
"errors": {
|
|
"loadingTitle": "Error Loading Reports",
|
|
"loadData": "Failed to load report data"
|
|
},
|
|
"summary": {
|
|
"totalMRR": {
|
|
"title": "Total MRR",
|
|
"subtitle": "Monthly Recurring Revenue"
|
|
},
|
|
"ytdRevenue": {
|
|
"title": "YTD Revenue",
|
|
"subtitle": "Year to Date by billed service period"
|
|
},
|
|
"activeContracts": {
|
|
"title": "Active Contracts",
|
|
"subtitle": "Active assignments"
|
|
},
|
|
"renewalDecisions": {
|
|
"title": "Renewal Decisions Due",
|
|
"subtitle": "Decision due dates in the next 90 days"
|
|
}
|
|
},
|
|
"tabs": {
|
|
"revenue": "Contract Revenue",
|
|
"expiration": "Expiration",
|
|
"bucketUsage": "Bucket Hours",
|
|
"profitability": "Profitability"
|
|
},
|
|
"sections": {
|
|
"revenue": {
|
|
"title": "Contract Revenue Report",
|
|
"description": "Overview of monthly recurring revenue and year-to-date billed service periods by contract.",
|
|
"empty": "No contract revenue data available"
|
|
},
|
|
"expiration": {
|
|
"title": "Contract Expiration and Renewal Decisions",
|
|
"description": "Track upcoming contract expirations and renewal decision due dates.",
|
|
"empty": "No upcoming contract expirations or renewal decisions in the near term"
|
|
},
|
|
"bucketUsage": {
|
|
"title": "Bucket Hours Utilization",
|
|
"description": "Monitor bucket hours usage and identify overage situations",
|
|
"empty": "No bucket-based contracts found"
|
|
},
|
|
"profitability": {
|
|
"title": "Simple Profitability Report",
|
|
"description": "Basic profit margins and revenue vs. cost analysis by contract",
|
|
"empty": "No profitability data available"
|
|
}
|
|
},
|
|
"table": {
|
|
"contract": "Contract",
|
|
"client": "Client",
|
|
"monthlyRecurring": "Monthly Recurring",
|
|
"totalBilledYtd": "Total Billed (YTD)",
|
|
"status": "Status",
|
|
"endDate": "End Date",
|
|
"daysUntilExpiration": "Days Until Expiration",
|
|
"monthlyValue": "Monthly Value",
|
|
"autoRenew": "Auto-Renew",
|
|
"totalHours": "Total Hours",
|
|
"usedHours": "Used Hours",
|
|
"remaining": "Remaining",
|
|
"utilization": "Utilization",
|
|
"overage": "Overage",
|
|
"revenueYtd": "Revenue (YTD)",
|
|
"costYtd": "Cost (YTD)",
|
|
"profit": "Profit",
|
|
"margin": "Margin"
|
|
},
|
|
"statusValues": {
|
|
"active": "Active",
|
|
"upcoming": "Upcoming",
|
|
"yes": "Yes",
|
|
"no": "No"
|
|
}
|
|
},
|
|
"contractPerformance": {
|
|
"title": "Contract Performance Metrics",
|
|
"errors": {
|
|
"loadData": "Failed to load contract data"
|
|
},
|
|
"metrics": {
|
|
"totalClients": "Total Clients",
|
|
"activeClients": "Active Clients",
|
|
"totalPlans": "Total Plans",
|
|
"averagePlansPerClient": "Avg. Plans Per Client",
|
|
"totalRevenue": "Total Revenue",
|
|
"averageRevenuePerClient": "Avg. Revenue Per Client"
|
|
},
|
|
"empty": {
|
|
"selectContract": "Select a contract to view performance metrics",
|
|
"noContracts": "No contracts available"
|
|
},
|
|
"comparison": {
|
|
"title": "Contract Comparison",
|
|
"table": {
|
|
"contract": "Contract",
|
|
"clients": "Clients",
|
|
"plans": "Plans",
|
|
"revenue": "Revenue"
|
|
}
|
|
}
|
|
},
|
|
"contractUsage": {
|
|
"title": "Contract Usage Report",
|
|
"errors": {
|
|
"loadInitialData": "Failed to load initial data",
|
|
"loadUsageData": "Failed to load contract usage data"
|
|
},
|
|
"empty": {
|
|
"noClientsUsingContract": "No clients are using this contract",
|
|
"selectContract": "Select a contract to view usage data"
|
|
},
|
|
"table": {
|
|
"client": "Client",
|
|
"startDate": "Start Date",
|
|
"endDate": "End Date",
|
|
"contractLines": "Contract Lines",
|
|
"totalBilled": "Total Billed",
|
|
"status": "Status"
|
|
},
|
|
"statusValues": {
|
|
"active": "Active",
|
|
"inactive": "Inactive",
|
|
"ongoing": "Ongoing",
|
|
"unknownClient": "Unknown Client"
|
|
},
|
|
"summary": {
|
|
"title": "Summary",
|
|
"totalClients": "Total Clients",
|
|
"activeAssignments": "Active Assignments",
|
|
"totalBilled": "Total Billed"
|
|
}
|
|
}
|
|
}
|