Business Requirements Document · Post-Implementation
Factory Cost–Performance
Analytics System
Factory-wide daily cost visibility across three reporting levels, with cost vs. earning variance (CVE) calculated per line, per floor, and factory-wide. Deployment is live; operational cost data is confidential per company policy.
Author
Tonmoy Paul
Role
BA · BI Developer
Organization
Snowtex Group
Document ID
CS-FCPA-001
Version
v1.0 · Final
Toolchain
Google Sheets · Google Data Studio
DEPLOYED
CS-FCPA-001-v1.0
FRAMING  ·  This document covers the full BA lifecycle of the FCPA project: from initial cost structure discovery through stakeholder alignment, formula design, conflict resolution, and post-launch gap assessment. Performance data is directional. Incentive figures are internal and withheld per company policy.
§1
Context & Problem
3
Reporting levels. Line, Floor, Factory
System design
8
Cost drivers tracked per line daily
Finance sign-off
$60M+
USD yearly cost exposure centralized
Annual wage + overhead budget
81
Cost heads analyzed and automated across all lines, floors, and factory
Full analysis process
≥60%
Reporting effort reduced (Finance self-report, 3 cycles)
Finance Lead validation

NOTE ON METRICS METHODOLOGY — The $60M figure is derived from the annual factory wage and overhead budget as filed by Finance, not from system-generated totals. Reporting effort reduction (≥60%) is self-reported by the Finance Lead across three post-go-live close cycles and has not been independently audited. All figures are directionally reliable; precision claims should be treated accordingly.

The organization is a large garment manufacturer running multiple production floors, each with multiple sewing lines, supported by template, quilting, embroidery, and printing sections. Hundreds of operators and supervisors feed a cost structure covering wages, overtime, PIB entitlements, and shared factory overheads.

ROOT CAUSE: Cost and production data existed in structural isolation from each other. No system connected what a line cost to run with what it produced, making it impossible to measure cost efficiency at the level where operational decisions are actually made. Management received a single consolidated monthly P&L, with no line or floor breakdown, arriving 15–25 days after the period had closed.

As-Is vs. To-Be: Reporting State Comparison
DimensionBefore FCPA (As-Is)After FCPA (To-Be)
Reporting frequency Monthly only — 15–25 day lag after period close Daily, same-day cost visibility at line, floor, and factory levels
Reporting granularity Factory aggregate only, no floor or line breakdown Line → Floor → Factory, three levels simultaneously, all reconciled
Cost–performance link Finance and IE data in separate silos. CVE structurally impossible CM (from IE PPM × SMV/planned efficiency) joined to cost. CVE computed per line daily
Allocation disputes PIB and common cost applied differently by Finance and Operations, figures diverged 10–18% Single agreed cost structure, joint sign-off, zero disputes post go-live
Support sections Template, Quilting, Embroidery, Printing, zero structured cost model 4 dedicated calculators, per-job cost output, co-designed with section heads
Month-end close 2–3 days of Finance manual compilation per cycle (~5–7 hrs/day effort) Same-day auto-generated. Finance validates rather than compiles
Shift prioritization ~40 min manual multi-spreadsheet exercise every morning <30 seconds, auto-ranked CVE report in Google Data Studio
§2
Solution Design
Cost Structure — 8 Headers (Finance & Operations Joint Sign-Off)
HeaderCalculation LogicAllocation Basis
01 · Per Capita Wages Operator-level manpower wages ÷ Operator headcount Direct to line by operator headcount
02 · Per Capita Salary Staff salary ÷ Staff headcount Direct to line by staff headcount
03 · Overtime (OT) OT Hours × Base Rate × Line operator count Direct to line
04 · PIB Total PIB ÷ Total factory operator headcount Fixed per operator — CONFLICT 01 resolution
05 · KPI Amount Total KPI amount ÷ Total factory staff headcount Fixed per staff
06 · Fixed Overhead Total fixed overhead cost ÷ Total headcount of the factory Headcount-weighted across lines (depreciation, maintenance)
07 · Variable Overhead Total variable overhead cost ÷ ( Total headcount × Total Factory Available hours ) Activity-based (consumables, energy, accessories)
08 · Common Factory Cost Overall factory cost ÷ Total lines Equal per line — CONFLICT 02 resolution
Composite Line Cost Formula. COST_ENGINE Layer
Line Cost = Sum of All 8 Cost Headers
Line_Cost =
  ( Wage_Rate_Per_Operator × Line_Operator_Count ) ← 01 · Per Capita Wages
( Salary_Rate_Per_Staff × Line_Staff_Count ) ← 02 · Per Capita Salary
( OT_Hours × OT_Base_Rate × Line_Operator_Count ) ← 03 · Overtime
( PIB_Rate_Per_Operator × Line_Operator_Count ) ← 04 · PIB
( KPI_Rate_Per_Staff × Line_Staff_Count ) ← 05 · KPI Amount
( Fixed_OH_Rate_Per_Head × Line_Total_Headcount ) ← 06 · Fixed Overhead
( Variable_OH_Rate_Per_Head × Line_Total_Headcount × Line_Available_Hours ) ← 07 · Variable Overhead
Common_Factory_Cost_Per_Line ← 08 · Common Factory Cost
CONFIG (L1) — Rate Inputs
Wage_Rate_Per_Operator — Total operator wages ÷ operator headcount
Salary_Rate_Per_Staff — Total staff salaries ÷ staff headcount
OT_Base_Rate — Agreed OT multiplier rate
PIB_Rate_Per_Operator — Total PIB ÷ Total factory operator headcount (CONFLICT 01)
Fixed_OH_Rate_Per_Head — Total fixed overhead ÷ total factory headcount
Variable_OH_Rate_Per_Head — Total variable overhead ÷ ( total headcount × Total Factory Available hours )
Common_Factory_Cost_Per_Line — Factory overhead pool ÷ total lines (CONFLICT 02)
DAILY_INPUT (L2) — Daily Variables
Line_Operator_Count — Operators active on the line that day
Line_Staff_Count — Staff assigned to the line that day
Line_Total_Headcount — Operators + Staff (used for overhead allocation)
OT_Hours — Overtime hours logged per line
Line_Available_Hours — Available hours for the line that day
⚠  CONFIG rates are factory-wide pool values. DAILY_INPUT headcounts are line-level values. Both are labelled "headcount" in source data, distinguish by sheet source to prevent formula errors.
Key CVE Formulas
MetricFormulaTarget / Alert ThresholdOwner
Cost of Making (CM) (PPM × SMV ÷ Planned Efficiency) — IE Lead co-signed formula IE-set target; deviation flagged IE Team
Daily Earnings CM × Actual Output (pcs) Benchmarked against daily cost IE + Finance
CVE (primary KPI) Daily Earnings − Daily Total Line Cost Target ≥ 0. Decision protocol not yet implemented, see §4 Gap 03 Factory Mgmt
CVE% (variance rate) ( CVE ÷ Daily Total Line Cost ) × 100 Warning: <−5%. Critical: <−10% Factory Mgmt
Functional Requirements. With Edge-Case Acceptance Criteria
IDRequirementPriorityAcceptance Signal. Including Edge Cases Tested
FR-01 Standardized cost structure with agreed headers applied consistently across all lines MUST Finance Lead + Ops Head sign-off before build. Edge: supervisor shared across two floors, allocation rule documented and applied consistently in test data.
FR-02 Daily cost computed per line across all eight headers, each component as an independent column before summation MUST 20 test records match manual calculation 100%. Edge cases included: 3 zero-output days (variable overhead headcount and hours base still applies); 1 OT-free day (OT column = 0, no formula error). Zero hardcoded rates.
FR-03 Line costs aggregated to floor total, then consolidated to factory, three-tier reconciliation enforced MUST Factory total = sum of all floor totals on all test dates. Auto-reconciliation flag tested: deliberately introduced a mismatch on Day 7 — flag fired. Edge: floor with a single line, aggregation and reconciliation still operational.
FR-04 Month-to-date running cost accumulation at line, floor, and factory level MUST MTD total verified to reset at month boundary in UAT. Edge: mid-month go-live. MTD accumulation starts from day of first entry, does not backfill; documented as expected behaviour for Month 1.
FR-05 Cost of Making (CM) derived from IE PPM, SMV, and planned efficiency. IE Lead co-signed formula MUST CM validated against IE manual calculation for 20 test records — 100% match. Edge: blank PPM entry. CM returns error flag (not zero), preventing silent propagation. Note: this edge case was identified during UAT, not elicitation, see §4 Gap 02.
FR-06 CVE model: Daily Earnings vs. Daily Cost at line, floor, and factory, negative lines visually flagged MUST CVE validated against expected values 100%; floor CVE = sum of line CVEs confirmed. Edge: all lines on a floor negative, floor CVE flag escalated to factory-level summary. Conditional formatting tested in Google Data Studio.
FR-07 Support function calculators for Template, Quilting, Embroidery, and Printing, co-designed with section heads on the floor MUST Per-job cost within ±5% of historical estimates across 10 test jobs per section. Section heads operated calculators independently in UAT without BA assistance. Edge: job spanning two cost categories (e.g. template + embroidery) — calculators kept independent; cross-section jobs require two entries by design, documented in handover.
FR-08/09 Daily CVE ranking report + auto-generated monthly cost summary, zero manual preparation at go-live SHOULD Ranking refreshes in Google Data Studio without manual step, verified with IE team on three consecutive mornings post go-live. Monthly summary generated from accumulated data in UAT cycle; Finance Lead confirmed format matches reporting requirement.
FR-10 Google Data Studio dashboard suite: Factory Command Center, Floor Performance, Line Analyzer, Daily Ranking, Monthly Analysis, Support Calculators MUST 3 management users completed all 5 UAT navigation tasks without assistance. Updates auto-propagate on data entry, verified with 2-minute propagation test. Edge: user with view-only access attempts filter that requires edit access, graceful degradation confirmed.
Solution Architecture — 5-Layer Data Model
L1
CONFIG (Google Sheets) All rates and allocation parameters, wage rates, staff salary rates, PIB %, overhead rates, common cost pool, stored in a single configuration sheet. No rate hardcoded in any formula; changing one cell propagates across all calculations automatically. Owned by Finance; edit access restricted.
L2
DAILY_INPUT + COST_ENGINE (Google Sheets) IE team enters production data (operators, OT hours, output, PPM, SMV) daily. COST_ENGINE computes all eight cost components per line in separate columns before summation, enabling Finance to audit any component in isolation without unpacking a composite formula.
L3
AGGREGATION (Google Sheets) Line costs summed to floor totals, then consolidated to factory aggregate. A reconciliation flag fires on any date where factory total ≠ sum of floor totals, preventing silent propagation of data integrity breaks through the model.
L4
ACCUMULATION + CVE Layer (Google Sheets) Running month-to-date cost totals at all three levels. CM computed from IE inputs; Daily Earnings from CM × actual output; CVE, CVE%, CPP, and Line CVE Rank calculated and stored daily, completing the cost-vs-earning model.
L5
Google Data Studio (Visualization) Live-connected to Sheets. Six dashboard pages update automatically on data entry. Management users have view-only access; Finance and IE have edit access to the Sheets model. UAT: all 20 calculation tests passed, all 5 usability tasks completed without BA assistance.
System Process Flow
FCPA System Process Flowchart
FIG. 1 — FCPA System Process Flow · Data ingestion through reporting layer
§NFR
Non-Functional Requirements
Operational Constraints & Performance Standards
IDCategoryRequirementAcceptance ThresholdStatus
NF-01TimelinessDaily cost report must be fully calculated and available in Data Studio before 2:00 PM the following day, in time for top management review meeting.Report accessible by 2:00 PM next day on all working days. Verified across 10 consecutive days post go-live.MET
NF-02MaintainabilityAll cost calculation rates must be formula-driven. Zero hardcoded values permitted. Any rate change (wages, overhead, material cost) must propagate automatically across all lines without manual formula editing.Rate change applied in one cell propagates correctly to all 20 test lines within the same data refresh cycle. Verified during UAT.MET
NF-03Data IntegritySystem must produce consistent, non-contradictory figures across all three reporting levels — line, floor, and factory — with no manual aggregation step between levels. A line-level figure must sum precisely to its floor total; floor totals must sum precisely to the factory figure.Zero reconciliation gap across all three levels on 20 UAT test records. Finance Lead confirmed match to manual calculation at factory level.MET
NF-04UsabilityManagement-level users must be able to navigate the dashboard and read all KPI outputs without BA involvement or technical training. System must be self-explanatory at point of use.3 management users completed all 5 UAT navigation tasks without assistance. No BA present during UAT navigation test.MET
NF-05AccuracyFinance and Operations cost figures must reconcile within the agreed tolerance before the system is accepted as the single source of truth. Any divergence above threshold must surface as a visible flag, not a silent calculation error.10–18% pre-project divergence resolved to agreed cost structure before build. Blank-entry error flag (NF-05 edge case) confirmed in UAT after GAP 02 remediation.MET
§3
Stakeholder Engagement & Conflict Resolution

The first requirement sessions revealed a structural problem: Finance owned the cost numbers, IE owned the performance numbers, and neither team had previously been asked to connect them. Building a credible CVE model required both functions to validate their inputs and formally agree on how the two datasets joined. Running joint Finance-IE sessions, rather than meeting each function separately, was what made the model trustworthy at month-end close.

Stakeholder Engagement Log. Session Record
SessionStakeholdersPurposeOutput / Decision
S-01 · Discovery Factory Management Define scope, success criteria, and non-negotiable constraints Signed project brief; confirmed daily line-level visibility as primary objective; cost data confidentiality constraint established
S-02 · Cost Structure Design Finance Lead, Operations Head Enumerate cost headers, define allocation logic, surface conflicts 8 cost headers agreed in draft; CONFLICT 01 (PIB) and CONFLICT 02 (Common Cost) identified and flagged for dedicated resolution
S-04 · CM Formula Co-Design IE Lead Define Cost of Making formula from IE's PPM and SMV data CM formula agreed and signed off by IE Lead. Input fields confirmed against data IE already records daily, no new data capture required
S-05 · CVE Model Validation Finance Lead, IE Lead Joint validation of CVE calculation joining Finance cost to IE earnings CVE formula validated against one month of actual data by both functions. Minor rounding disagreement surfaced and resolved, see CONFLICT 03
S-06–09 · Calculator Co-Design Template, Quilting, Embroidery, Printing Section Heads (one session per section) Identify existing data each section records; co-design calculator inputs around that data 4 calculators scoped with inputs sections already track. Design principle: zero new data capture requirements. All four section heads confirmed input fields in session
S-10 · Dashboard Design Review Factory Management, Floor Managers Review Google Data Studio wireframes; confirm layout and metric priority per page CVE ranking moved to dashboard landing page per Factory Management request. Floor Managers confirmed line-level drill-down as primary daily use case
S-11 · UAT Finance Lead, IE Lead, 3 Management Users Calculation verification (20 records) and usability testing (5 tasks) All 20 calculation tests passed. All 5 usability tasks completed without BA assistance. Blank PPM propagation bug identified and fixed, see §4 Gap 02
Conflict Resolution Log
CONFLICT 01 · PIB Allocation Methodology. Finance vs. Operations

Conflict: Finance allocated PIB proportionally to output, lines producing more pieces received a higher PIB cost. Operations argued PIB should be a fixed cost per operator, regardless of output. Applied to the same line, the two methods produced figures diverging by up to 18%, making Finance and Operations cost reports fundamentally at odds at every month-end close.

BA Action: Dedicated resolution session (S-03) with Finance Lead and Operations Head. Both allocation methods modelled side-by-side using one month of actual data, quantifying the variance on a per-line basis. Business logic of each approach documented: output-proportional reflects how PIB is earned but introduces variability that makes the cost component difficult to audit and predict; fixed-per-operator (Total PIB ÷ Total headcount) is stable, auditable, and directly traceable to the payroll record without requiring daily output as an input to a cost calculation.

Resolution: Fixed-per-operator PIB allocation adopted as the organizational standard. Finance Lead accepted that auditability and payroll traceability outweighed the marginal accuracy of output-weighting, particularly given that PIB is a labour entitlement, not a production bonus. Logic documented in the cost structure register and signed off by Finance Lead and Operations Head before a single formula was written. Post-implementation: PIB allocation disputes eliminated from month-end close.
CONFLICT 02 · Common Factory Cost Allocation Basis. Equal vs. Headcount-Weighted

Conflict: Common factory costs (shared services, utilities, facility) were to be allocated across production floors. Finance proposed equal allocation per floor, simple and defensible. Operations argued that floors with higher headcounts should bear a proportionally larger share. The two approaches produced floor-level cost figures differing by 12–15% on the same cost pool.

BA Action: Both approaches modelled against actual floor headcount distribution. Implications documented: equal allocation is simpler to explain and maintain; headcount-weighted allocation more accurately represents resource consumption but requires headcount data as a maintained configuration input. Findings presented to Finance and Operations jointly in S-03.

Resolution: Equal per-line allocation adopted. Finance and Operations agreed that simplicity and auditability outweighed the marginal accuracy gain of headcount-weighting, given the overhead pool size relative to total cost. Allocation logic documented and co-signed by both functions.
CONFLICT 03 · Rounding Convention. Finance vs. IE Calculation Output

Conflict: During CVE model validation (S-05), Finance and IE produced CM figures that matched conceptually but differed by BDT 0.03–0.12 per piece depending on the line, caused by Finance rounding wage rates to two decimal places while IE carried four. Across a high-volume line, this produced a daily CVE variance of BDT 200–400 — enough to flip a line from marginally positive to marginally negative CVE.

BA Action: Both rounding conventions documented and the downstream CVE impact quantified on one month of actual data. Materiality threshold discussed with Finance Lead: BDT 400/day on a line running BDT 80,000+/day is <0.5% variance. Rounding convention decision escalated to Finance Lead as owner of the model's precision standard.

Resolution: Four decimal places adopted as the model-wide rounding standard. Finance Lead accepted the additional precision as necessary for CVE accuracy at the line level. One rounding convention documented in CONFIG sheet as a governed parameter.

The highest-consequence risk on this project was a cost allocation dispute invalidating the model before a single dashboard was built. Resolving all three conflicts formally, before or during the build, converted potential post-launch contestation into pre-launch alignment. A model built on disputed allocation logic would have been challenged by one function at every management review.

§4
Outcomes & Gaps
Benefits Realization. All Objectives Achieved
ObjectiveDeliveredMeasured ImpactMeasurement BasisStatus
Establish daily cost visibility at line, floor, and factory level Real-time CVE dashboard operational across three levels; MTD accumulation running Decision lag: 18-day avg → 0 days Baseline: Finance close-completion log, 6 cycles pre-deployment. Post: dashboard access confirmed daily by IE team ACHIEVED
Implement CVE model as primary KPI at all levels CVE calculated daily at line, floor, and factory; negative-CVE lines identified in real time; daily ranking report operational Shift prioritization: 40 min manual → <30 seconds Before: Operations Manager self-reported timing, corroborated by IE team. After: timed by BA during S-11 UAT ACHIEVED
Develop support function calculators for all four sections Template, quilting, embroidery, and printing calculators built and handed over; all four section heads operate independently Sections with structured cost model: 0 → 4 Baseline: confirmed in S-06–09 discovery that zero sections had an existing cost model. Post: UAT confirmed independent operation ACHIEVED
Reduce manual financial reporting effort by ≥60% Automated cost calculation eliminates daily Finance compilation; auto-generated monthly summary replaces 2–3 day manual close Month-end close: 2–3 days → same-day. ~5–7 hrs/day reduced by ≥60% Self-reported by Finance Lead across 3 post-go-live close cycles. Not independently audited, directional, not precise. ACHIEVED
Gaps That Shipped. Honest Account

The following are not lessons learned. They are requirements gaps that went unidentified during elicitation and emerged during or after delivery. They are documented here as gaps, not reframed as retrospective wisdom.

GAP 01 · Finance Excluded from Cost Model Design Phase

Gap That Shipped

Finance was engaged to validate the first-draft cost model, not during its design. This produced a revision round on rounding convention (CONFLICT 03) and PIB formula structure that a single earlier workshop would have surfaced. The rework added an estimated two days to the build phase and introduced a brief period where the model existed in a state Finance had not yet reviewed.

What should have happened: Finance as co-designer from Session 1, not downstream reviewer. The S-02 session should have included Finance in active cost structure design rather than presenting a draft for comment.

Root cause: Requirements were elicited from Finance and Operations sequentially rather than jointly in the first design session. The assumption that Finance's role began at validation was incorrect and not challenged during scoping.
GAP 02 · Data Quality Monitoring Not Scoped as a Functional Requirement

Gap That Shipped

A blank PPM entry propagated silently through the CM calculation for three days before detection during UAT. The system calculated CM using the blank field as zero, producing a CM of zero and a deeply negative CVE, without any flag. The error was caught because a UAT tester noticed the CVE value was anomalous, not because the system flagged it.

What should have happened: Input validation and missing-data flagging scoped as FR-11 during elicitation, not discovered as a bug in UAT. On any system where manual daily data entry is the input mechanism, data quality monitoring is a correctness requirement, not a post-launch enhancement.

Root cause: Elicitation sessions focused on the calculation chain and reporting layer. No session specifically addressed error conditions, invalid inputs, or data quality scenarios. This is an elicitation blind spot that should have been addressed with structured "what could go wrong with the input data?" prompts.
GAP 03 · CVE Decision Protocol Not Defined as a Requirement

Gap That Shipped

The CVE metric was built. The decision protocol was not. The system flags a line as negative-CVE and ranks it at the bottom of the daily report. What happens next, who is notified, at what threshold a supervisor is called, what action is expected after three consecutive negative-CVE days, was not captured as a requirement and is not implemented. Management sees the data; the escalation path exists only informally.

What should have happened: CVE alert thresholds and escalation protocol scoped as FR-12 in S-01 discovery. The question "who acts on a negative CVE line and how?" should have been put to Factory Management before the dashboard was designed, not deferred as a post-launch addition.

Root cause: Scope was defined around data visibility (what the system shows) rather than operational workflow (what the system triggers). A metric without a decision protocol is an observation, not a management tool.

The three gaps above represent requirements that were not captured during elicitation, not post-launch optimisations. They are included here because an honest case study documents what was missed, not only what was delivered. GAP 02 was partially remediated in UAT (error flag added to CM formula). GAP 01 and GAP 03 remain open at time of writing and are scoped for the next iteration.

What Worked Well
1
Sign off the cost structure before touching the calculation layer Refusing to write formulas until Finance and Operations had formally agreed all cost headers and allocation logic saved an estimated 2–3 days of rework risk. Every hour spent resolving CONFLICT 01, 02, and 03 pre-build prevented post-launch dispute.
2
One column per cost component before summation Separate columns for each of the eight cost headers, rather than a single composite formula, made the model auditable by Finance in isolation, errors locatable without downstream impact, and stakeholder questions answerable by pointing to one visible column.
3
Co-design calculators on the floor, not in a requirements document Starting each support section session with "what data do you already record?" — not "what data would we need?" — produced calculators requiring inputs sections already tracked, resulting in immediate adoption after handover and zero new data capture burden.
Requirement Elicitation Stakeholder Alignment Cost Structure Design KPI Framework Design Financial Modelling Data Modelling BI Development Cross-Functional Facilitation Benefits Measurement Google Sheets Google Google Data Studio GAP: Finance Excluded from Cost Model Design GAP: Data Quality Monitoring GAP: CVE Decision Protocol