Catalyst How-To’s#

Time Tracking Overview#

At Catalyst, we use Harvest for time tracking. We’ll add each member and contractor into our harvest account - each new person will need to complete the login setup with their credentials. Harvest has a slew of integrations to make it easy for you to start time tracking in real time in whatever ways work best for you. We highly recommend doing real-time tracking. Our time entries go directly into invoicing clients and payroll, so we try our darndest to get it right the first time.

Once you get signed into harvest for the first time, go through their welcome/tutorials if you want to get a good sense of the mechanics.

When you start a new time entry there are three pieces of information you’ll need to provide in addition to the time: the Project name, the type of Task, and a brief Note describing what you did.

How to Bill Recurring Meetings#


Harvest Project

Harvest Task


PUDL Huddle

PUDL Huddle

Weekly Check-in

PUDL Huddle

PUDL Huddle

Sprint Review / Planning

Project Management

Sprint Management

3 and 6-month check-in

Onboarding [NAME]

Phone / Meeting

Financial Check-in


Phone / Meeting

Biz Dev Check-in

Business Development

Phone / Meeting


Business Development

Phone / Meeting

Board Meeting


Phone / Meeting

Advisory Committee

Advisory Committee

Phone / Meeting

Choosing Projects#

Projects are grouped by the particular client, grant, or internal work they pertain to. Headers such as RMI, Sloan, or Internal, will precede a list of related projects you can choose from in a drop down menu. Whenever we take on new projects we add them to Harvest.

We don’t automatically assign everyone to every project, so if there is a project that you expect to be there, just ask! Especially in the early days, don’t hesitate to ask questions about what should be billed to which project. For example, if you are providing feedback or reviewing code from a project you’re not directly involved with, you might have to ask to be assigned to that project to bill that chunk of time accordingly.

Most projects have a hourly budgets (monthly repeating or overall budgets) that we try to stay within. Feel free to look.

How to Bill Internal Projects#

Categorizing hours worked on internal projects can be a little harder than client or grant work. For example, how might you charge the hour you spent researching grant opportunities? Here’s a description of the internal project options and how to decide between them:

  • Advisory Committee: This is reserved for the planning, agenda writing, and hosting of the quarterly advisory committee meeting.

  • Admin: You know… administrative work. This includes running payroll, financial reporting, invoicing clients, doing grant paperwork, and reorganizing the google drive.

  • Business Development: This is for general marketing/communications work, website additions, grant research, and work to make new relationships with folks that could be potential clients or collaborators.

  • Governance: This is for special member meetings and board calls.

  • Hours Bike Rack

  • New Cat Member Search: Any work related to finding new coop members/contractors. This includes all outreach, job descriptions, interviews, applicant review.

  • Old Cats: For things like existing member feedback.

  • Onboarding [NAME]: We specific onboarding projects for each new teammate. These are for both the new teammate and the existing members to bill for helping a specific newbie get up and running, and conducting 3 and 6 month check-ins. New members should bill to the onboarding category that includes their name.

  • Onboarding/Setup: This generic onboarding project shall be used for non-specific onboarding planning objectives such as creating a list of tools for new recruits.

  • Project Management: When paired with the “sprint management” task, this project is used for our bi-weekly sprint planning and sprint recap meetings. Otherwise, it is used for other efforts such as discussing our use of GitHub or other project management tools.

  • PUDL Huddle: Get it?! it rhymes. This is for our daily standup calls, and weekly action-item meetings.

  • User Support: For interacting with PUDL users and conducting PUDL office hours.

Choosing Tasks#

Once you’ve selected a project, you must also specify the type of task (e.g. Code Review, Data Wrangling, or Phone / Meeting). These help us understand what types of tasks we are spending time on. These should be pretty straightforward and self explanatory, but again don’t hesitate to ask about them or suggest changes. Not every project has every task listed as an option in the dropdown menu in Harvest. If you see a task here that ought to be an option for a project (or ought not to be an option for a project) feel free to fix it or let someone on the Admin team know. It’s generally good practice not to add new categories mid-project unless everyone agrees.

Tasks Descriptions and Intended Use#

  • Accounting / Bookkeeping: Recurring financial administration tasks such as categorizing expenses, writing journal entries, reconciling accounts, and making transfers. Grant-related accounting and annual tax preparation with our accountant.- Administrative Correspondence: Reading, replying to, and managing external correspondence, particularly from government agencies regarding legal obligations etc.

  • Blog / Social Media / Website: Any actions pertaining to Catalyst blogs, social media presence, or website.

  • Business systems account administration: Handling issues related to the systems that the cooperative depends upon for basic functions, such as payroll, email, and time tracking.

  • Code Documentation: Reserved for writing doc strings, jupyter markdown, rst files, or metadata, updating example notebooks, etc. pertaining to code that you or others have written.

  • Code Review: Anytime you are asked to provide feedback, whether informally or in the form of a pull request, on someone else’s code. Changes to the code as a result of feedback are /not/ code review. Calls to discuss PRs can be considered code review.

  • Code Testing: Designing or running tests for any code relevant to Catalyst work.

  • Data Compilation: The more manual data acquisition of data, e.g. scraping PDFs, pulling state-level data from websites into a machine readable format.

  • Data Wrangling & Analysis: Coding and Excel work that pertains to data analysis and/or tweaks within the current software architecture. Some examples include: making example notebooks or adding new years of data.

  • Financial Reporting: Organizing data, creating tables and charts, and communicating monthly financial reports or other reporting for grants or tax filings.

  • Governance-related administration: Any activities related to internal governance in preparation for board meetings or other meetings of the cooperative.

  • Infrastructure Management: Code and planning that pertains to the build out of the underlying infrastructure of PUDL.

  • Invoicing: Creating, editing, reviewing, and sending invoices.

  • Email / Chat: Any messaging with co-workers, clients, prospective clients, or anyone regarding topics that are relevant to Catalyst work.

  • Packaging / Release: All work pertaining to an impending software or data release and/or python packaging requirements.

  • Payroll: Paying employees and contractors, submitting Vanguard contributions.

  • Phone / Meeting: Any calls or virtual meetings with co-workers, clients, prospective clients, or anyone regarding topics that are relevant to Catalyst work. Sometimes pointed meetings surrounding software design or code review, for example, will be charged to those tasks. Meetings should have clear expectations as to how they should be billed.

  • Presentation / Conference Prep & Attendance: Any presentation prep and attendance of conferences. Note that travel is a separate category. Presentations must be given to an audience outside of Catalyst. In other words, don’t use this category if you’re preparing a talk just for us.

  • Project Management: Work related to the

  • PUDL Huddle / Board Meeting: Only used for our daily check-ins and weekly board meetings.

  • Research & Background Reading: Whenever you’re attempting to learn more about a topic related to a given project. Generally speaking, this task does not involve code.

  • Scheduling / Calendar maintenance: Scheduling and calendar maintenance!

  • Software & Data Design / Architecture: Higher level technical planning that has to be done to design software and data structures. E.g. designing APIs, class responsibilities, database table normalization schemes.

  • Software Development: Fundamental alterations to the underlying architecture of the ETL. Some examples include revamping the harvesting process, updating the metadata structure, and integrating prefect.

  • Sprint Management: Used for sprint planning and review meetings as well as issue creation, backlog review.

  • Travel: Catalyst approved travel time.

  • Writing (non-code): Any time you are writing sentences vs. code. Some examples are: writing proposals, writing meeting agendas, editing bylaws or other core documents, or writing grants. Note that blog posts and other social media activities have their own specific task within the Business Development Project. Conference/Presentation prep also has its own task.

Notes about Notes#

The Notes field is used to populate work descriptions that are reviewed internally and, for external projects, will appear on customer invoices. Because these Notes may show up on customer’s invoices, it’s important that they follow uniform conventions and are easy to understand. Notes should describe specific actions. These Notes should:

  • Use active verbs in the present tense (e.g. “Review depreciation study” rather than “depreciation work”). Use imperatives rather than gerunds (e.g. “Create function for FERC data” rather than “Creating function for FERC data”).

    • A good rule of thumb after you’ve written your note is to ask yourself, “Does this note contain a verb?”

  • Separate different but related activities with a semicolon (e.g. “Review depreciation study; summarize findings”).

  • Be detailed and avoid lingo, particularly for client-facing projects, so that the reader can understand what took place.

  • Do not end notes with a period.

General Rules for Tracking Time#

  • As much as possible, separate time entries should be used for separate activities. It’s helpful for us to know how much time we are spending doing research, for example, as opposed to software development, for a given client. If a client has questions or concerns about time entries, it is helpful to have more granular time entries rather than less granular time entries.

  • Time entries should not include long breaks or meals (e.g. if you are working on something and take a break for lunch, end the time entry and add a note). It’s OK to go to the bathroom! In fact, stay hydrated and drink some more water right now.

  • Time entries are retroactively editable until they are processed and locked at the end of the month. If you need to make changes after this point, contact our Admin team.

Tracking PTO#

You can find out how much PTO you have accrued by logging in to your gusto account and clicking on the “Time Off” menu option. If you want to use your PTO, email Ben and let him know the specifics. Make sure to contact him about applying PTO in or before the month you want to receive it.

Insights from Catalyst Time#

Harvest has nice dashboards for projects that we use to understand how specific projects are progressing and reports show a broader overall picture.

We have two main places where we ingest harvest hours. This spreadsheet is where we have nightly pulls of the harvest data living. We do quarterly time budgeting and tracking here.

This dashboard is our place which attempts to show where we are spending our time (this is more experimental, fyi).