معماری چندکسب‌وکاری، تجاری و تجارت الکترونیک · فصل ۳ — Cost، Pricing، P&L، Entitlement و SLA · 238

P&L per Client and Contribution Margin

Build a per-client P&L bridge that separates revenue, credits, direct variable cost, customer-specific support, allocated shared cost, contribution margin and optional fully loaded cost so profitability conclusions state exactly which layer they represent. می‌تواند برای «P&L per Client و Contribution Margin» یک تصمیم bounded با constraints، cost/risk و stop/pivot condition طراحی کند.

P&L per Client و Contribution Margin — fa-IR

Lesson summary

Build a per-client P&L bridge that separates revenue, credits, direct variable cost, customer-specific support, allocated shared cost, contribution margin and optional fully loaded cost so profitability conclusions state exactly which layer they represent.

می‌تواند برای «P&L per Client و Contribution Margin» یک تصمیم bounded با constraints، cost/risk و stop/pivot condition طراحی کند.

This lesson produces

می‌تواند برای «P&L per Client و Contribution Margin» یک تصمیم bounded با constraints، cost/risk و stop/pivot condition طراحی کند.

Who it is for

Foundation

Use a field map, one worked scenario and explicit state vocabulary before independent construction.

Repair

Identify the failed evidence dimension, use the smallest mutated fixture and rerun only the affected gate.

Experienced

Compress definitions; require trade-off defense, counterexample analysis and changed-context transfer.

Prerequisites

This lesson is not about producing one convenient “profit per customer” number. It is about making every profitability conclusion state which layer it represents, which costs it includes, and which allocation version produced it.

1) The problem this lesson solves

Customer revenue is easy to display. Profitability becomes unreliable when credits, direct usage, payment fees, support effort, and shared-platform allocations are mixed without a stable scope. Two analysts can then report different customer “profit” numbers while both spreadsheets appear mathematically correct.

2) Lesson boundary and deliverable

The deliverable is Client P&L & Contribution Bridge v1. It is an internal decision artifact, not a statutory financial statement, tax return, or invoice. The bridge must trace from recognized_revenue through fully_loaded_profit while keeping cost_scope and allocation_version attached to the result.

3) Fact: gross profit is not the same as overhead-inclusive profit

Current QuickBooks Invoice Profitability guidance shows revenue, direct cost/COGS, and gross profit, and explicitly notes that overhead and operating expenses are not included in that report. A direct-cost profitability report therefore must not be relabeled automatically as a fully-loaded client P&L.

4) Fact: unit economics can reach customer and cost-to-serve metrics

FinOps Unit Economics recognizes business unit metrics such as cost per customer/tenant and cost to serve and connects unit economics with margin, sustainability, and pricing discussions. FinOps does not, however, prescribe the exact MAKNOW contribution-cost or shared-allocation policy.

5) Use the right mental model: Revenue → Contribution → Fully Loaded

Keep three layers separate: net revenue, contribution economics, and the fully-loaded view. Contribution asks what remains after direct/customer-variable costs to support shared costs. Fully loaded asks what remains after an allocated share of common costs. Those are different management questions.

6) Lock period and revenue boundaries first

client_id and period are decisive before any profitability calculation. recognized_revenue minus credits_refunds yields net_revenue. If a credit arrives after period close, the revised number may be calculable, but the result is not final until a restatement/version boundary is explicit.

7) Build contribution cost explicitly

In this contract, contribution cost is direct_usage_cost + payment_cost + customer_support_cost + other_variable_cost. When support work is attributable to that client, moving it into shared overhead merely to improve margin is a misclassification, not an optimization.

8) Recompute contribution profit and margin

contribution_profit = net_revenue − contribution_cost. When net_revenue > 0, contribution_margin_pct = contribution_profit / net_revenue × 100. This is still not fully-loaded profit. A percentage without scope, period, and evidence is not an auditable profitability conclusion.

9) Keep shared allocation as a separate layer

allocated_shared_cost remains separate from contribution cost and carries an allocation_version. Then fully_loaded_cost = contribution_cost + allocated_shared_cost, and fully_loaded_profit = net_revenue − fully_loaded_cost. If allocation logic changes, prior and current results require restatement or explicit segmentation before comparison.

10) Contribution-positive can still be fully-loaded-negative

When contribution profit is positive but fully-loaded profit is negative, this lesson emits MARGINAL. The customer is contributing toward shared costs but is not fully-loaded profitable under the current allocation. Removing this layer produces over-simplified “profitable/unprofitable” claims.

11) Publish the variance driver with the result

Profit changes need an explanation such as CREDIT, SUPPORT_AUTOMATION, USAGE_SPIKE, PAYMENT_FEE, ALLOCATION_V2, or a combination. variance_driver is not narrative decoration; it identifies which evidence changed relative to the comparison period.

12) Core Evidence Contract

Every bridge carries 20 dimensions, with 15 critical dimensions that cannot be silently omitted.

FieldCriticalPurpose
client_idYESStable customer identity
periodYESReporting period boundary
recognized_revenueNORevenue recognized for client/period
credits_refundsNOCredits/refunds deducted from recognized revenue
net_revenueYESrecognized_revenue - credits_refunds
direct_usage_costYESClient-attributable model/cloud/usage cost
payment_costYESClient-attributable payment/processing cost
customer_support_costYESClient-attributable support effort cost
other_variable_costNOOther explicitly attributable variable cost
contribution_costNOSum of contribution-layer direct/variable costs
contribution_profitYESnet_revenue - contribution_cost
contribution_margin_pctYESContribution profit as percent of net revenue
allocated_shared_costYESAllocated common/platform cost outside contribution layer
fully_loaded_costYEScontribution_cost + allocated_shared_cost
fully_loaded_profitYESnet_revenue - fully_loaded_cost
cost_scopeYESVersioned definition of which costs belong to each layer
allocation_versionYESVersion of shared-cost allocation logic
variance_driverYESNamed evidence change explaining movement
decision_stateNOPROFITABLE/MARGINAL/LOSS/HOLD/DISPUTED
evidence_refYESTrace to source rows or synthetic evidence

13) Typed states prevent fake profitability

PROFITABLE means contribution-positive and fully-loaded non-negative. MARGINAL means contribution-positive but fully-loaded-negative. LOSS means contribution profit is non-positive. HOLD preserves incomplete/restatement-sensitive evidence; DISPUTED preserves incompatible scope or comparison. No aggregate score can override HOLD or DISPUTED.

14) Comparisons need a common scope and allocation version

Two customers or periods are directly comparable only when cost definitions and allocation versions align. If cost_scope differs or allocation logic changes, restate or segment first. This prevents a polished dashboard from creating a false trend through definition drift.

15) Lab, transfer, and freshness

The lab has eight fixtures: baseline, support misclassification, post-close refund, allocation-version drift, scope mismatch, missing evidence, contribution-positive/fully-loaded-negative economics, and final transfer. In transfer, Client A receives a credit, support falls after automation, and shared allocation moves to v2; both profitability layers must be rebuilt from changed evidence. QuickBooks and FinOps sources were rechecked on 2026-09-15 and material source changes require requalification before the review due date.

Assessment

There is no answer key in this lesson pack; answer it yourself and mark honestly. "Needs review" sends the lesson to your review queue.

ARC-019-Q1 retrieval

Explain why contribution profit and fully-loaded profit answer different management questions.

lesson ✗AI ✗notes ✗

ARC-019-Q2 application

Build Client P&L & Contribution Bridge v1 for the baseline fixture and justify its typed state.

lesson ✗AI ✗notes ✗

ARC-019-Q3 diagnosis

A customer-specific support cost is moved into shared overhead. Which evidence dimension fails and why?

lesson ✗AI ✗notes ✗

ARC-019-Q4 transfer

Recompute after a credit, lower support cost from automation, and a new shared-allocation version.

lesson ✗AI ✗notes ✗
Assessment rubric

Pass requires: explicit period/revenue boundary; complete critical evidence; correct contribution versus fully-loaded layer separation; visible cost scope/allocation version; no invented evidence; and independent recomputation of transfer.

References & freshness

Run the Invoice Profitability by Customer Report
Intuit QuickBooks · PRACTICE_EVOLVING
Shows invoice/customer revenue, direct cost/COGS and gross profit; explicitly excludes overhead/operating expenses from this report. Does not define MAKNOW contribution or fully-loaded policy.
Capability: Unit Economics
FinOps Foundation · PRACTICE_EVOLVING
Defines unit-economics practice including cost per customer/tenant, cost to serve, marginal cost/revenue and contribution-margin/pricing discussions; does not prescribe MAKNOW cost allocation.

Case studies

Lesson visuals

ARC-019-CLIENT-PL-BRIDGE

Flow from recognized revenue through contribution economics and shared allocation to fully loaded profit and typed decision states.

Lab files

python run_checks.py را اجرا کن. state هر fixture را ببین و هر بار فقط یک بُعد evidence را تغییر بده. داده‌ها کاملاً مصنوعی و آفلاین هستند. پاسخ baseline را oracle سناریوی transfer فرض نکن.