Professional software project estimation for engineers and architects
Select AI tools and set productivity gain to reduce estimates accordingly.
Apply percentage-based adjustments for Functional Testing, QA, Performance Testing, Learning Curve, and other factors.
Copy-paste ready tables and rules for all calculations used in this application.
| Complexity | Description | Effort Range (h) | Effort Range (days) | Typical (median h) | Typical (days) |
|---|---|---|---|---|---|
| Low | Simple CRUD, single table, standard auth | 8β16 | 1β2 | 12 | 1.5 |
| Medium | Multi-table joins, business logic, validation | 16β40 | 2β5 | 28 | 3.5 |
| High | Complex workflows, multiple integrations, heavy processing | 40β80+ | 5β10+ | 80 | 10 |
Per-endpoint tasks: design/spec (10β25%), implementation, unit tests, integration tests, e2e test hooks, doc + swagger, code review, deployment config.
Example: 10 Low, 5 Medium, 2 High β 10Γ12 + 5Γ28 + 2Γ80 = 420 hours.
| Component | Typical tasks | Low (h) | Low (days) | Typical (h) | Typical (days) | High (h) | High (days) |
|---|---|---|---|---|---|---|---|
| Authentication & Authorization | OAuth/JWT, RBAC, sessions, tokens, tests | 8 | 1 | 24 | 3 | 64 | 8 |
| Core Business Logic | Rules, workflows, orchestrations, domain services | 32 | 4 | 140 | 17.5 | 400 | 50 |
| Data Access Layer | Repos, ORM mapping, pooling, caching | 16 | 2 | 52 | 6.5 | 160 | 20 |
| Integration Layer | External APIs, MQ, event streams, adapters | 24 | 3 | 100 | 12.5 | 320 | 40 |
| Observability & Monitoring | Logging, metrics, tracing, health checks | 8 | 1 | 32 | 4 | 120 | 15 |
| Area | Tasks | Low (h) | Low (days) | Typical (h) | Typical (days) | High (h) | High (days) |
|---|---|---|---|---|---|---|---|
| Schema design | Entity modeling, relationships, indexes | 8 | 1 | 24 | 3 | 80 | 10 |
| Migration scripts | Forward/rollback, seeding | 4 | 0.5 | 16 | 2 | 64 | 8 |
| Performance optimization | Query plan, indexing, partitioning | 8 | 1 | 40 | 5 | 160 | 20 |
| Backup & recovery | Backups, PITR, recovery testing | 4 | 0.5 | 16 | 2 | 64 | 8 |
Complexity scoring: Use weighted score from matrix. Map factor level β numeric: Low=1, Medium=2, High=3.
Weights: DataVolume 0.30, Transformations 0.25, Dependencies 0.20, SLA 0.15, ErrorHandling 0.10.
Normalized score = Ξ£( (level-1)/2 * weight ) β value between 0.0 and 1.0.
<0.35: Low, 0.35β0.7: Medium, >0.7: High
| Component | Low (h) | Low (days) | Medium (h) | Medium (days) | High (h) | High (days) |
|---|---|---|---|---|---|---|
| Data Extraction | 8β16 | 1β2 | 16β40 | 2β5 | 40β120 | 5β15 |
| Data Transformation | 8β24 | 1β3 | 40β120 | 5β15 | 120β400 | 15β50 |
| Data Loading | 4β12 | 0.5β1.5 | 16β40 | 2β5 | 40β120 | 5β15 |
| Error handling & retries | 4β8 | 0.5β1 | 8β24 | 1β3 | 24β80 | 3β10 |
| Monitoring & alerting | 4β8 | 0.5β1 | 8β24 | 1β3 | 24β80 | 3β10 |
| Backfill capability | 8β16 | 1β2 | 24β80 | 3β10 | 80β240 | 10β30 |
| Complexity | Components | States | Effort (h per screen) | Effort (days per screen) |
|---|---|---|---|---|
| Simple | 1β5, static | 2β3 | 8β24 | 1β3 |
| Medium | 6β15, forms/tables | 4β8 | 24β60 | 3β8 |
| Complex | 16+, charts, animations | 9+ | 60β120+ | 8β15+ |
| Activity | Typical (h) | Typical (days) |
|---|---|---|
| Research & discovery | 16β80 | 2β10 |
| Information architecture & wireframes | 8β40 | 1β5 |
| Visual design (design system, mocks) | 24β120 | 3β15 |
| Frontend implementation (per medium screen) | 24β60 | 3β8 |
| Accessibility & testing | 8β40 | 1β5 |
| Component | Tasks | Small (h) | Small (days) | Typical (h) | Typical (days) | Large (h) | Large (days) |
|---|---|---|---|---|---|---|---|
| Environment setup | dev/stage/prod infra + IaC | 8β24 | 1β3 | 40β120 | 5β15 | 120β400 | 15β50 |
| CI/CD pipeline | build/test/deploy automation | 16β40 | 2β5 | 80β200 | 10β25 | 200β600 | 25β75 |
| Monitoring & observability | app + infra + logs | 8β24 | 1β3 | 40β120 | 5β15 | 120β400 | 15β50 |
| Security implementation | TLS, secrets, scanning | 8β24 | 1β3 | 40β120 | 5β15 | 120β400 | 15β50 |
| Strategy | Effort multiplier |
|---|---|
| Rehost (lift-and-shift) | 1.0Γ |
| Replatform | 1.5Γ |
| Repurchase (SaaS) | 0.5Γ |
| Refactor | 3β5Γ |
| Retire | 0.2Γ |
| Retain | 0Γ |
| Relocate | 0.8Γ |
| App size | Baseline (h) |
|---|---|
| Small single-service app | 40β120 |
| Medium multi-service app | 320β800 |
| Large complex system | 1200β4000 |
| Phase | Small | Medium | Large |
|---|---|---|---|
| Assess | 0.5β2 pw | 2β6 pw | 6β12+ pw |
| Mobilize | 1β2 pw | 2β4 pw | 4β8 pw |
| Migrate & Modernize | 1β4 pw | 8β24 pw | 24β72+ pw |
| Service category | Small (h) | Medium (h) | Large (h) |
|---|---|---|---|
| Compute (EC2/ECS/Lambda) | 8β40 | 40β160 | 160β640 |
| Database (RDS/DynamoDB) | 8β40 | 40β160 | 160β640 |
| Storage (S3/EFS) | 4β16 | 16β64 | 64β256 |
| Networking (VPC/ALB/CloudFront) | 8β32 | 32β128 | 128β512 |
| Security (IAM/KMS/WAF) | 8β32 | 32β128 | 128β512 |
| Monitoring (CloudWatch/X-Ray) | 8β32 | 32β128 | 128β512 |
Formula: PERT = (Optimistic + 4ΓMostLikely + Pessimistic) Γ· 6
| Component | Opt (h) | ML (h) | Pess (h) | PERT (h) |
|---|---|---|---|---|
| Backend APIs | 120 | 200 | 360 | 213.33 |
| Frontend/UI | 80 | 160 | 320 | 173.33 |
| Database | 40 | 80 | 160 | 86.67 |
| Batch Jobs | 40 | 160 | 480 | 193.33 |
| Infrastructure | 60 | 200 | 400 | 210.00 |
| Testing | 80 | 160 | 320 | 173.33 |
| TOTAL (PERT) | 1050.00 |
| Label | Probability (p) | Impact (i) |
|---|---|---|
| High (H) | 0.60 | 0.60 |
| Medium (M) | 0.30 | 0.30 |
| Low (L) | 0.10 | 0.10 |
Risk adjusted extra hours (per risk) = PERT_hours_for_related_component Γ p Γ i
| Risk Category | Probability | Impact | Related component | Base PERT (h) | Added (h) |
|---|---|---|---|---|---|
| Technical Complexity | H | H | Backend APIs | 213.33 | 76.80 |
| Team Experience | M | M | Frontend/UI | 173.33 | 15.60 |
| Requirements Changes | H | M | Batch Jobs | 193.33 | 34.80 |
| Integration Complexity | M | H | Infrastructure | 210.00 | 37.80 |
| Third-party Dependencies | M | M | Database | 86.67 | 7.80 |
| Sum added hours | 172.80 |
Risk-adjusted total = PERT total + sum(added) = 1050.00 + 172.80 = 1,222.80 h (β 1,223 h).
Example: 1,223 h over 10 weeks β 1,223 / (10Γ40) = 3.06 FTE β plan 3β4 FTE.
| Tool | Typical Productivity Gain (%) |
|---|---|
| Copilot | 5β20% |
| Cursor | 5β20% |
| Windsurf | 5β20% |
| Codeium | 5β15% |
| Tabnine | 5β10% |
| Other | 0β10% |
AI productivity tools can reduce total effort. Apply a realistic gain (typically 5β20%) based on team adoption and workflow integration. This is applied after all other adjustments.
| Factor | Typical % | Purpose |
|---|---|---|
| Functional Testing | 10β20% | Manual/automated test case writing, execution, validation |
| QA & Bug Fixing | 5β15% | Defect triage, bug fixing, regression, retesting |
| Performance Testing | 3β10% | Load, stress, soak, profiling, tuning |
| Learning Curve | 3β10% | Team ramp-up, onboarding, new tech/processes |
| Other Factors | 0β10% | Compliance, documentation, handover, etc. |
Apply these as percentage multipliers to the subtotal (before risk/contingency) for a more realistic estimate.
Estimate effort for API endpoints based on complexity
Simple CRUD, single table, standard auth
8-16 hours (typical: 12)
Multi-table joins, business logic, validation
16-40 hours (typical: 28)
Complex workflows, multiple integrations, heavy processing
40-80+ hours (typical: 80)
Estimate effort for backend system components
OAuth/JWT, RBAC, sessions, tokens, tests
Rules, workflows, orchestrations, domain services
Repos, ORM mapping, pooling, caching
External APIs, MQ, event streams, adapters
Logging, metrics, tracing, health checks
Estimate effort for database-related tasks
Entity modeling, relationships, indexes
Forward/rollback, seeding
Query plan, indexing, partitioning
Backups, PITR, recovery testing
Complexity scoring and effort estimation
Screen complexity and UI/UX work estimation
1-5 components, static, 2-3 states
8-24 hours per screen
6-15 components, forms/tables, 4-8 states
24-60 hours per screen
16+ components, charts, animations, 9+ states
60-120+ hours per screen
Infrastructure components and DevOps effort estimation
dev/stage/prod infra + infra-as-code
build/test/deploy automation
app + infra + logs
TLS, secrets, scanning
7 Rs strategy and migration effort estimation
Three-point estimation using (O + 4ΓML + P) Γ· 6 formula
Calculate additional effort based on project risks
Convert hours to FTE requirements and schedule planning