YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
- Financial Feasibility Analysis of a Small-Scale PCB Fabrication Center
Financial Feasibility Analysis of a Small-Scale PCB Fabrication Center
Extensions: Monte Carlo Simulation & STP-based Segmentation
Based on the IEEE paper: "Financial Feasibility Analysis of a Small-Scale PCB Fabrication Center"
Quick Start β Generate All Outputs
git clone https://huggingface.co/VarunGowda/pcb-financial-feasibility-analysis
cd pcb-financial-feasibility-analysis
pip install -r requirements.txt
python run_all.py
This generates 34 PNG figures, 14 JSON data files, and 2 JSON result files. Then open the notebook:
jupyter notebook pcb_financial_analysis.ipynb
Paper Summary
| Parameter | Value |
|---|---|
| CapEx | INR 1,80,000 |
| Monthly OpEx | INR 50,000 |
| Total Initial Investment | INR 2,00,000 |
| Revenue Model (Eq. 3) | Fixed N_n = 150, churn Ξ± = 10%, avg price P = INR 400 |
| Monthly Revenue (deterministic) | INR 60,000 |
| Break-even | N_BE = C_f / (P - C_v) = 1,200 PCBs |
| Deterministic Payback | ~12 months |
Extension 1: Monte Carlo Cash Flow Simulation
Model Specification
- Monthly Demand: D ~ Poisson(Ξ»=100)
- Price per PCB: P ~ Normal(ΞΌ=400, ΟΒ²=40Β²)
- Monthly OpEx: O ~ Uniform(42,500, 57,500)
- Initial Investment: INR 2,00,000
- Trials: 10,000
- Metric: Months until cumulative net cash flow recovers INR 2,00,000
β Critical Mathematical Insight
With Ξ»=100 (user-specified):
E[Revenue] = Ξ» Γ ΞΌ_P = 100 Γ 400 = INR 40,000
E[OpEx] = (42,500 + 57,500) / 2 = INR 50,000
E[Net] = -INR 10,000/month β NEGATIVE!
The expected monthly cash flow is negative, so the project never achieves payback under Ξ»=100. This is the key finding that contrasts with the paper's deterministic model (which uses 150 users).
Minimum viable demand rate: Ξ» β 125 (where E[Revenue] = E[OpEx]).
Results (both scenarios)
| Metric | Ξ»=100 (specified) | Ξ»=150 (paper-implied) |
|---|---|---|
| E[Revenue] | INR 40,000 | INR 60,000 |
| E[Net] | -INR 10,000 | +INR 10,000 |
| Recovery Rate | 0.00% | 100.00% |
| P(payback β€ 12mo) | 0.00% | 0.46% |
| P(payback β€ 18mo) | 0.00% | 30.50% |
| P(payback β€ 24mo) | 0.00% | 82.55% |
| Mean Payback | N/A (never) | 20.81 months |
| Median Payback | N/A | 20.0 months |
| 95% CI | N/A | [14.0, 30.0] months |
18 Figures Generated
- Payback period histogram (Ξ»=150)
- Cumulative cash flow fan chart vs deterministic
- Critical comparison: Ξ»=100 vs Ξ»=150
- CDF of payback period
- Revenue vs OpEx boxplots (both scenarios)
- Cash flow distribution at month 12
- Input distribution validation
- Sensitivity: payback vs demand rate Ξ»
- Sensitivity: payback vs mean price
- Payback heatmap (Ξ» Γ Price)
- 50 sample cash flow paths
- ROI distribution at month 24
- Probability of profit over time
- Monthly net cash flow violin plots
- Monte Carlo convergence
- Recovery rate vs demand
- Viability threshold analysis
- Sensitivity: payback vs OpEx
Extension 2: STP-based User Segmentation & Churn Model
Segment Definitions
| Segment | Description | N_n | N_e | Ξ± (churn) | P (INR) |
|---|---|---|---|---|---|
| S1 | UG Course Projects | 100 | 30 | 0.40 | 300 |
| S2 | PG/Research | 30 | 15 | 0.10 | 500 |
| S3 | Lab/Institutional | 20 | 5 | 0.05 | 400 |
Revenue Equation
R = Ξ£_k [ N_n,k Β· P_k + N_e,k Β· P_k Β· (1 β Ξ±_k) ]
Results
| Segment | Revenue (INR) | Share |
|---|---|---|
| S1: UG Course Projects | 35,400 | 52.8% |
| S2: PG/Research | 21,750 | 32.4% |
| S3: Lab/Institutional | 9,900 | 14.8% |
| Total | 67,050 | 100% |
- Monthly Profit: INR 17,050
- Simple Payback: 11.7 months
- Overall Churn Rate: 27.5%
- CLV: S1=INR 750, S2=INR 5,000, S3=INR 8,000
16 Figures Generated
- Revenue breakdown by segment (stacked bar)
- Revenue & user share (pie charts)
- Sensitivity: total revenue vs Ξ±_S1 (primary deliverable)
- Churn impact waterfall chart
- User flow (new, retained, churned)
- Customer lifetime value by segment
- Revenue heatmap (Ξ±_S1 Γ Ξ±_S2)
- 24-month revenue projection with dynamic churn
- User base evolution over 24 months
- Revenue per user efficiency
- Original aggregate vs STP model comparison
- Tornado sensitivity chart (Β±20%)
- Payback sensitivity per segment churn
- Segment profile radar chart
- Break-even analysis per segment
- Investment recovery timeline
Combined Analysis β Key Findings
| Metric | Deterministic (Paper) | MC Ξ»=100 | MC Ξ»=150 | STP Segmented |
|---|---|---|---|---|
| Monthly Revenue | INR 60,000 | E=INR 40,000 | E=INR 60,000 | INR 67,050 |
| Monthly Profit | INR 10,000 | E=-INR 10,000 | E=INR 10,000 | INR 17,050 |
| Payback | 12 months | β (never) | ~21 months | ~11.7 months |
| P(payback β€ 12mo) | 100% (assumed) | 0.0% | ~0.5% | N/A (deterministic) |
Key Insights
- Demand Rate is Critical: With Ξ»=100, the project is financially unviable. Min viable Ξ»β125.
- Stochastic Reality vs Deterministic Optimism: Even at Ξ»=150, mean payback is ~21 months (not 12), and P(payback β€ 12mo) is only ~0.5%.
- STP Segmentation Reveals Higher Revenue: INR 67,050/mo vs INR 60,000 aggregate (+11.75%).
- S1 Churn is the Dominant Risk Factor: 40% churn but 52.8% of revenue. Tornado chart confirms S1 parameters have the largest impact.
- Recommendation: Target minimum Ξ»=150, reduce S1 churn below 30%, develop S2/S3 segments.
File Structure
βββ README.md # This file
βββ RESULTS.md # Pre-computed results summary
βββ requirements.txt # Python dependencies
βββ run_all.py # Generate all outputs
βββ pcb_financial_analysis.ipynb # Comprehensive Jupyter notebook
βββ src/
β βββ extension1_monte_carlo.py # MC simulation (18 figures)
β βββ extension2_stp_churn.py # STP analysis (16 figures)
βββ figures/ # 34 PNG visualizations (generated by run_all.py)
βββ data/ # JSON data files (generated + pre-computed)
β βββ ext2_sensitivity_alpha_s1.json
β βββ ext2_tornado.json
βββ results/ # Summary results (pre-computed)
βββ ext1_monte_carlo_results.json
βββ ext2_stp_results.json
Author
VarunGowda
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support