Function Point Count Calculator
Size a software application from its data and transaction functions before estimating effort or cost.
How do I calculate unadjusted function points?
Multiply the counts of external inputs, external outputs, external inquiries, internal logical files and external interface files by their IFPUG complexity weights, then add the five subtotals. No value adjustment factor is applied.
Formula: UFP = Σ (count × weight) over external inputs, external outputs, external inquiries, internal logical files and external interface files
What this calculator does
Each identified function is weighted by type and complexity using the published IFPUG counting weights, then summed. The counter classifies each function as low, average or high complexity and enters the counts. The calculator applies only the published weights; it does not guess complexity and it applies no value adjustment factor.
Use it to turn External inputs — low complexity, External inputs — average complexity, External inputs — high complexity, External outputs — low complexity, and the other shown inputs into a checked result you can compare, copy, or rerun with different assumptions.
The page shows the formula, a numeric worked example, and the assumptions that affect this professional & industry calculation.
Inputs and what they mean
- External inputs — low complexity
- — Number of low-complexity external inputs. Processes that maintain data from outside the boundary. Classify functions using the IFPUG counting rules before entering counts..
- External inputs — average complexity
- — Number of average-complexity external inputs. Processes that maintain data from outside the boundary. Classify functions using the IFPUG counting rules before entering counts..
- External inputs — high complexity
- — Number of high-complexity external inputs. Processes that maintain data from outside the boundary. Classify functions using the IFPUG counting rules before entering counts..
- External outputs — low complexity
- — Number of low-complexity external outputs. Processes that send derived data outside the boundary. Classify functions using the IFPUG counting rules before entering counts..
- External outputs — average complexity
- — Number of average-complexity external outputs. Processes that send derived data outside the boundary. Classify functions using the IFPUG counting rules before entering counts..
- External outputs — high complexity
- — Number of high-complexity external outputs. Processes that send derived data outside the boundary. Classify functions using the IFPUG counting rules before entering counts..
- External inquiries — low complexity
- — Number of low-complexity external inquiries. Retrieval-only processes. Classify functions using the IFPUG counting rules before entering counts..
- External inquiries — average complexity
- — Number of average-complexity external inquiries. Retrieval-only processes. Classify functions using the IFPUG counting rules before entering counts..
- External inquiries — high complexity
- — Number of high-complexity external inquiries. Retrieval-only processes. Classify functions using the IFPUG counting rules before entering counts..
- Internal logical files — low complexity
- — Number of low-complexity internal logical files. User-identifiable data groups maintained inside the boundary. Classify functions using the IFPUG counting rules before entering counts..
- Internal logical files — average complexity
- — Number of average-complexity internal logical files. User-identifiable data groups maintained inside the boundary. Classify functions using the IFPUG counting rules before entering counts..
- Internal logical files — high complexity
- — Number of high-complexity internal logical files. User-identifiable data groups maintained inside the boundary. Classify functions using the IFPUG counting rules before entering counts..
- External interface files — low complexity
- — Number of low-complexity external interface files. Data groups referenced but maintained elsewhere. Classify functions using the IFPUG counting rules before entering counts..
- External interface files — average complexity
- — Number of average-complexity external interface files. Data groups referenced but maintained elsewhere. Classify functions using the IFPUG counting rules before entering counts..
- External interface files — high complexity
- — Number of high-complexity external interface files. Data groups referenced but maintained elsewhere. Classify functions using the IFPUG counting rules before entering counts..
How to use it
- Define the application boundary and identify its data and transaction functions using the IFPUG counting rules.
- Classify each function as low, average or high complexity, then enter the number of functions in each matching field. Leave unused counts at zero.
- Calculate to see unadjusted function points and the contribution from each of the five function types.
- Use a separately justified productivity rate if you later estimate effort or cost; this calculator measures functional size only.
Formula
For each function type, multiply its low, average and high counts by the corresponding weights, then add all five subtotals.
External inputs (EI): low × 3 + average × 4 + high × 6. External outputs (EO): low × 4 + average × 5 + high × 7.
External inquiries (EQ): low × 3 + average × 4 + high × 6. Internal logical files (ILF): low × 7 + average × 10 + high × 15.
External interface files (EIF): low × 5 + average × 7 + high × 10. The sum is unadjusted function points (UFP); no value adjustment factor is applied.
UFP = Σ (count × weight) over external inputs, external outputs, external inquiries, internal logical files and external interface files.
Inputs used: External inputs — low complexity, External inputs — average complexity, External inputs — high complexity, External outputs — low complexity, External outputs — average complexity, External outputs — high complexity, External inquiries — low complexity, External inquiries — average complexity, and other shown inputs.
Worked example
Application with mixed complexity
- External inputs: 5 low × 3 + 3 average × 4 + 1 high × 6 = 33 FP.
- External outputs: 4 low × 4 + 2 average × 5 + 1 high × 7 = 33 FP.
- External inquiries: 3 low × 3 + 1 average × 4 + 0 high × 6 = 13 FP.
- Internal logical files: 2 low × 7 + 1 average × 10 + 0 high × 15 = 24 FP.
- External interface files: 1 low × 5 + 0 average × 7 + 0 high × 10 = 5 FP.
- Total UFP = 33 + 33 + 13 + 24 + 5 = 108 FP. No adjustment factor or productivity rate is applied.
Reading the result
The headline figure is the main answer. Any breakdown underneath shows the parts that make it up, so you can check the working and see what changes when you adjust an input.
Limitations and assumptions
- Functions must already be identified and classified under the IFPUG counting rules. The calculator does not determine complexity from requirements, screens or source code.
- The result is unadjusted function points, not person-hours, project cost or source lines of code. Those estimates require separately justified conversion or productivity assumptions.
- No value adjustment factor, productivity benchmark or price is assumed.
- Inputs outside the supported range are rejected rather than forced into a result.
- The result depends on the values you enter for this function point count calculator; it does not supply missing rates, rules, prices, dates, or assumptions for you.
Reference: IFPUG — Function Point Counting Practices
Last reviewed:
Common questions
How do I calculate unadjusted function points?
Multiply the counts of external inputs, external outputs, external inquiries, internal logical files and external interface files by their IFPUG complexity weights, then add the five subtotals. No value adjustment factor is applied.
What does a function point calculator measure?
It measures functional size in unadjusted function points (UFP). Each function count is multiplied by its IFPUG type-and-complexity weight, and the five subtotals are added.
What are EI, EO, EQ, ILF and EIF?
EI are external inputs that maintain data from outside the application boundary; EO send derived data outside it; EQ are retrieval-only inquiries. ILF are user-identifiable data groups maintained inside the boundary, while EIF are referenced data groups maintained elsewhere.
How do I choose low, average or high complexity?
Identify the function and classify it under the applicable IFPUG Counting Practices Manual rules before entering its count. This calculator applies the selected weights; it does not infer complexity from a screen count or application description.
Are these adjusted or unadjusted function points?
The result is unadjusted function points. No value adjustment factor is applied to the weighted sum.
Can function points directly give project effort or cost?
No: function points measure functional size, not hours or money. Effort and cost need a separately justified, organisation-specific productivity rate and any relevant cost inputs.
Formula, source and verification
Each identified function is weighted by type and complexity using the published IFPUG counting weights, then summed.
The question it answers: How big is this application in terms the business can compare across projects?
The formula
UFP = Σ (count × weight) over external inputs, external outputs, external inquiries, internal logical files and external interface files
- EI — External inputs
- (count). Processes that maintain data from outside the boundary.
- EO — External outputs
- (count). Processes that send derived data outside the boundary.
- EQ — External inquiries
- (count). Retrieval-only processes.
- ILF — Internal logical files
- (count). User-identifiable data groups maintained inside the boundary.
- EIF — External interface files
- (count). Data groups referenced but maintained elsewhere.
Units: Function points (dimensionless counts).
What kind of calculation this is
Estimation model. This is a published estimation model. It produces an estimate, not a measured fact, and its accuracy depends on how well your situation matches the model.
Method
The counter classifies each function as low, average or high complexity and enters the counts. The calculator applies only the published weights; it does not guess complexity and it applies no value adjustment factor.
Assumptions built into the result
- Industry: Functions have already been identified and classified by a counter.
Figures this calculator will never guess for you
- No productivity rate, hours per function point, or cost is assumed here.
Limitations
- Gives unadjusted function points only. Effort and cost need a separate, organisation-specific productivity rate.
Source and version
- Standard or reference
- Function Point Analysis (Counting Practices Manual) — IFPUG (IFPUG Counting Practices Manual, unadjusted function point weights by function type and complexity.)
- Published source
- IFPUG — CPM 4.3.1 family
- Formula version
- Version 1
- Verification
- Reviewed against the cited source on
- How much weight the source carries
- Standards or government
- Applies to
- Currency
- The result is a ratio or index, so it does not depend on currency.
Cite this page
Free Calculator. (2026, September 15). Function Point Count Calculator. https://freecalculator.tech/tools/function-point-estimate-calculator
"Function Point Count Calculator." Free Calculator, 15 Sept. 2026, https://freecalculator.tech/tools/function-point-estimate-calculator.
Function Point Count Calculator — Free Calculator, https://freecalculator.tech/tools/function-point-estimate-calculator
Related tools
Work out the hourly rate to charge a client so that target margin is met after overhead and non-billable time.
Find the true hourly cost of an employee once benefits, payroll cost and overhead are included.
Estimate development effort, schedule and average team size for a software project of a known size.
Express cloud spend as a cost per customer, per transaction or per other business unit.
Set the rate used to apply manufacturing overhead to jobs for the coming period.
Find the pace of production needed to meet customer demand.