Services
A Service represents a type of work that MIDDAG delivers to a customer: hosting management, technical support, infrastructure operations, consulting, custom development, or migration. Services are linked to SVC entitlements and act as containers for service requests -- the individual tasks that make up the work.
Service types
Services are categorized by the nature of the work:
| Type | Description |
|---|---|
| Hosting | Managed platform hosting (Moodle, WordPress) |
| Support | Ongoing technical support and troubleshooting |
| Infrastructure | Server management, backups, monitoring |
| Consulting | Advisory, architecture review, strategy |
| Development | Custom plugin development, integrations |
| Mobile apps | Mobile application development |
| Migration | Platform migration and data transfer |
| Upgrade | Major version upgrades |
| Project management | Coordination and delivery oversight |
The service type is stored as a category attribute on the service record and determines how the service is displayed and tracked.
Two lifecycle modes
Every service operates in one of two modes:
| Mode | What it means |
|---|---|
| Ongoing | A continuous service with no defined end date. Examples: managed hosting, monthly support plans. The service stays active indefinitely and renews with its parent entitlement. |
| Project | A time-bounded engagement with a start date, estimated end date, and defined deliverables. Examples: custom development, migration projects. The service moves through a state machine from proposal to closure. |
Project mode states
| State | What it means |
|---|---|
| Proposal | Service proposed, awaiting client approval. |
| Approved | Client approved, ready to begin. |
| In progress | Active work underway. |
| On hold | Paused due to external dependency or client request. |
| Delivered | Work completed, awaiting client acceptance. |
| Closed | Client accepted delivery. Terminal state. |
| Cancelled | Cancelled at any stage. Terminal state. |
The UST billing model
Services use the UST (Technical Service Unit) model to standardize billing. Instead of billing by the hour (where the customer absorbs inefficiency), each type of work has a fixed credit cost:
- "Plugin Update" always costs 4 credits, regardless of actual hours.
- "API Integration" always costs 10 credits.
- The customer knows the cost upfront; the team delivers without time pressure.
Credits are consumed from the customer's credit balance when service requests are completed. If the balance is zero, work continues and the excess is billed separately.
Complexity multipliers
Each service request has a complexity level that multiplies the base credit cost:
| Complexity | Multiplier | Examples |
|---|---|---|
| Low | 1x | Configuration, basic support. No code changes. |
| Medium | 1.5x | Specialized knowledge. Simple code, basic database work. |
| High | 2x | Custom development, integrations, architectural changes. |
The service catalog
MIDDAG maintains a catalog of standardized services with pre-defined credit costs and complexity levels. The catalog is visible to customers in the portal (read-only) and can be browsed when requesting new work. Admins can add, edit, or deactivate catalog entries. Catalog entries are never deleted -- deactivated entries remain linked to existing service requests.
Auto-creation from entitlements
When a SVC entitlement is provisioned (typically after a quote is accepted and paid), the system automatically creates a Service record with status proposal. The admin reviews it and transitions to approved when ready to begin.
Jira as complement
Jira handles day-to-day project management: tasks, sprints, worklogs, and SLA rule enforcement. MIDDAG Account handles the business side: billing, credit tracking, customer portal, and the service catalog. The two systems communicate via bidirectional webhooks. MIDDAG Account is the source of truth for financial data; Jira is the source of truth for operational workflow.
What admins see
In the WordPress admin, the service list shows:
- Service title and type
- Organization
- Entitlement code (SVC-xxx)
- Lifecycle mode (ongoing or project)
- Status
- Jira project key (if linked)
Clicking a service opens its detail view with linked service requests, credit consumption summary, contract reference, and project timeline (for project-mode services).
Related pages
- Entitlements -- the SVC entitlement that owns the service
- Service Requests -- the individual tasks within a service
- Credit Balance -- UST/credit tracking for service billing
- Contracts -- the agreement governing the service
- Environments -- managed installations that services support