Update funds via csv

UXPROD-199: The ability to import fund updates via csv file in order to bulk edit fundsIn Progress

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: