Our goal in our Pipedrive implementations is to help you get the maximum ROI from the platform. To achieve this, you need three things:
- A number of rich data points in your Pipedrive account
- Automation that uses this rich data to streamline as many of your unique business processes as possible
- Data quality and validation rules to maintain high data quality in your Pipedrive account over time
What underlies all three is a robust account structure.
In this article, we set aside advanced reports, filtering, and integrations to focus exclusively on the key aspects of building a strong account structure. We’ll share insights on how setting up a robust account as part of the Pipedrive Booster 2.0—our Pipedrive implementation package—helped us build high-ROI Pipedrive accounts that leverage external data feeds.
What is account structure and why the default one in Pipedrive is not ideal
Account structure is essentially the schema of the database on which your Pipedrive account is built. By customizing this schema, you’re tailoring the data your Pipedrive account can hold and the data available for automations and reports.
When you first sign up for Pipedrive, an initial default account structure is automatically created for you, including a basic pipeline, stages, and deal fields. Generic workflows, sales emails, and campaigns will use only default information, and the reports you see will also consist of default breakdowns rather than those specific to your business. This structure does not represent anything unique about your business and its processes, so relying on it is a surefire way to achieve a rather bleak ROI from your Pipedrive implementation.
What does a Pipedrive account structure actually consist of?
The Pipedrive account structure consists of the following elements:
- Entity schemas
Entities are the main Pipedrive objects and include leads, deals, contacts (organizations and persons), and projects. Entity schemas define what fields you have on your entities, both default and custom.
- Labels (lead labels)
Labels describe the engagement levels and qualification statuses of your leads.
- Pipelines, stages, and their configuration
The pipeline structure includes pipelines, stages, rotting levels at various deal stages, and the stage-specific probability of winning a deal.
- Activities
The activity structure determines the set of activities you can perform on any entity.
- Lost reasons
Lost reasons explain why a deal was lost.
Some might argue that projects, permission sets, and visibility groups also make up the account structure, but to us, they’re more about security than business features that directly impact ROI. Let’s discuss how to make the most of each part of the account structure with Pipedrive.
Building the structure of the entity schemas
To manipulate custom fields on Pipedrive entities, you must have Global Admin permission. Read our article on Pipedrive permission sets to learn more.
In Pipedrive, you can adapt the structure of entities to meet your business needs with custom data fields. There are 16 different types of custom fields available for each entity type.
Short text
Text with a length of up to 255 characters.
Purpose: Capturing various categories, labels, and short summaries.
Example custom fields:
- Short notes
- Key comments and labels
- Custom categories and tags
- Job titles
- Website URLs
- Statuses of qualification
- Levels of engagement
- Additional email addresses
- Order, deal, or project key requirements
- Customer preferences or constraints
- Lead sources and marketing campaigns
- Ad identifiers
- Unique person or deal identifiers
Long text
Text longer than 255 characters.
Purpose: Capturing the full context of the deal or entity through free-form text entry.
Example custom fields:
- Long notes and detailed characteristics of entities and deals
- Summaries of interactions with deals and other entities, including questions they’ve had
- Automated summaries of sales calls or other heavily contextual data
- Sample sales strategies for specific deals
- Customer’s extensive requirements, special needs, limitations, and constraints
- Customer feedback, ingested automatically or manually
Single option
A list of predefined values (a maximum of 500 values allowed), where only one can be selected.
Purpose: Capturing short labels from the set of predefined values without the option for free-form entry.
Example custom fields:
- Categories
- Tags
- Job titles
- Locations or markets for specialization if you have multiple sales teams
- Company size or range of sizes
- Industry
- Key pain point criteria
- Qualification states
- Horizon of implementation
Multiple options
A list of predefined values where multiple can be selected.
Purpose: Associating an entity such as deal or lead with a set of predefined labels or validating it against a set of multiple criteria.
Example custom fields:
- Competitors
- Industries
- Pain points
- Qualification criteria
- Selected product features, configurations, and add-on’s
- Subscription pricing plans
- Customer interests
- Preferred communication methods with customers
Autocomplete
Up to 255 characters; autofills based on the previously entered values.
Purpose: Best for items that should not rely exclusively on free-form entry to ensure maximum data quality through input validation. Autocomplete ensures consistent data without being overly restrictive with a closed-ended list of options.
Example custom fields:
- Tags
- Project codes
- Custom categories
- Vendor or partner company names
- Event names
Numerical
Representing numerical values.
Purpose: Used primarily to identify high-value prospects, quantify their engagement and value (including predictive value), and capture numerical identifiers and links to other systems.
Example custom fields:
- Scores, e.g. engagement score and qualification score
- Rankings, e.g. customer maturity scale
- Numerical deal or order configurations
- Estimations as to the workload to manage the deal
- Targets
- Performance metrics
- Priorities
- Identifiers
Monetary
Represents monetary amounts in the default currency configured for the Pipedrive account.
Example custom fields:
- Monetary values in various currencies
- Commissions
- Estimates
- Costs
- Intermediate values for deal valuation
- Customer lifetime value
User
Links a Pipedrive user (regular or admin) with the entity.
Purpose: Helps associate your Pipedrive users, other than the deal owner, with entities in Pipedrive. It is typically used for assigning responsibilities related to the sales process and facilitating team collaboration on a deal.
Example custom fields:
- Assistants
- Secondary deal or contact owners
- People from different teams who may be involved in the deal process, e.g., from customer success or technology
- Account managers
- Project leads
- Key decision makers
- Support contacts
Organization
Links a Pipedrive organization related to the entity.
Purpose: Used for clearly mapping the stakeholders involved in managing the deal, including partner companies and joint ventures.
Example custom fields:
- Partners
- Similar companies or competitors
- Related or secondary parties
- Parent companies
- Subsidiaries
- Industry associations
- Joint venture partners
- Service providers or subcontractors
- Affiliate organizations
Person
Tags a Pipedrive Person (the key entity object) related to a specific other entity, e.g. deal or project.
Purpose: Used for mapping all potential persons and contacts who may be involved in processing a deal.
Example custom fields:
- Secondary or fallback deal contact
- People involved in making a decision
- Key decision makers
Phone
Phone number or Skype name.
Purpose: Captures additional or fallback phone numbers that can be used in deal processing and streamlines communication with clients through click-to-call integration.
Example custom fields:
- Secondary Skype names
- Secondary phone numbers
- Primary phone number for linked items
- Office phone numbers
- Mobile phone numbers
- Fax numbers
- Alternative contact numbers
- Emergency contact numbers
Time
Represents the time dimension in the 12-hour clock format (e.g., 11 AM) that can be associated with entities. Time will be reported in the default time zone set in the Pipedrive account settings.
Purpose: This feature is used for capturing the timing of crucial interactions with an entity, including meeting schedules, deadlines, and precise timings for calls and deliveries. It improves punctuality and, when used with Pipedrive automations, can trigger notifications and reminders.
Example custom fields:
- Delivery time
- Lunchtime
- Appointment time
- Follow-up call time
- Event start and end times
- Hourly deadline for tasks or projects
- Time of last contact
- Scheduled review times
- Expected response time
Time range
Represents a time range using two Time objects: a starting time and an ending time (e.g., 10:30 AM – 11:30 AM). The time format will match the default time zone set in the Pipedrive account.
Purpose: Used to represent optimal time ranges for better scheduling.
Example custom fields:
- Office hour times
- Best time range to contact
- Available meeting periods
- Peak business hours
- Support availability windows
Date
Represents a date. The format will use the default date format set in your Pipedrive account settings.
Purpose: Helps record key dates and deadlines in the sales cycle. Can be used to synchronize marketing and sales campaigns for timely messages. It is useful for custom reporting and building time-based metrics. It enhances automation by facilitating smooth communication of next steps with deals.
Example custom fields:
- Delivery date
- State change date
- Deadline
- Qualified date
- Appointment date
- Follow-up date
- Contract start date
- Contract end date
- Renewal date
- Event date
Date range
Range of dates.
Purpose: Records the timelines related to a specific entity. Useful for tracking periods within which events or activities occur, facilitating better scheduling and planning.
Example custom fields:
- Event dates
- Completion estimates
- Holidays
- Project timelines
- Onboarding periods
- Estimated length of cooperation
Address
Full address configured to be displayed on Google Maps within the Pipedrive interface.
Purpose: Shows the locations related to the organization you’re working with. This is especially important if you conduct offline sales and product presentations, as capturing this information can help automate the planning of optimal trips for the sales rep. It is crucial to store one complete address in a single custom field, rather than breaking it into partial entries across various fields. Addresses are sourced from Google Autocomplete.
Example custom fields:
- Organization addresses, including subsidiaries
- Office locations
- Branch addresses
- Partner or vendor locations
- Event venues
- Customer site addresses
- Delivery addresses
- Warehouse locations
- Service center addresses
- Regional office addresses
A few special considerations about Pipedrive custom field schema
Selecting a custom field data type is just the first step. For each custom field you create, you also need to answer three additional questions:
- What permissions should specific groups of users have for this field?
- Should this field be universally available, or hidden in certain pipelines or stages?
- Should any special quality rules be applied to this field?
In our implementations, we always set up two main sets of custom fields for each entity: automatically populated and manually populated. Auto-populated fields result from Pipedrive enriching your system with data, such as smart deal information. More critically, however, we use them to capture data calculated automatically by our custom-built Pipedrive analytical backend, which we always deploy for our clients. For illustration, in one of our past projects, we used this backend to automatically calculate the deal value and save it in multiple currencies, converted instantly. This would not have been possible without the custom fields.
When it comes to manual fields, while we’d love to automate all of them, that’s not always feasible, and there will always be some fields that need to be populated by your team members. In those cases, we use free-form entry fields as a last resort and typically start by using autocomplete, single input, or multiple input fields to ensure the highest possible data quality.
Custom fields permissions
Each custom field can be either read-only or editable. The ability to edit a custom field can be restricted to specific permission sets related to its entity. For example, if you’re setting a custom field for deals, you can limit the ability to edit this field to deal admin permission sets or deal regular user permission sets.
The rule of thumb is to always use the minimum permission needed for regular usage. In our implementations, custom fields that are automatically populated as a result of our backend process—generating data points to be saved in them—are always set to read-only for all regular users in the account. This prevents interference with the backend analytical process that prepares and provides data for deal enrichment and calculations. For fields involved in internal automation workflows, we typically use them as read-only or apply specific data validation input. Deal manual fields are usually restricted to users with deal regular user permission sets, preventing non-sales users from editing them.
Custom field visibility
Each custom field for any entity can be hidden from its own detail view. Custom fields related to contacts can also be hidden from the leads and deals detail view. Additionally, custom fields created for leads or deals can be hidden from specific pipelines and deal stages.
Hiding lead or deal custom fields for specific pipelines can be useful if the data points needed for the deal schema change during the subsequent steps of your sales process.
Custom field quality rules
The final level of control you have over your custom fields is their type—standard, required, or important. Standard fields are displayed and edited without any special rules applied.
Required custom fields must be filled out whenever the entity object is added. The required fields feature is only available on Professional and higher plans. Setting up and editing the required fields can only be done by global admin users.
Important custom fields can be left unfilled, but this will result in visual cues prompting you to populate them. The important fields feature is only available on Advanced and higher plans.
Custom field quality features build on previous settings, allowing you to make certain lead or deal fields required only for specific leads or deals.
Formula fields
Formula fields are available for deals only, but they can be made with the custom fields of both leads and deals. They work for numerical and monetary fields. This feature is only available on Professional and higher plans.
Formula fields can only perform arithmetic operations and are not suitable for tasks requiring complex logic. For advanced calculations, especially those involving third-party data feeds, we use our own analytics backend which comes as a part of the Pipedrive Booster 2.0 implementation package, and manages advanced custom calculations. The analytical backend can even be deployed in a dedicated cloud environment.
Values in formula fields can be applied retroactively to all deals using the “Force Recalculate” option. Some caution is required with using this option though.
Custom field groups
Finally, all custom fields should be organized into themed custom field groups. These groups are clearly visible and well-formatted in the detail view of each entity in the Pipedrive interface, making the experience much better for the end users. Practice using them extensively. In particular, non-editable fields should be placed in their own group to avoid confusion. Please note that organizing custom fields by editing custom field groups is only available to users with the “Edit custom fields setup” permission enabled.
Deal pipelines and stages
A deal pipeline is a visual representation of your sales process and its key steps. It is essentially an ordered collection of stages, which is clearly evidenced in Pipedrive’s API, where each stage is identified simply as a consecutive natural number.
There are four cardinal rules that should be followed in your Pipedrive account structure to ensure efficiency and maximize ROI:
- Pipelines are one-directional without loops, with clear qualification criteria for each stage.
- Pipelines are for open deals.
- Deals in stages must reflect reality and be updated without delays.
- One sales process comes with one end-to-end pipeline.
Even more important than the above is ensuring that your Pipedrive account accurately reflects the key moments of what happens with the deal. If your Pipedrive account lags behind reality, you won’t be able to rely on reports and other features that depend on the data you generate in the system.
Pipelines are one-directional and stages in the pipeline should have clear entry rules
Deals in Pipedrive pipelines flow in only one direction, without loops, with each stage representing a step closer to the sale. To avoid loops and the movement of deals back and forth, which can confuse their actual value and their place in the sales process, you need to have clear qualification rules. This starts with determining what constitutes a marketing qualified lead and then a sales qualified lead, and capturing these qualification criteria in custom fields, which can lead to automated movements of deals across stages. Doing so will help maintain the quality of your data in Pipedrive and remove ambiguity and subjectivity, resulting in a system that can be truly trusted.
Pipelines are for open deals only, and should not include won or lost deals
If a deal is won or closed, it is no longer part of the deal pipeline and should be marked accordingly so that Pipedrive can remove it from the pipeline.
Additionally, make sure to move deals between stages in a timely manner and avoid leaving leads as “zombie leads” in the pipeline.
The importance of this is evident when inspecting the Pipedrive API endpoints. For example, consider the GET /v1/pipelines/{id}/movement_statistics
endpoint, which provides deal pipeline metrics.
Here’s a sample response it returns:
{
"success": true,
"data": {
"movements_between_stages": {
"count": 1
},
"new_deals": {
"count": 1,
"deals_ids": [1, 2],
"values": {
"USD": 10
},
"formatted_values": {
"USD": "US$10"
}
},
"deals_left_open": {
"count": 1,
"deals_ids": [1, 2],
"values": {
"USD": 10
},
"formatted_values": {
"USD": "US$10"
}
},
"won_deals": {
"count": 1,
"deals_ids": [1, 2],
"values": {
"USD": 10
},
"formatted_values": {
"USD": "US$10"
}
},
"lost_deals": {
"count": 1,
"deals_ids": [1, 2],
"values": {
"USD": 10
},
"formatted_values": {
"USD": "US$10"
}
},
"average_age_in_days": {
"across_all_stages": 2,
"by_stages": [
{
"stage_id": 10,
"value": 15
}
]
}
}
}
The Pipedrive API calculates metrics such as deals_left_open
and average_age_in_days
across all stages. These metrics are used in reports and are also used in the Sales Assistant. They can be negatively impacted if deals are left unattended in the pipeline.
Stages are not for archiving your deals
We often see companies use a catch-all stage for won or lost deals, or even for “zombie leads,” which can lead to deals never being marked as won or lost. This usually results from a poorly designed deal schema, sales process, deal/lead qualification process, or wrong visibility settings. Such practices can negatively impact downstream reports generated from Pipedrive data, whether in the Insights module or custom reports based on data pulled from the API (since the Insights module likely reads data from the same endpoints available via the API).
For example, the GET /v1/pipelines/{id}/conversion_statistics
endpoint of the Pipedrive API returns stage-to-stage conversion and pipeline-to-close rates for the specified time period. The response is formatted as follows:
{
"success": true,
"data": {
"stage_conversions": [
{
"from_stage_id": 1,
"to_stage_id": 2,
"conversion_rate": 0
}
],
"won_conversion": 0,
"lost_conversion": 0
}
}
For this data to be meaningful, each consecutive pair of stages should show fewer leads as they progress toward being won. Using a catch-all stage in the pipeline will result in nonsensical data.
Only one pipeline per complete sales process
Another common issue we see is companies breaking their complete sales process for a single product into multiple Pipedrive pipelines and moving deals between these pipelines. This often results from overcomplicating the sales pipelines, particularly by creating pipeline stages to capture information that could be effectively captured with custom fields. This approach negatively impacts other aspects of the pipeline, similar to previous issues. To account for the variety of leads and deals related to a single product, you should create a comprehensive deal schema and use custom fields to capture the necessary details. Each deal should exit the pipeline as either a won or lost deal.
Don’t use default stage probabilities and rotting rules
Customize deal stage names, deal rotting, and the probability of closing. The deal rotting feature highlights deals that have been sitting in the pipeline for too long. The second feature, which applies only if you add a stage to the pipeline with a configured probability-weighted deal value, determines the likelihood of a deal being closed given that it is currently at this stage. Since you can only assign one probability to each stage, the key to ensure this value makes sense, is to have clear qualification criteria for entry into the stage so that all deals are roughly at the same sales stage.
Leads and lead labels
In Pipedrive, many focus on deals, but leads often receive less attention. Clearly defining the criteria for leads, deals, and the conversion between them is crucial for a high-ROI Pipedrive implementation.
Ensure end-to-end lead lifecycle
Leads are potential deals stored in the Leads Inbox until they are archived or converted. Each lead must have a name (using the title field) and be linked to a person or organization.
The lead lifecycle in Pipedrive includes adding, qualifying or disqualifying, archiving, or converting to a deal. It’s essential to follow this lifecycle to ensure that leads do not remain in your inbox indefinitely. Keeping leads forever can eventually make your Pipedrive account hard to work with.
Use lead labels for filtering
All custom fields you create for deals are available for leads and vice versa. The only unique element of the lead structure is lead labels, which allow you to categorize leads visually and can drastically improve your automations.
By default, Pipedrive offers three lead labels: hot, cold, and warm. While these labels help assess lead engagement, they don’t clearly express the stage of the lead lifecycle. For example, multiple “hot” leads might appear highly engaged, but they may not even be qualified yet and thus can’t be converted to deals.
When we implement Pipedrive accounts, we recommend following our approach outlined in the Pipedrive Booster package and adding a few additional labels, such as prequalified, qualified, and disqualified, resulting in a total of six lead labels. This approach works well because, in the lead detail view, filters, and other components, you can assign more than one label, giving you a clearer picture of the lead’s engagement and progress. Combinations such as cold-qualified, hot-prequalified, etc., provide better insights.
Assuming you have a rich lead/deal entity structure, and your Pipedrive is supported by an external analytics backend, as in our Pipedrive Booster package, you will be able to automate the assignment of these labels using intricate logic based on any number of Pipedrive’s and external data points, including external APIs. For example, you can automatically label leads from outside your geography as disqualified or label them as hot based on email validation scores. This custom schema, combined with custom logic for assigning lead labels, provides clarity and scalability for your marketing efforts. Looking ahead to the developments in AI, it will be crucial for your Pipedrive to have its own backend analytics that can prepare data, run calculations, and provide rich data points to the account.
Additionally, well-defined lead labels enable you to filter leads in your views by multiple labels, which we will cover in a separate article.
Structuring your activities
Activities are actions you take towards the sale, starting from the very early stages. If you have your calendar synced with Pipedrive, these activities will also be added to your calendar.
Take time to design the custom activity schema
Your activities should capture the full entity lifecycle in the context of what actions are performed on them, just as we’ve discussed with leads, from the acquisition of a new contact, through lead qualification and creation, all the way to closing the sale. This should cover not just the period when the lead is converted to a deal. Each entity can have its own scheduled activities, but associating an activity with a deal, lead, or project will also link it to the associated person and/or organization.
Creating a proper activity schema that represents how your team works on contacts and deals throughout the lifecycle is crucial. It will help you accurately gauge how advanced a given opportunity is and enable you to create customized activity goal reports in the Insights module. You’ll be able to measure the number of activities created and completed and see if they align with your goals. Combined with extensive entity schemas for contacts and deals, it will also provide more insight into the amount of work needed to progress an opportunity.
Remember to name your activities in a way that’s understandable to everyone on your Pipedrive account, including management who will review reports. Activities are frequently displayed in any detail view, whether for a deal or lead, and also in the contact lifecycle view, so they should be named in a way that accurately represents what was done. Activities can also trigger automations, including campaign automations. The activity timeline of an entity also shows planned activities.
There are specific overlaps between custom fields and activities. A good practice is to use custom fields calculated as formula fields in Pipedrive, which can perform simple operations on the number of activities.
Step-by-step to creating custom activities
Before you start creating your custom activity schema, make sure you have global admin permissions.
Creating a new custom activity type is straightforward. You just need to enter the custom activity types with their own icons to tailor Pipedrive to your business needs.
To create a new activity type in Pipedrive:
- Go to Settings > Company Settings > Activities. All your activity types will be listed on this screen.
- Click the “+ Activity Type” button to add a new activity type.
- Choose an icon and name for your new activity type and click “Save.”
Another important bit of activities are the activity priority labels. While you cannot edit or customize them, make sure you remember that they actually exist and that you can filter through them. Your priority labels will be visible in the calendar too, so it’s worth using them. This priority level can only be set manually though the interface, automations, but not via API.
Here are 10 examples of activities that we most commonly see implemented in Pipedrive accounts.
- Lunch
- Call
- Demo
- Free consultation
- Strategy session
- Video webinar
- Quote
- Event presentation
- Proposal
- Team orientation
- Proof of concept plan
- Contract creation and signing
Activity limitations and special cases
Note: An activity can only be linked to one lead, deal, or organization. However, there is no limit to the number of people an activity can be linked to.
It’s important to mark activities as done in a timely manner, as this affects the activity performance reports and metrics like the number of activities completed and started. Timely marking of activities as done is crucial for maintaining high-quality data in Pipedrive.
You can turn off the slightly annoying activitiy prompt that pops up whenever you add a new activitiy if you have anything higher tier than basic essential pricing plan. This popup is just implementation of the central central idea in Pipedrive’s concept of selling, and that is activity-based selling. Depending on how your structure your process, this can be slightly annoying, but just remember that if you have anything higher than essential plan, you can turn them off. If you’re on essential plan, you cannot enable these popups.
Systematize your deal loss reasons
Lost reasons are precisely what they mean: specific reasons why a deal at hand was lost.
By default, Pipedrive uses free-form lost reasons. This means that any of your sales representatives can provide their own explanation for why a deal was lost.
The upside of this approach is that it provides raw, unfiltered insights into why your deals aren’t converting. When aggregated, this data can reveal trends and causes for lost sales, offering insights into aspects you might not have been aware of. By cleaning and aggregating this data, you can identify trends within your sales, such as whether certain categories of customers are less likely to close deals at specific times of the year.
The downside is that the free-form lost reasons result in unstructured data, which has limited immediate value. To extract meaningful insights, you need to process this data, which requires resources.
A good compromise is to use free-form lost reasons during the initial stages of your company’s growth when you need to understand what’s not working. As you gain more clarity, transition to predefined lost reasons. This change allows you to categorize and analyze data more effectively once you can identify specific categories from the free-form entries.
Another good solution is to use a combination of predefined lost reasons and free-form entries. Create an exhaustive list of predefined reasons, but also allow free-form entries that are processed through a data pipeline to extract insights. This approach is recommended if you have resources to handle the processing of unstructured data (a feature included in our Pipedrive Booster 2.0, regardless of the pricing package).
Here’s a list of 16 potentially useful lost reasons that you can use as predefined options in your Pipedrive account. This list is part of our Pipedrive Booster package, which helps determine the most relevant reasons for your business or develop new ones as needed.
- Expectations not met
- Internal restructure
- Not interested
- Too expensive
- Timing not right
- Lost to competitor
- Decision-maker change
- Unclear value proposition
- Negative reviews
- Unacceptable contract terms
- Integration issues
- Customer went out of business
- Trust issues
- Poor customer service or pre-sales experience
- Technical difficulties during demo
- Geographical restrictions
Make sure to select and apply these lost reasons to your account. It’s important that they are clear and informative, as they will appear in the deal history of lost deals and in reports. Everyone in the company should understand why a deal was lost.
For the lost reasons you select, set up dedicated automation. We’ll cover this in the next part of this series.
The “Mark as Lost” prompt, which includes lost reasons, appears whenever you mark a deal as lost. This aligns with our original point: your Pipedrive pipeline should accurately represent the reality of the deal lifecycle, especially at critical points like won/lost moments. This ensures that Pipedrive saves this data correctly in the backend and uses it accurately for reporting, which we’ll discuss separately.
Finally, note that only deals admin users are permitted to set up predefined lost reasons.
Robust account structure directly impacts your Pipedrive ROI
In summary, an effective Pipedrive account structure is crucial for maximizing the value of your CRM system. The careful organization of pipelines, stages, custom fields, and lost reasons ensures that your sales processes are accurately reflected, facilitating better data management and reporting.
Photo attribution
As usual, the featured image of the article is a photograph that corresponds with the article’s topic. This time, the shoutout goes to Jr Korpa via Unsplash.