EI stands for "External Input". Here the official IFPUG definition of an EI is as follows:

An external input (EI) is an elementary process that processes data or control information that comes from outside the application boundary. The primary intent of an EI is to maintain one or more ILFs and/or to alter the behavior of the system.

Examples of EIs include:

Data entry by users.

Data or file feeds by external applications.

Function point counts resulting from EI's

Allocating FPs to EIs is similar to the process we covered for ILFs and EIFs. However, in this case, instead of doing a lookup based on DET's and RET's to determine a Low/Average/High complexity, the lookup is performed using DET and FTR values. As you'll recall from the earlier definition, an FTR is a "file type referenced", so it can be either an ILF or an EIF.

As an example, suppose that you have a process that has 5 DET's, and during the processing it references an EIF named Users and an ILF named Process. You would go into the following table looking for the complexity of an EI that has 5 DET's and 2 FTR's. As you'll see from the table below, this EI is considered an "Average" complexity EI.

FTR's

Data Element Types (DET's)

1-4

5-15

16+

0-1

L

L

A

2

L

A

H

3 or more

A

H

H

Table 6: EI complexity matrix
To carry our example forward, as you can see from the following table, an Average complexity EI is worth 4 FPs.