Безболісне управління грантовим проєктом вимагає чіткого фінансового помісячного планування індивідуальних виплат і витрат за кожною окремою статтею бюджету.
Зображення згенеровано з допомогою веб-сервіса piscart.com
- Призначення застосунку
- Опис вхідних даних
Task schedule
- календарний планTask types
- тип завданьTeam
- список виконавцівBudget
- бюджет проєктуParameters
- важливі параметри проєкту
- Опис результатів
- Бонус: Гугл Календар проєктних подій
- Запуск застосунку
- Посилання
Власне цю роботу зі створення фінансового помісячного плану індивідуальних виплат і витрат за кожною окремою статтею бюджету виконує цей застосунок. А саме, з календарного плану робіт з розподілом участі виконавців та з врахуванням індивідуальних ставок застосунок розраховує і генерує:
- Загальний сумарний розподіл індивідуальних трудовитрат і виплат
- Щомісячні індивідуальні виплати виконавцям впродовж всього проєкту
- Щомісячні індивідуальні трудові витрати виконавців у люд*днях впродовж всього проєкту
- Щомісячні витрати за окремими основними статтями бюджету впродовж всього проєкту
- У якості бонусу застосунок генерує таблицю дат подій для імпорту до Гугл Календаря
Вхідні дані формуються у вигляді Ексель-файлу і описані на прикладі уявного проєкту. Приклад файлу вхідних даних Task schedule (template).xlsx
розташований у субфолдері ./data/
.
Файл вхідних даних містить п’ять таблиць (аркушів):
Task schedule
- календарний план завдань з розподілом участі виконавцівTask types
- тип завдань за характером нарахування витрат: пропорційне (prop
) і готівка (cache
)Team
- список виконавців із встановленими ставками у проєктіBudget
- постатейний бюджет проєктуParameters
- важливі параметри проєкту
Таблиця календарного плану складається з таких груп полів:
Група індексації включає такі колонки:
Tsk idx
- внутрішній індекс завдання,WP
- робочий пакет, до якого відноситься завдання,Cat
- категорія завдання (див. таблицюTask types
),Level
- рівень завдання в ієрархії,Task/Deliv #
- номер завдання в проєкті
Значення у стовпчику Cat
вводяться через спадний список (що прив'язаний до однойменного стовпчика з таблиці Task types
) для уникнення введення помилкових значень. Також необхідно уважно слідкувати за відповідністю значень у стовпчику Cat
типу завдання, що вводите (prop
або cache
).
Група стовпчиків (часового) графіку робіт включає:
DateStart
- дата початку завданняDateEnd
- дата завершення завданняDuration
- кількість роб днів (тут закладена формула в таблиці, отже нічого поправляти не потрібно, тим більше, що застосунок не бере це поле до уваги і обчислює кількість робочих днів самостійно)
⚠️ Під час введення нових завдань залишайте (або копіюйте) формулу в стовпчикуDuration
. Це важливо для контролю правильності введених дат, а також уникнення помилок (дати можуть бути введені з помилкою і застосунок обов'язково спотикнеться об них).
Стовпчик Cache
зазначає конкретну суму коштів на виконання завдання (типу cache
) (див. таблицю Task types
).
Група індивідуальних внесків складається зі стовпчиків з короткими іменами (Nick
) виконавців. Кожному з виконавців конкретного завдання призначається участь у виконанні цього завдання у відносних величинах від 0 до 100, що означає пропорційну частку робочих днів (зв стовпчика Duration
) на це завдання, яку витрачає цей виконавець.
⚠️ Застосунок враховує всю сукупність внесків від всіх виконавців для всіх завдань і перенормовує їх таким чином, щоб сума нарахувань на оплату праці складала в точності статті бюджетуPersonnel costs
(див. таблицюBudget
)ℹ️ В цій групі кількість колонок користувачів можна зменшувати / збільшувати за умов, що: 1) короткі імена користувачів і їхня кількість точно збігаються з їхніми іменами зі стовпчика
Nick
в таблиціTeam
, 2) короткі імена мають бути унікальними між собою, а також з назвами інших стовпчиків всіх інших таблиць файлу вхідних даних.
Стовпчик Description of task
містить назву завдання.
Ця таблиця містить формалізований опис типів завдань за характером нарахування витрат: пропорційне (prop
) і готівкою (cache
). Значення зі стовпчика Cat
ви використовуєте у для позначення типу завдання у календарному плані (Task schedule
) у відповідному полі Cat
.
Ви можете експериментувати і вводити нові унікальні типи завдань з єдиною умовою — у колонці Type
можна вписувати лише одне з двох значень: prop
або cache
.
Список виконавців не потребує багато пояснень. Всі поля самоочевидні.
Лише деякі коментарі:
- стовпчик
Nick
використовується також у таблиціTask schedule
, отже потрібна повна відповідність цих імен там і тут; - серед ставок за годину, за роб. день і за місяць основою є перша — решта пов’язані простими формулами; окрім того, краще не базуватись на місячну ставку через відмінність кількості робочих днів у кожному місяці; натомість варто будувати власні розрахунки на погодинній або денній ставці;
- у таблиці можна збільшувати зменшувати кількість рядків.
В таблиці бюджету фіксовано використовується Personnel costs
і його значення. Таблиця важлива ще для збалансування ваших планових витрат, тобто фінансові щомісячні (щоквартальні, щорічні) показники витрат сумарно мають збігтися з повним бюджетом. Але це ваша ручна робота. І це правильно - не довіряйте будь-кому (або будь-чому) розподіляти ваші кошти за вас, інакше вас немає.
Таблиця важливих параметрів проєкту не потребує пояснень, наприклад:
Working hour / day
– 8 (кількість робочих годин у дні)Working day / month
– 22 (номінальна кількість робочих днів у місяці)Start date
– 01.01.2023 (дата початку проєкту)End date
– 01.01.2027 (дата завершення проєкту)Overhead
– 25% (відсоток накладних від суми всіх прямих витрат)Project acronym
— ZSUV (акронім проєкту)
В таблиці можна правити лише значення у правій колонці Value
.
У європейських проєктах зазвичай контролюються трудовитрати у робочих пакетах як в цілому за проєкт, так і для кожного партнера-учасника:
wp
– скорочене позначення робочого пакету, мають відповідати позначенням з таблиціTask schedule
в колонціWP
pm
– загальні трудовитрати у робочому пекеті в люд*міс
Результат роботи застосунку зберігається у новому ексель-файлі, в імені якого до імені вхідного файлу додається суфікс _finplan
. Тобто вихідний файл розташований біля вхідного, де б останній не був. В якості тестового прикладу у субфолдері ./data/
репозитарію є приклад файлу вхідних даних Task schedule (template).xlsx
і поруч з ним фінплан, згенерований цим застосунком, Task schedule (template)_finplan.xlsx
.
ℹ️ Приклад файлу вхідних даних
Task schedule (template).xlsx
можна використовувати в якості шаблону.
Вихідний файл містить п’ять таблиць:
Personal contribution
– загальний сумарний розподіл індивідуальних трудовитрат і виплат;Monthly pers payment, Euro
– щомісячні індивідуальні виплати виконавцям впродовж всього проєкту;Tabel, pers-day
– щомісячні індивідуальні трудові витрати виконавців у людино*днях впродовж всього проєкту;All monthly payments
– щомісячні витрати за окремими основними статтями бюджету впродовж всього проєкту;Google calendar
- календар початку і завершення завдань для імпорту до Гугл Календаря.
ℹ️ Документ згенерований застосунком і, тому, охайно не сформатований. Отже форматування треба зробити власноруч. Особливо важливо згрупувати стовпчики по кварталах і роках (в Екселі це робиться з допомогою
Дані / Групувати
) - таким чином ви зможете зручно переглядати квартальні та річні зведення. В якості прикладу в субфолдері./data/
репозитарію розміщений належним чином сформатований вручну фінансовий планTask schedule (template)_finplan_formatted.xlsx
.
Окремий Гугл Календар проєктних подій дуже корисна штука, особливо якщо цей календар поширити на членів команди. Назва кожної календарної події містить скорочену назву (акронім) проєкту, номер завдання і зазначення, що то є початок або завершення завдання. В описі розміщена повна назва завдання і перелік скорочених імен виконавців.
Перед імпортом до Гугл Календаря потрібно експортувати таблицю Google calendar
з результуючого фінплану у вигляді CSV-файлу. Потім цей CSV-файл можна імпортувати до Гугл Календаря. Ця процедура простою мовою і докладно описана у відео.
Приклад такого календаря, готового до імпорту, представлений тут же у репозитарії ./data/Task schedule (template)_calendar.csv
.
Імпортований гугл календар має сенс поширити на членів команди через налаштування на доступ у самому календарі.
Застосунок, що генерує всі ці корисні штуки, розроблений на базі Python. Основна програма для запуску застосунку — fin_plan.py
.
Для запуску застосунку необхідно мати встановлений на комп’ютері Python.
Потрібно також скачати репозитарій застосунку з github і розгорнути його в окремому фолдері.
Запуск здійснюється з командного рядка наступним чином:
> python <path/>fin_plan.py <path/data_file>.xlsx
Результат роботи застосунку зберігається у новому ексель-файлі, в імені якого до імені вхідного файлу додається суфікс _finplan
:
<path/data_file>_finplan.xlsx
ℹ️ Лайф-гак (life-hack) як зручніше запустити застосунок у Віндовс.
Відкрийте три наступних вікна:
- термінал командного рядка
cmd
;- файловий провідник з відкритим фолдером застосунку
finplan
;- файловий провідник з відкритим фолдером, де розташований Ексель-файл вхідних даних вашого проєкту.
У вікні (1) набираєте
python
і пробіл. З вікна (2) застосунку тягнете файлfin_plan.py
у вікно (1), додаєте пробіл в останньому. Потім тягнете з вікна (3) ексель-файл вхідних даних до того ж вікна (1). Нарешті натискаєте .Чекаєте безпомилкового завершення виконання застосунку. Дивитесь на результат у вікні (3).
Код застосунку з прикладом вхідних даних і результатів розташований у репозитарії github.
Ключові слова: Finance
, Project Management
, Planning
, Python