Update funds via csv

https://folio-org.atlassian.net/browse/UXPROD-199

Problem statement

Some libraries need the ability to update funds via spreadsheet rather than within the UI. This is particularly relevant for libraries with a large number of funds requiring simultaneous update.

Requirements and use cases

Requirement

Status

Use cases

Requirement

Status

Use cases

Library needs the ability to upload fund allocations via spreadsheet

 

pending

  • Library policy is to allocate new funds to budgets at the beginning of a fiscal year. Library wants to upload allocations in batch.

Library needs the ability to update fund allocations via spreadsheet

pending

  • Library needs to increase or decrease allocations during a given fiscal year based on changes in funding.

Budgets require granular tracking for any changes made via batch upload

pending

  • Library needs reports on when funds were allocated or modified, and by whom, for auditing purposes.

Library needs some “roll back” ability to account for errors

pending

  • Library needs to be able to correct typos or other incorrect information in batch uploaded budgets

Questions

  • What fields should be editable via csv update?

    • Initial allocation, increase, decrease, status (fund and budget), allowable encumbrance, allowable expenditure

      • Should total funding be editable?

        • No. Total funding should always be a calculated value for audit purposes

    • Budgetname can be edited to account for any valid FY (i.e. any FY that has been created in the system, whether it is active or not.)

  • What fields should be included in the spreadsheet?

    • Fund name, fund code, status (fund), group (code), acq unit, ext account number, budget name, status, allowable encumbrance, allowable expenditure, Initial allocation, increase, decrease

      • Should total funding be included?

      • Should we include UUIDs or should that be a BE lookup on load?

  • How should changes in allocation be recorded (for audit trail purposes)?

  • What should happen if a change in allocation results in a budget being overspent?

  • Should increase/decrease be total/aggregate increase/decrease or additional increase/decrease?

    • Example: Initial allocation is $10,000. A prior adjustment of +$1000 is present. If another $1000 adjustment is to be made, should the uploaded spreadsheet have a $1000 or a $2000 adjustment?

      • If $1000, then the initial spreadsheet should include increase/decrease fields, but they should be blank

  • What is the expected audit behavior if total funding is editable?

    • Do we treat as replacement initial allocation or as increase/decrease? Most likely increase/decrease

  • Should an error in one line cause the entire batch to fail?

  • How many warnings do we need to include that this can really mess things up if you’re not paying attention?

  • Do we want to allow creation of budgets with negative allocations? Do we want to allow adjustments to allow budgets to have negative allocations?

Proposed flow:

  • Authorized user selects a Ledger or Group

  • User clicks Actions → Export budget template

    • Prompt: Select Fiscal Year (Available FYs limited to current FY, future FYs that exist and past FYs that have open budgets)

    • Budget template downloads with FY, Ledger, Group and Fund details pre-populated and financial details NOT pre-populated

    • UUIDs for existing budgets should be included

    • Line item should exist for each fund associated with the chosen ledger or group

  • User fills out spreadsheet

    • Fillable spaces: increase allocation, decrease allocation, allowable encumbrance (percent), allowable expenditure (percent), fund status (active or inactive)

  • User clicks Actions → Import budget

    • CSV is uploaded to FOLIO

    • FOLIO checks for UUID match on budget

      • If present, allocation is increased or decreased

      • If NOT present, FOLIO checks for UUID matches on Fund and FY

      • FOLIO creates a new budget based on Fund and FY

      • FOLIO sets value in increase box as initial allocation

      • FOLIO rejects new budgets with negative allocations

      • All changes are associated with the user carrying out the upload

      • Any errors will cause the entire upload to be rejected

    • When processed, a preview screen will open, showing a list of new values associated with changes. Preview screen will have “commit” and “cancel” buttons.

    • When user clicks “commit”, the uploaded data will overwrite the existing data.

 

Miro board: