·

Job Costing Vertical SaaS on Acumatica

Job Costing Vertical SaaS on Acumatica — a complete, field-tested reference by John Kihiu.

John Kihiu12 min read

Job Costing Vertical SaaS on Acumatica is the pattern that defines the next decade of enterprise software. The horizontal platform (Acumatica, NetSuite, Dynamics 365, Salesforce) gives you the foundation; the vertical layer is the differentiation. This guide is the field-tested pattern for construction on Acumatica — the architecture, the multi-tenant data model, the go-to-market, and the operational patterns that separate a real product from a one-off customisation.

Why vertical SaaS on a horizontal platform

The horizontal-vs-vertical SaaS debate is over. The answer is: build vertical on top of horizontal. The horizontal platform handles the unsexy work (GL posting, user management, tax calculation, security, audit, multi-currency, infrastructure) and gives you ten years of compliance work for free. The vertical layer adds the industry-specific workflow, the data model, the UI, and the integrations that win customers in the vertical.

Three reasons this works:

  1. Time to value. A vertical built on Acumatica ships in 6 months. A from-scratch ERP vertical takes 3 years.
  2. Compliance moat. The horizontal platform's compliance posture (SOX, GDPR, ISO 27001) is inherited. The ISV adds the vertical-specific compliance (HIPAA for healthcare, PCI for payments).
  3. Customer trust. Customers trust Acumatica's GL more than they trust a startup’s. Building on a known platform is a sales asset.
The horizontal-vs-vertical decision

If you are a 5-person team building a healthcare vertical, do not build an ERP. Build on an ERP. The same is true for manufacturing, distribution, construction, professional services, retail, hospitality. The horizontal platform is the foundation; the vertical is the product.

The architecture

The architecture has three layers: the horizontal platform, the vertical extension layer, and the customer-facing UI. Each layer has its own deployment, its own team, its own release cadence.

LayerWhat lives hereDeploymentRelease cadence
Horizontal platformERP core, GL, AP, AR, security, auditPer-tenant (Acumatica cloud or self-hosted)2x per year (R1, R2)
Vertical extensionIndustry DACs, screens, workflows, reports, integrationsAcumatica customization packageMonthly, with the platform upgrade
Customer-facing UIModern UI extensions, customer portal, mobile appDeployed with the customizationWeekly, hot-fix capable

Multi-tenant data model

Every vertical customization must be multi-tenant from day one. The data model decisions that determine multi-tenant safety:

C# · MULTI-TENANT DAC EXTENSION
[PXTable(IsOptional = true)]
public class ProjectExt : PXCacheExtension<PMProject>
{
    [PXDBString(20)]
    [PXUIField(DisplayName = "Vertical Code")]
    public virtual string UsrVerticalCode { get; set; }
    public abstract class usrVerticalCode :
        PX.Data.BQL.BqlString.Field<usrVerticalCode> { }
}

For the broader multi-tenant patterns, see the Acumatica multi-tenant customisation guide.

Feature flags for staged rollout

A vertical customization is a product. Features are added over time, and not every customer wants every feature. The pattern: feature flags per tenant, configurable in the UI.

C# · FEATURE FLAG CHECK
public static class VerticalFeatures
{
    public static bool IsEnabled(PXGraph graph, string featureKey)
    {
        var fs = PXSelect<UsrFeatureFlag,
            Where<UsrFeatureFlag.tenantID, Equal<Required<UsrFeatureFlag.tenantID>>,
                And<UsrFeatureFlag.featureKey, Equal<Required<UsrFeatureFlag.featureKey>>>>
            .Select(graph, AccessInfo.BranchID, featureKey);
        return fs.Any() && fs.First().Enabled == true;
    }
}

// Usage
if (VerticalFeatures.IsEnabled(Base, "advanced-scheduling"))
{
    // run the advanced scheduling logic
}

For the broader feature flag patterns, see the feature flags guide.

Tenant onboarding

Every vertical customer is a new Acumatica tenant. The onboarding flow:

  1. Tenant provisioning. Acumatica SaaS tenant, Acumatica self-hosted, or on-prem.
  2. Customization publish. The vertical package is published to the tenant.
  3. Data migration. The customer's data is migrated to the new tenant (using Acumatica Import Scenarios).
  4. Feature configuration. Feature flags are set per the customer's contract.
  5. User setup. Users are created with the right roles.
  6. Training. The customer is trained on the vertical-specific screens.
The on-prem trap

On-prem tenants are the operational burden you do not see coming. A SaaS tenant is a single deployment; an on-prem tenant is N deployments. If you accept more than 20% of customers as on-prem, your support cost is 3x what you modeled. Push SaaS, hard.

Pricing the vertical

The pricing for a vertical on a horizontal platform is layered:

LayerWhat you charge forTypical range
PlatformAcumatica licences, paid to AcumaticaPer-user, per-month
Vertical subscriptionYour customization, support, updatesPer-user, per-month, 30-50% of platform
ImplementationOne-time setup, data migration, trainingPer-project, $25k-$250k
TotalPer-user, per-month, plus one-time

Go-to-market

The go-to-market for a vertical SaaS on a horizontal platform is partner-led. The horizontal vendor (Acumatica) has the sales team, the marketing channels, the partner network. You bring the vertical expertise and the customer relationships in the vertical. The motions:

Operations at scale

The operational challenges of a vertical at scale:

For the broader operational patterns, see the monitoring guide and the incident response runbook.

Wrapping up

The horizontal platform, the vertical layer, the multi-tenant data model, the feature flags, the onboarding, the pricing, the go-to-market, the operations. Get all eight right and the vertical scales. Skip any one and the product struggles. The discipline is the same as any product, with the Acumatica-specific patterns layered on top.

Wrapping up

That is the working approach I use on Acumatica projects. The same patterns show up whether you are in Nairobi, Johannesburg, Kigali, Lusaka or Harare — and they are the things that keep work moving when an upgrade lands at 6 PM on a Friday. If you are stuck on something specific, reach out or keep reading through the rest of the Acumatica blog.

John Kihiu
John Kihiu
Acumatica ERP Developer · Laravel Engineer

Independent software engineer in Nairobi specialising in Acumatica customisations, Laravel backends, and tax fiscalisation integrations across East and Southern Africa.