Understanding Markup Profiles in techSHIP [Guide]

Last updated: October 14, 2026

You use Markup Profiles to organize charge adjustments by Carrier, Period, Service Group, Pricing Dimension bracket, and zone, rather than maintaining separate settings for every Service.

This guide explains how your Markup Profile and its dated Periods determine the applicable markup, how the profile interacts with Client Accounts, and which configuration changes can affect processing.

This guide covers the group-and-matrix engine currently labeled Markup Profiles (beta). You access it through Smart Pricing → Markup Profiles (beta), separately from the legacy Markup Profiles menu entry.

Your access depends on your Location’s enabled features, organization configuration, and permissions. Menu visibility and permission to modify configuration are separate checks.

For permission requirements, refer to 📄 techSHIP User Permissions Structure [Information]. To learn about this feature availability, see 📄 techSHIP Specifications Sheet [Information].

Your existing legacy assignments remain unchanged until you explicitly select a different profile.

You configure matrix rows through a Pricing Dimension. Weight is used to provide the examples in this guide.

How Your Configuration Fits Together

You organize service markup through Markup Profile → Period → Service Groups/Surcharges → Pricing-Dimension-by-Zone Matrix. Each Period is a dated pricing configuration inside the parent profile.

Configuration Level

What You Define

Markup Profile

Your Carrier, profile identity, description, and Enabled or Disabled state.

Period

Your required Start Date, optional End Date, derived status, Service Groups, matrices, and Surcharges for that pricing window.

Service Group

Your Service membership, Pricing Dimension, Zone & Area, Markup Type, group-level Minimum Markup ($), and calculation flags within the selected Period.

Matrix Cell

Your Markup %, Markup $, and cell-specific Minimum Markup ($) for one Pricing Dimension bracket and zone.

Surcharge

Your surcharge identification, Surcharge Type, Markup Type, percentage, fixed amount, minimum, and optional effective dates within the selected Period.

You select a Carrier, not an individual Baseline Account record. The Carrier selection remains fixed after profile creation, and you can reuse the parent profile across eligible Client Accounts.

Periods

A Period defines when one set of pricing configuration applies. Its Start Date is required, its End Date is optional, and both boundaries are inclusive calendar dates evaluated in the Location time zone. A blank End Date leaves the Period open-ended.

The Period’s status is derived automatically from its dates as Upcoming, Current, or Ended. A Period does not have its own enable/disable control; Enabled or Disabled belongs to the parent Markup Profile.

  • No overlap: Periods belonging to the same Markup Profile cannot share a calendar day.

  • Gaps are allowed: You can leave uncovered dates between Periods, but processing fails when the applicable date falls in that gap.

  • Open-ended Periods block later Periods: You must assign an End Date before you can schedule a later Period.

  • Automatic transitions are date-based: When one Period ends and another begins, techSHIP resolves the Period covering the applicable date during pricing. You do not switch profiles or reassign the Client Account.

A Period can display Current even when its parent profile is Disabled. The Period status describes its date position; a Disabled Markup Profile does not participate in pricing.

Service Groups and Other

You group Services that need the same calculation settings and matrix structure. Within one Period, you can assign a Service to only one non-default Service Group.

Every Period has its own reserved Other group, whose code is OTHER. Its membership is derived from the Carrier catalogue: Services not assigned to another group in that Period belong to Other. Assigning a Service to an explicit group removes it from that Period’s Other group; removing the assignment returns it to Other.

You cannot rename Other, delete it, or edit its Service membership directly. You can maintain its permitted calculation settings, including Pricing Dimension, Zone & Area, Markup Type, minimum, and calculation flags.

Other is a Service-selection fallback, not a coverage guarantee. After a Service resolves to a group, that group still needs a matching Pricing Dimension bracket and zone. A missing bracket, unresolved zone, or empty cell does not cause another attempt against Other.

Shared Pricing Dimensions and Zones & Areas

You use the same Pricing Dimensions and Zones & Areas resources that support Smart Pricing. Your group references these resources directly; you do not need a Custom Pricing Table to create its markup matrix.

Your Pricing Dimension supplies the matrix rows, while Zone & Area supplies the geographic configuration used to resolve its columns. The selections made during profile creation initialize the first Period’s Other group, and the selections made when you create another Period initialize that Period’s Other group. They do not impose one unchangeable configuration on every subsequent group.

You use Custom Pricing Tables to define rates, and Markup Profiles to calculate adjustments to applicable charges. Sharing dimensions and zones does not make their calculation rules interchangeable. For the broader pricing model, refer to 📄 Mastering Smart Pricing in techSHIP [Guide].

How Your Client Account Uses a Profile

You select the applicable Markup Profile in your Client Account, under Rates & Markups → Markup. The account continues to reference the parent profile; you do not assign an individual Period.

You need to distinguish three independent conditions:

Condition

What It Means

Enabled

Your parent profile is permitted to participate in processing. This does not assign it to an account.

Assigned

Your Client Account selects that parent Markup Profile as its configured source.

Period Coverage

One Period within the assigned profile covers the applicable rating or processing date.

When the applicable date moves from one Period into the next, your Client Account remains assigned to the same Markup Profile. techSHIP automatically resolves the Period covering that date.

You select one profile from one generation: the account does not combine legacy and group-and-matrix profiles, and it does not automatically fall back from one generation to the other.

Creating another profile or another Period does not change an existing account assignment. Switching between legacy and group-and-matrix profile generations remains manual, and switching back requires you to reselect the previous profile; the previous selection is not remembered.

Your Markup Profile picker lists eligible legacy profiles first and profiles from the group-and-matrix engine second, alphabetically within each group. You see a divider only when both groups contain results. Options display profile names only, so the closed field does not identify the selected generation.

Rate Mode and Accessorial Mode

You use Rate Mode and Accessorial Mode to determine which parts of the profile participate in the calculation.

When you select Profile as the Rate Mode, Markup Profile is the only available Accessorial Mode.

Rate Mode

Accessorial Mode

How Your Configuration Is Used

Profile

Markup Profile

Your profile supplies service markup and surcharge markup.

Smart Pricing Rates

Markup Profile

Your Custom Pricing Table supplies the service rates; your profile supplies surcharge markup only.

In the surcharge-only combination, the service-markup matrix is not consulted, and service markup from the profile is zero. Do not troubleshoot a surcharge-only calculation by assuming that a Pricing Dimension bracket or matrix value was selected.

You must also distinguish these account settings from the matrix’s Markup Mode selector. Rate Mode determines the account’s pricing source; Markup Mode determines which matrix measure you view or edit.

How the Service Markup Is Resolved

When your selected account configuration requires service markup, the engine follows this sequence:

Markup Profile → Applicable Period → Service Group → Pricing Dimension Value → Bracket → Resolved Origin and Destination → Zone → Matrix Cell → Calculation

You receive the result associated with the first applicable stopping condition; the engine does not bypass an earlier failure to try a later step.

Profile and Period Coverage

Your assigned Markup Profile must exist and be Enabled. techSHIP then selects the Period whose inclusive date range covers the applicable date in the Location time zone.

For rating, you use the current date. For processing, you use the order’s processed date. When a matching Period exists, only that Period’s Service Groups, markup matrix values, and Surcharges participate in the calculation.

When no Period covers the applicable date, processing fails instead of silently continuing without the beta markup.

A scheduling gap is therefore operationally significant. Gaps are valid configuration, but an affected order cannot use the Markup Profile until a Period covers its applicable date.

Pricing Dimension Matching

You match the value evaluated for the group’s Pricing Dimension to a configured bracket using Minimum Value ≤ Maximum.

For Weight, you match the bracket using the total actual weight across all shipments in the order, normalized to the Pricing Dimension’s units. You do not select a separate bracket for each shipment, and you do not apply dimensional weight or a dimensional factor.

For example, with a Weight dimension, shipments weighing 8 LB and 7 LB produce a total of 15 LB, so you select the bracket covering 15 LB.

If no Pricing Dimension bracket covers the evaluated value, your service-markup calculation fails. This differs from a matched but completely empty matrix cell, which contributes no markup.

For bracket setup, boundary rules, and continuous coverage, refer to 📄 How to Configure Pricing Dimensions in techSHIP [Step-by-Step Guide].

Resolved Addresses and Zone Selection

You calculate the zone from the resolved Ship From and Ship To addresses, not simply the raw address fields on the order.

Your origin-resolution order is:

Order Ship From → Client Sender Override → Client Account Induction Point → Carrier Account Address

You use the same resolved sender-address source that Smart Pricing consumes. An absent order-level Ship From block therefore does not automatically mean the origin is unavailable.

For User defined regions, you resolve the origin and destination Rate Areas using the configured Postal, Country, or Province basis, then find the zone for that pair. Postal matching prioritizes Exact → Prefix → Range; among competing prefixes, the longest applicable prefix wins. Postal-code whitespace is removed before matching.

For System regions, you use preloaded Carrier zone mappings rather than defining those mappings yourself. USPS is a supported example of a System configuration.

USPS-specific example: With USPS System zones, you check five-digit exception ranges before falling back to three-digit-prefix mappings. Postal validation applies to eligible US/CA addresses carrying postal codes, and only after the profile, Period, group, and bracket have resolved. An invalid postal code or unavailable validator fails that calculation rather than allowing a guessed zone. Do not assume these USPS-specific lookup and validation rules apply to every System configuration.

For the shared geographic resources, refer to 📄 How to Configure Zones & Areas in techSHIP [Step-by-Step Guide].

Matched Matrix Cell

After resolving the bracket and zone, you use the cell belonging to that Service Group, Dimension Item, and zone.

You can view its three measures together through All (readonly) or edit one measure through Markup %, Markup $, or Minimum Markup ($). These modes expose the same stored configuration; selecting one mode does not deactivate the other measures.

How Markups Are Calculated

Markup Type

You select Markup Type on the Service Group. It determines how the applicable charges and matched cell values are used.

Markup Type

Calculation

Markup

You calculate the negotiated charge multiplied by the percentage, divided by 100, then add the fixed amount and apply the applicable minimum.

Published rate discount

You calculate the published charge minus the negotiated charge, percentage discount portion, and fixed amount, then apply the applicable minimum.

Published base rate discount

You use the equivalent published-rate-discount calculation on the base charges.

For the default Markup type:

Calculated Markup = Negotiated Charge × Markup % ÷ 100 + Markup $

Your applicable Minimum Markup is a floor on that adjustment—not a minimum final shipping charge. The published-rate discount types also require their corresponding published-rate information.

Tax Inclusion and Missing Carrier Charges

With Include Tax Into Fee Markup Calculation selected, your default Markup calculation uses the negotiated charge including tax. Without it, you use the net charge before tax.

This setting changes the calculation base; it does not change which Pricing Dimension bracket or zone matches.

You also maintain Force Markup When Missing Carrier Charge on the Service Group. Verify the missing-charge scenario for your Carrier before relying on this setting; do not treat it as a substitute for complete profile, Period, bracket, and zone configuration.

Cell Minimum vs. Group Minimum

For a populated cell, you apply its Minimum Markup ($) when defined. Otherwise, you use the Service Group minimum.

The cell minimum replaces the group minimum for that calculation; you do not automatically choose whichever minimum is larger. You also do not inherit a percentage or fixed amount from the group—those values come from the matched cell.

Configuration

Interpretation

Undefined Percentage or Fixed Amount

You use zero for that component of a populated cell.

Undefined Cell Minimum

You use the group minimum when the cell otherwise contains a value.

Explicit Zero

You have defined a numeric value. In particular, a cell minimum of 0 overrides the group minimum.

Completely Empty Cell

You receive no markup from that matrix resolution, and the group minimum is not charged.

You see undefined measures as — or Not defined. Clearing every measure is different from entering zero: an entirely cleared cell returns without applying the group minimum.

You cannot enter negative values in the service-markup matrix, and its percentage is limited to 0–100.

Surcharge Markups

You maintain Surcharge values separately from the service matrix within each Period. Each Surcharge has its own calculation values, minimum, and optional dates.

For an applicable surcharge, you calculate its base × percentage ÷ 100 + fixed amount, apply its own minimum, and invert the adjustment’s sign for published-rate-discount types. Applicable surcharge adjustments are added to service markup unless your account configuration uses the profile for surcharges only.

You do not evaluate legacy Order Management conditions on these surcharge records. Their date windows control conditional applicability, subject to the account’s selected mode and the availability of the required charge information.

You must distinguish a zero or absent Carrier surcharge base, which the documented Carrier-surcharge handling skips, from an unsupported surcharge base, which can fail processing. Do not assume every missing-charge scenario has the same outcome.

Calculation Examples

You can use these generic examples to distinguish calculation values from coverage failures. Amounts use the same unspecified monetary unit, with taxes and surcharges excluded.

Example

Configuration

Result

Percentage Plus Fixed Amount

Your negotiated charge is 20, percentage is 10%, fixed amount is 1, and no minimum is configured.

Your markup is 20 × 10 ÷ 100 + 1 = 3.

Group Minimum

You use the same calculation, leave the cell minimum undefined, and set the group minimum to 5.

Your calculated 3 is raised to 5.

Cell Minimum Takes Precedence

You use the same calculation, set the cell minimum to 2, and retain the group minimum of 5.

Your markup remains 3: the cell minimum replaces the group minimum.

Explicit Zero

You enter 0%, a fixed amount of 0, and a cell minimum of 0, with a group minimum of 5.

Your markup is 0; the defined cell minimum prevents the group minimum from taking over.

Completely Empty Cell

You clear percentage, fixed amount, and cell minimum, while retaining the group minimum of 5.

You receive no markup from the matrix resolution; the group minimum does not apply.

Missing Dimension Coverage

Your group has no bracket covering the value evaluated for its Pricing Dimension.

You receive a processing error, not a zero-markup result.

No Markup vs. Processing Errors

You must distinguish a valid decision not to apply markup from a configuration failure. When a service-markup calculation is required, the following conditions produce different outcomes.

Condition

Outcome

No Period covers the applicable rating or processing date.

Processing error. The assigned profile remains selected, but no dated pricing configuration can be resolved.

No group claims the Service and no Other/default group exists in the applicable Period.

No profile markup. Normal Period creation provides Other; this is an exceptional configuration state.

Your resolved matrix cell is unset or completely cleared.

No markup from that resolution, with no group minimum.

Your assigned profile is missing, removed, Disabled, or outside the current organization.

Processing error.

Multiple groups claim the same Service, or multiple default groups exist in the applicable Period.

Processing error due to conflicting configuration.

Your Pricing Dimension is missing, has no brackets, or does not cover the evaluated value.

Processing error.

No zone covers the resolved origin and destination.

Processing error.

Required postal validation fails or its validator is unavailable for USPS System zones.

Processing error, when that validation step is reached.

A required negotiated or published rate is unavailable, or a required surcharge base is unsupported.

Processing error.

Disabling an assigned profile is not a harmless pause. When your Client Account still points to that profile, affected orders fail rather than silently continuing without markup. Review and update affected assignments before disabling a profile you no longer intend to use.

You apply the markup before label printing continues. A markup failure marks the order as failing and initiates void handling; you do not receive automatic fallback to a legacy profile.

How Maintenance Changes Affect Your Configuration

Creating Profiles and Managing Periods

You create a Markup Profile in the Enabled state, but it has no effect on an account until you assign it. Profile creation requires a Pricing Dimension and Zone & Area because techSHIP automatically creates the first Period and initializes that Period’s OTHER group.

The first Period starts on the current calendar date in the Location time zone and has no End Date by default. Its OTHER matrix starts empty.

Copy operates at the Period level. Copying a Period creates another Period under the same parent profile and deep-copies its Service Groups, Service assignments, markup matrix values, and Surcharge markups. The source Period remains unchanged, and later edits to either Period do not update the other.

A profile with no remaining Periods cannot be enabled. If you delete the last Period, techSHIP automatically disables the parent profile.

There is no separate backup Markup Profile. Automatic pricing changes occur because techSHIP resolves whichever Period covers the applicable date inside the same assigned profile.

For the hands-on procedures for creating, copying, editing, or deleting Periods, refer to 📄 How to Configure and Manage Markup Profiles in techSHIP [Step-by-Step Guide].

Changing Matrix Structure or Deleting Groups

When you change a Service Group’s Pricing Dimension or Zone & Area, saving discards that group’s existing matrix values within the selected Period. The editor displays an inline warning; you should not expect a separate confirmation dialog to protect that save.

When you delete a regular Service Group, you also delete its matrix and return its Services to Other within the same Period. You do not preserve the deleted group’s values as fallback values, and the operation has no undo.

Before changing matrix structure or deleting a group, preserve the relevant configuration and assess the effect on every assigned Client Account whose applicable dates can resolve to that Period. Returning Services to Other changes which settings they resolve against; it does not preserve their previous markup.

Manual Saves vs. Imports

You have different update behavior depending on how you maintain the configuration. Service Group, membership, and Surcharge imports apply to the selected Period rather than to the parent profile as a whole.

Operation

Effect

Manual Matrix Save

You submit only changed cells. The complete submitted batch is validated before writing; one invalid change prevents all submitted changes from being saved.

Service Group Import

You update or create groups by Code within the selected Period. Groups omitted from the file remain unless you explicitly select them for removal during validation.

Service Membership Import

You replace the imported group’s membership using its Services cell. An empty Services cell removes that group’s existing assignments within the selected Period.

Surcharge Import

You match records by Surcharge Type, Carrier Surcharge Code, and Custom Name within the selected Period. Without a Surcharges sheet, existing Period surcharges remain unchanged.

Markup Items Import

You replace values for the group’s current bracket-and-zone structure. Blank values clear the corresponding measure; this is not a changed-cells-only update.

You validate matrix imports before saving. Unknown zones or brackets are skipped with warnings, while structurally invalid files and files with no matching current zones or brackets are rejected. A successful validation does not mean the import is non-destructive.

Export Scope

Your Period-level export contains the selected Period’s non-default Service Groups and Surcharges and excludes Other. Your matrix export contains the selected Service Group’s Markup Items.

You therefore cannot treat a Period-level export as a complete backup of every matrix. Preserve the relevant matrix exports separately, and do not treat an export or Change History as an automatic version-restoration mechanism.

For the file-based procedure, refer to 📄 How to Import and Export Markup Profile Data in techSHIP [Step-by-Step Guide].

Reviewing Results and Understanding Diagnostic Limits

Configuration Cache

You may wait up to 30 seconds for saved configuration changes to affect rating because profile data is cached. This includes changes to Period dates, groups, brackets, matrix values, surcharges, and the profile’s Enabled or Disabled state.

You should distinguish this rating delay from a screen refresh. Reloading a page can update what you see without proving that a subsequent calculation has already consumed the latest cached configuration.

Recorded Calculations vs. Historical Configuration

Your processed order retains the Markup calculation details, including the bases, percentage and fixed components, applicable minimums, and totals.

However, you do not retain the selected Markup Profile, Period, Service Group, bracket, or zone identities in that calculation record. You cannot treat the recorded arithmetic as a complete snapshot of the configuration that produced it.

You can review configuration changes through Change History at two levels. The profile-level Change History contains profile changes and Period lifecycle changes, while the selected Period’s Change History contains changes to its Period-scoped configuration.

An automatic date transition between Periods does not create a Change History entry or notification because no persisted switch action occurs. For the log-review procedure, refer to 📄 How to Review Change History Logs for Supported Entities [Step-by-Step Guide].

AI-Assisted Review

You can use the AI Assistant to review configuration, request supported changes, and validate hypothetical markup scenarios. A hypothetical calculation uses the available configuration; it is not proof of what an earlier order used.

When a profile contains multiple Periods, identify the Period you want to review or change. If your request is ambiguous, the AI Assistant asks you to specify the intended Period rather than assuming one.

When you review processed-order explanations, a reconstructed Period, Service Group, bracket, or zone comes from the current configuration and can differ from the original processing context. Keep reconstructed results separate from recorded calculation facts.

For assistant availability, interaction, and conversation handling, refer to 📄 techSHIP AI Assistant: Overview & Availability [Information].

Choose Your Next Task

You can use the following operational guides to configure the resources described above.