A. Calculate / Enter Product Need / Estimate


  • Provide a way for users to input the estimated need or ideal stock amounts for each orderable/product, program, facility, period (either annual numbers divided out to periods or by period) combination. The estimated need or ideal stock amount provides users with the target quantities to inform reorder (requesting for more stock) or resupply (deciding what amounts of stock to send) amounts


Chris Wright facilitated the breakout session on forecasting and estimation. 


User Stories

List out the user stories under the activity. Put the "next up" under the Out of Scope section.

#TitleUser StoryLabelImportanceNotesJIRA Tickets

Provide upload file option for annual needs forecast (i.e. needs calculated externally, ISA targets)

Upload ISA or targets into OpenLMIS (the target number of doses at each SDP or location)


  • planning happens outside of OpenLMIS
  • OpenLMIS would need an upload screen to upload the file containing these figures 

VIMS, SELV/SIILMVPQuantities are in doses.

2Modify annual needs forecast (i.e. needs calculated externally, ISA targets)

As a DIVO, I want to review (and edit) annual needs forecast allocated to me to ensure it will meet demand in my geographical area of responsibility.


Needs clarification

quantities calculated in vials – note from Vidya – I've actually seen this calculated in doses and then converted to vials depending on which manufacturer's antigen is being used at that time in the country, since each manufacturer has a different dose/vial ratio.

In Mozambique, we have heard requests from certain provinces that state that the MoH forecast for their specific province is incorrect. They want the ability to override the ministry-forecast for their province by being allowed to edit their forecast (example – override wastage rate for BCG from 50% set by MoH to 20% for their province, or change catchment population locally for few HCs that they think is incorrect, etc). 

Discussion with BBJ week of July 25:

BBJ says Sam first input, and if she finds any of this tricky then she gets Nick's buy-in.

BBJ – they can do it either in the screen or do another download/upload — VS push for download/upload and works the same as the central level.

Audit logging – should be part of this work so make this another ticket. (Audit logging for ISA quantity modifications)


We will need separate rights for this one. (and what type)

3Create rights


Need to discuss how to determine the rights for this.

by Program, facility, supervisory node?

follow language in other tickets (CCE rights) to create this ticket. One of the rights is edit ISA for own entity/geog area, and the other is right to upload for all HF in country (central level). The former is likely by program, and supervisory node. (list RIVO and DIVO as examples in the ticket for edits and central level has for whole country).

4Tracking changesAs a Central EPI, I want to know when annual estimates are changed by DIVOs to understand ....
?Need to understand the value of knowing this information. Who wants to know and why? do they need to be notified.
5WHO formula calculator

As a Central EPI, I want to use WHO formula to calculate my vaccine needs estimation for all EPI products (vaccines, diluents, syringes, waste management) so that I can forecast my product needs for the year.

Below are the steps for how it is currently done in SELV, along with screen shots in the Notes column:

Step 1 - the names of products should be uploaded onto the system

Step 2 - once the products names are available to the admin user, the admin user selects one product at a time to configure the product ISA

Step 3 - the WHO calculator comes up on the screen and the admin user enters the relevant figures for that particular type of product (wastage factor, target %, etc are different for each antigen).



From VIMS below – not about editing forecasted quantities but about editing the allocated population target #s for my area since those are used in the estimation for quantities for my area:

As A RIVO/National, I would like to be able to upload/update the population data for my districts

Acceptance Criteria

  1. I am only able to upload data for my supervised districts.

  2. By default, the list of demographic estimates should fetch an aggregated figure from facilities belonging to the district.

  3. As National user or designated user with "Finalize Estimates" permission I should be able to finalize the estimates so it can not be edited.

  4. As National user or designated user with "Unlock Finalize Estimates", I should be able unlock district estimates for editing


Note: Note Finalize button just prevents editing the estimates by user with data entry role. "Unlock For Editing" needs a special permission to unlock for editing

Vidya note – the screen shot from VIMS shows that a user has to manually enter the target population for each type (pregnant women, Children U5, Adolescents, etc). In SELV/SIIL, it's just a % of the catchment population for that HF that's assumed is children/pregnant women, etc so the system auto-calculates it.

Provide all levels an option to correct annual needs forecast (i.e instead of set annual population targets)    

As a Central Vaccine Logistics Personnel, I want to address the issue of my target population being wrong due to poor census estimates.

Instead, I want to provide all levels a chance to edit the annual need based on census target and use that to drive forecasting for all EPI products (vaccines, diluents, syringes) for the year

Aggregate forecasted product needs for campaigns

Needs clarification
Enter forecasted product needs for campaigns → enter SDP microplan forecast for campaign into OpenLMIS campaign screen

Needs clarification
9Display the formula used for calculation to the viewer

As a Program Supervisor, I want to see the formula used for calculation of product needs (regardless of whether it’s WHO or a custom formula for my country) so that I have a visual confirmation that the system is performing the calculation as I understand it and which the EPI program has determined is the one to use. 

Screen shot from SELV attached


10Provide a calculation demo to viewer to confirm accuracy of calculationAs a DIVO, I want a space where I can input my vaccination coverage target figure for a particular antigen and have the system display what the forecasted need in doses/vials is so that I have a visual confirmation that the system is accurately calculating the need as I understand it and which the EPI program has determined is the one to use.

11Provision of extension points to countries to customize needs estimation on their ownFor those countries that want to use their own method of calculating need that does not match global standards, OpenLMIS will provide an extension point to the system such that a country can build and install an extension to apply their own custom calculation within OpenLMIS. 
? maybe MVP



  1. Administrator needs a way to upload annual targets to each entity (facility and SDP which are not managing stock in OpenLMIS)



Open Questions

Below is a list of questions to be addressed as a result of the vaccine workshop:

1There are multiple ways countries look at the frequency for the ISA amoungs. Either we need to match these numbers to the resupply schedule or we can allow annual numbers which we divide by 12 or allow for annual numbers we divide by 24.  We need to come up with a way to determine what or how we define time period for the ISA targets.

2Open Question: Is the ISA number, which is uploaded, in doses or vials? We can calculate either way but need to make a call.Doses (because the way in which the ISA is calculated gives you an output which is dosageClosed
3Vidya – look into how the re-supply works in VIMS across multiple levels (if multiple resupply periods exist)

4Talk to SME about need for story #1 and story #2 and if it does make sense to have both (talk to them once the mock-ups are done to walk them through both stories via UI examples)


Need to write out the stories around calculating need with the requisition service and incorporating Chris' comment :

Typically we would calculate Max as X * AMC + Safety/Buffer stock, where X = number of months/weeks of a routine resupply period (e.g 1 month X AMC + safety stock). Safety stock is buffer plus lead time stock (stock used between when order is placed and stock is received). In practice, this might simply end up being Max = P * AMC + .5 AMC (buffer) + .5 AMC (lead time stock) = 2 MOS. Lead time stock is a variable, as is resupply period.

  • What time period are they entering information on ISA for? i.e. is the ISA number for one month, one year, or some other period? Vidya to check with Forecasting experts and report back.
  • Is the ISA in doses or vials? Vidya to check and report back.

In Progress, Questions out to Chris Wright (Unlicensed)


User Story 1 Notes:

Notes from Vidya:

One issue to be mindful of is mapping spellings of each entity in the upload file to the way that entity is spelt within the OpenLMIS system. We see this problem constantly with the CT integration in SELV - the way CT spells the facility and district names sometimes is one or two characters different from how SELV spells it and the whole thing breaks down.

Is there a best practice mitigation strategy for this that OpenLMIS uses in other places?

BBJ: does each column need to be a unique ID – for eg instead of saying Balaka Hospital, it would have to be a unique code. So part of the feature should be that the software lets you download a CSV that's a template – so if you go to screen "configure ISA" – one of the things will be CSV template and another is upload a new set of ISAs via upload file function. Template would be a spreadsheet with all the codes and facilities associated with it, product codes, and just the one column for ISA that needs to be filled out. maybe could have previous ISAs and update the new ones.

Out of Scope

Out of scope for this feature OR potentially saving for future development.