How to Make Money from Coding as a Beginner (5 Best Ways)

How to Make Money from Coding as a Beginner (5 Best Ways)

How to Make Money from Coding as a Beginner (5 Best Ways) blog

Coding skills are in demand across many industries. The world is digital and everything relies on software in one way or the other. So you can make money from coding even as a beginner learning the ropes.

In this article we’ll explore 5 proven ways to make money with your coding skills. We’ll cover simple and practical strategies you can apply right away at any coding skill level. So start learning to start earning!

Best Online Platforms to Earn from Coding

WebsiteType of WebsiteEarning Potential 
Freelance Platform$5-$100+/hourVisit Fiverr
FlexJobsJob BoardUp to $35/hourVisit FlexJobs
Freelance Platform$15-$100+/hourVisit Upwork

Takeaways
  • You can make money coding while learning as a beginner.
  • Coders can earn passive income from creating and selling digital products.
  • Coding Competitions allow you to earn while sharpening your technical skills.
  • A good portfolio can help you secure an entry-level coding job as a beginner.
  • You can build a long-term coding career from your early days as a beginner.

1. Freelancing

Freelancing is one of the fastest way for beginners to make money coding. It’s flexible and you can gain experience quickly. But how do you become a freelance developer? Let’s find out.

Finding Freelance Coding Jobs

You’ll find good coding jobs from popular freelance websites like Fiverr, Upwork and FlexJobs. These platforms are goldmines for beginners in coding. They expose you to many clients and thousands of coding projects.

Freelance coding job search on Fiverr marketplace

The projects on these platforms vary from simple website tweaks to more complex tasks like app development. These diverse job offers ensure you find a project you can handle at any skill level. So you can make money coding despite your experience.

Get Paid to Code on Fiverr!
Join Fiverr and offer your coding skills to clients worldwide. From small fixes to full-scale projects, earn $25 to $150+ per job and build your freelance career on your terms!
Visit Fiverr

Here’s how to stand out and get coding jobs on a freelance platform:

  1. Create a good profile highlighting your programming skills. It should contain your portfolio of completed projects, even free projects.
  2. Start with simple projects to build your reputation and earn positive reviews and high ratings. Learn HTML and other basic coding languages to start tasking.
  3. Use the platform’s filters to find jobs that match your skill level and interests.

Reach out to small businesses and use your family connections. Many small businesses need simple websites or basic app development. Explore your network and offer your services. This will help you establish better client relationships while you earn money programming.

Use social media to find freelance jobs. Join coding groups and engage with content in your field. Post regularly about your coding journey and projects to attract potential clients.

Building a Competitive Freelance Profile

Your freelance profile is your digital resume. You must make it stand out to attract high paying clients. Here’s how to do that:

  1. Create an attractive portfolio displaying your best work. Add screenshots, descriptions of the problems you solved and the technologies you used.
  2. Highlight important projects and skills. Even as a beginner show what you know and your willingness to learn.
  3. Write an impressive bio that tells your story. Highlight your passion for coding, learning journey and why clients should choose you.
  4. Add any relevant certifications or online coding courses you’ve completed.

PCEP Python certificate website

Remember clients always look for problem solvers not just coders. So emphasize your ability to understand and meet their needs.

Tips for Successful Freelancing

Tips for Successful Freelancing

Below are some important tips to help you when freelancing:

1. Charge Appropriately

Set competitive rates to thrive when starting. Research average rates for projects in your skill level and set your rates accordingly.

It’s often best to start with lower rates and increase as you gain experience and positive reviews. This way you can start making money coding while improving your programming skills.

2. Ensure Good Communication

Good communication with clients is important. Be clear about the project, timelines and deliverables. Ask questions about unclear tasks, guidelines or requirements.

Update your clients regularly with honest progress reports to build trust.

3. Be Time Conscious

Time management is key to success in freelancing. Use Trello or Asana to track your projects and deadlines. Break larger projects into smaller tasks for better handling.

time management illustration

4. Be Professional with Feedback

Feedback and revisions can be the difference. Be open to criticism and willing to change. This will get you repeat clients, good reviews and referrals.

Common Freelance Coding Projects for Beginners

Consider some of the best projects to start with as a freelance code:

  1. Building simple websites.
  2. Creating landing pages.
  3. Basic WordPress customization.
  4. Bug fixes and small feature additions.

These are the projects to hone your skills while you earn. As you complete them you’ll build confidence and a portfolio to get more complex and profitable projects.

2. Building and Selling Digital Products

You could earn passive income from digital products. It’s one of the most scalable ways of making money coding. You do this by building and selling a product multiple times to generate a sustainable passive income stream.

Types of Digital Products

Website templates

Depending on your skills, you could design and sell any of these:

  1. Website templates and themes: Create website templates for WordPress, Shopify, or Squarespace.
  2. WordPress plugins: Develop tools that add functions to WordPress sites and address common needs.
  3. Mobile apps and games: Create simple apps or games that solve problems or entertain users.
  4. E-books and coding courses: Share your knowledge with educational content for aspiring coders.

Types of Digital Products

Each product can serve different markets and skill levels, allowing you to diversify your income streams.

Hostinger: Top Website Builder for Beginners

Visit Site Coupons6

Development Process

Start your product development by identifying a need or market trend. Next, research popular products in your chosen niche to find gaps. Then, consider how your products can fill these gaps. You could also improve existing products for the same purpose.

A developer is writing on a whiteboard

When planning for a product, consider your target audience and their needs. Write down your ideas and create a development roadmap. Break the project into smaller, manageable tasks.

While creating the product, focus on quality and user experience. Make responsive and easily customizable templates. For plugins and apps, prioritize functionality and ease of use.

Thoroughly test your product. Consider using beta testing with a small group of users. Their feedback will be invaluable for refining your offering before launch.

Marketplaces for Selling Digital Products

There are ideal marketplaces for different products to optimize sales. Below are some good examples:

  1. ThemeForest and CodeCanyon: Here, you can sell website templates, themes, and plugins.
  2. App Store and Google Play: These are the most popular mobile app and game stores.
  3. Gumroad and Udemy: Sell your e-books and online courses on these platforms.

Udemy website homepage

Each platform has a specific submission process and quality standards. Research these requirements thoroughly before submitting your product.

Start Creating and Selling Your Online Course Today
Teach what you know and earn on Udemy! Create courses on topics in demand and reach a global audience.
Visit Udemy

Monetization Strategies

You can monetize your product with an effective pricing model. Consider different pricing models to try:

  1. One-time purchases: Charge a single fee for your product. This business model works well for templates and simple plugins.
  2. Subscription models: These offer ongoing updates and support for a recurring fee.
  3. Freemium offerings: Provide a basic version for free and charge for premium features. It attracts users and upsells to paid versions.

Marketing Your Digital Products

Effective marketing is important for your digital products. Consider applying any of these strategies:

search engine optimization illustration

  1. Use social media and developer communities. Share your product on Twitter, LinkedIn, and relevant Reddit communities.
  2. Implement content marketing and SEO strategies. Create blog posts, tutorials, or videos highlighting your product’s features and benefits.
  3. Consider paid advertising options. Paid ads like Google and Facebook Ads can help you reach a wider audience.

Remember, marketing is continuous. Engage with your audience and collect feedback to improve your products and digital marketing strategies.

3. Participating in Coding Competitions and Hackathons

Coding competitions and hackathons are good opportunities to challenge yourself, learn new skills, and earn money. They could be online algorithmic challenges or in-person team competitions.

Let’s explore how you can apply this strategy.

Popular Platforms

kaggle website

Many popular platforms host coding competitions and hackathons, including:

  1. HackerRank, CodeChef, and TopCoder: These platforms host various coding challenges and competitions with cash prizes.
  2. Kaggle: This platform offers competition with attractive prizes for data science enthusiasts.
  3. Local and online hackathons: Many companies and organizations host hackathons. You can compete here for exciting prizes.

Types of Competitions

You’ll find different competitions requiring specific skills, so just knowing how to code online may not be enough. Here are some of the most popular coding tournaments:

  1. Algorithm challenges: They involve difficult algorithmic problems that test your problem-solving skills.
  2. Full-stack development contests: These coding contests require a full-stack developer to build complete web apps within a specific time.
  3. AI and machine learning competitions: You must develop models to solve real-world problems using provided datasets.

A coding competition in progress

Each competition type builds different skills and offers different career opportunities.

Benefits of Competitions

Participating in these competitions offers multiple advantages, such as:

  1. Cash prizes and recognition.
  2. Skill improvement.
  3. Networking.
  4. Resume building.

Benefits of Competitions

Preparing for Coding Competitions

To perform well in coding contests:

  1. Practice regularly: Use LeetCode or HackerRank to solve daily coding challenges.
  2. Study algorithms and data structures: These basics help in many competitions.
  3. Join study groups or find a mentor: Collaborating with others can accelerate your learning and preparation.
  4. Familiarize yourself with competition websites: Each website has its interface and rules. Practice on the one you plan to compete on.

Hackerrank.com website

4. Developing Mobile Apps and Games

Beginner coders can make good money from mobile apps. Smartphones are everywhere, creating higher demands for new apps. You can create a good passive income stream when you create mobile applications.

Understanding the Mobile App Market

The Apple App Store and Google Play Store are the primary marketplaces for mobile apps. They have many apps and users, this presents opportunities and challenges for new software developers.

The current trends in mobile app development are:

  1. Augmented Reality (AR) apps.
  2. Health and fitness tracking apps.
  3. Productivity tools.
  4. Educational apps.
  5. Mobile games.

To develop successful apps, research top ads, read industry reports, and find real problems you can solve with a mobile app.

Developing Your First App

Developer is coding a mobile app on a pc

As a beginner, you must choose between native and cross-platform development:

  1. Native development involves creating separate applications for iOS and Android. That involves using platform-specific languages like Swift for iOS and Kotlin for Android.
  2. Cross-platform development allows you to create a single codebase for both platforms. React Native and Flutter are examples of popular frameworks here.

Cross-platform development usually offers a quicker path to market for beginners. React Native is one programming language that’s especially beginner-friendly if you’re familiar with JavaScript.

The basic app development process involves the following:

  1. Idea generation and market research.
  2. Planning and wireframing.
  3. Design and UI creation.
  4. Coding and development.
  5. Testing and debugging.
  6. Submission to app stores.

Remember, UX and UI designs are important. Poor design can cause negative reviews and low adoption even if your app functions well.

Monetization Strategies for Mobile Apps

There are many ways to monetize your app. You can explore any of the following:

  1. Free apps with in-app advertisements.
  2. Freemium models with in-app purchases.
  3. Paid apps.
  4. Subscription-based models.

Monetization Strategies

Choose a monetization strategy that aligns with your app’s value proposition and target audience to maximize earnings.

Game Development for Beginners

Developing games is an exciting way for beginner coders and software developers to make money programming. As a game developer, start with simple games to learn the basics. Here are some tips to guide you:

Godot website

  1. Use free game engines like Unity or Godot with large tech community support.
  2. Start with classic games like Pong or Snake to understand game mechanics.
  3. Slowly add complex features like scoring systems, multiple levels, and power-ups.

When designing games, think about monetization from the start. Consider how to add in-app purchases or ads without disrupting the player experience.

Marketing Your Mobile App or Game

Effective marketing is important for your app’s success. Consider some marketing tips to guarantee success:

Online marketing diagram on a tablet

  1. Implement App Store Optimization (ASO) techniques. Use relevant keywords in your app title and description. Create compelling screenshots and videos and encourage user ratings and reviews.
  2. Promote your app on social media. Create social accounts for your app to share updates and user testimonials.
  3. Contact tech bloggers and app review sites to promote your game.
  4. Use influencer marketing to reach your target audience.
  5. Use paid advertising well. Start with small budgets to test ad performance.

Challenges and Considerations

Developing and launching an app comes with its challenges. Some of these include:

  1. Strict app store policies and guidelines: These policies are often frequently updated, so stay informed to avoid rejection.
  2. Managing updates and user feedback: This is an ongoing process. You must fix bugs, add features, and respond to user reviews.
  3. Scaling issues: As your app grows, you must expand to meet new demands. Ensure your backend infrastructure can handle increased user load.

5. Entry-Level Coding Jobs and Internships

Most coding opportunities, like freelancing and digital product creation, offer flexibility. However, you’ll enjoy stability, mentorship, and a good growth structure with an entry-level coding job.

Types of Entry-Level Positions

There are many entry-level positions you can start as a beginner coder, such as:

  1. Junior Web Developer: Junior web developers work on front-end, back-end, or full-stack web development. In this role, you may build new features, fix bugs, or maintain existing websites.
  2. QA or Software Tester: These positions focus on maintaining software quality. You’ll design and run tests, report bugs, and work with developers to improve product quality.
  3. Technical Support Specialist: This role involves assisting users with technical issues. These are usually simple issues that require basic coding knowledge to understand and solve.
  4. Junior Mobile App Developer: It is similar to web development but focuses on creating applications for iOS or Android platforms.

A senior programmer is tutoring a young colleague

These roles offer excellent opportunities to gain experience and learn from more seasoned professionals.

Finding Entry-Level Opportunities

Below are some effective ways to find entry-level coding jobs:

  1. Use job boards like LinkedIn, Indeed, and Stack Overflow and filter for entry-level or junior positions.
  2. Attend local tech meetups and events. They often have a job board or announcement sessions. Plus, you can network to find opportunities.
  3. Explore university career centers and internship programs. You can try this even if you’re not a current student. Many centers willingly help recent graduates or self-taught coders.
  4. Follow tech companies you love on social media. They often post job openings on their channels.
  5. Reach out to startups. They’re often willing to hire less experienced developers with potential and enthusiasm.

Remember, many companies don’t advertise job openings as entry-level jobs. So, apply for positions you see, even those requiring a few years of experience. A strong portfolio can earn you a chance!

Succeeding in Your First Coding Role

It’s insufficient to learn how to find a job; you must know how to keep it. After landing your first coding job, apply the following suggestions to thrive in it:

  1. Embrace a growth mindset: Be open to feedback and see challenges as learning opportunities.
  2. Seek mentorship within your organization: Even if your company doesn’t have a mentorship program, find an experienced developer to guide you.
  3. Balance coding with soft skill development: Build your communication skills, learn to work in a team, and understand project marketing.
  4. Continue learning: Stay updated with new technologies and best practices in your field.
  5. Document your achievements and learning experiences: This practice will help in future job searches or negotiations.

IONOS: The Best Affordable Website Builder

Visit Site Coupons6

Additional Ways to Earn While Learning

While pursuing the strategies we’ve discussed, many other ways exist to earn extra income and gain valuable experience. Let’s discuss some you could explore:

Teaching and Tutoring

Even as a beginner, you likely know that others do not. Therefore, you could:

  1. Offer coding lessons to complete beginners. You can start with basics like HTML and CSS, which are easy to teach.
  2. Create YouTube tutorials on coding concepts you’ve mastered. These tutorials allow you to help others while reinforcing your understanding. You could also earn from selling online courses.
  3. Host coding workshops or study groups in your local community. Libraries and community centers will welcome such initiatives.
  4. Answer questions on platforms like Stack Overflow or Reddit’s programming subreddits. While this does not directly pay you, it builds your reputation and can lead to opportunities.

Teaching others is an excellent way to solidify your knowledge. It forces you to break down complex concepts into simpler terms, which deepens your understanding.

Bug Bounty Programs

Bug bounty programs offer rewards for finding and reporting security vulnerabilities in software and websites. This strategy is profitable but requires a specific skill set.

bugcrowd website

Here’s a guide to help you start earning from these bounty programs:

  1. Sign up on platforms like HackerOne and Bugcrowd. These websites connect security researchers with companies offering bounties.
  2. Start with easier targets and gradually move up to more complex systems.
  3. Learn about common security issues and how to identify them.
  4. Practice ethical hacking techniques in controlled environments.

Remember, bug bounty hunting requires a strong ethical foundation. Always follow the program’s rules and never attempt to exploit weaknesses you discover.

Micro-tasks and Coding Gigs

You can earn quick money from micro-tasks involving coding. Below are a few sites to find these tasks.

  1. Fiverr allows you to offer quick coding services to paying clients.
  2. Amazon Mechanical Turk offers many micro-tasks. Some involve data entry or basic coding.
  3. Appen offers coding-related tasks for artificial intelligence training or web research.

Gigs on these platforms may not pay much individually. However, they can trickle down to create a reasonable income. Plus, they also provide valuable experience for you!

Developing Your Coding Skills

Continuous learning is important in the fast-paced coding world. In this section, we’ll explore tips to sharpen your technical skills and keep them relevant as you grow.

Choosing Your Tech Stack

As a beginner, focus on a specific tech stack to avoid overwhelming yourself. These are the most popular stacks for beginners:

  1. MERN (MongoDB, Express.js, React, Node.js): Great for full-stack JavaScript development.
  2. MEAN (MongoDB, Express.js, Angular, Node.js): Similar to MERN but uses Angular for front-end.
  3. Laravel (PHP framework): Excellent for backend development and building robust web applications.

When specializing:

  1. Consider the market demand for your desired area.
  2. Think about your interests and strengths. Choose front-end development l if you enjoy visual design and back-end if you prefer working with data and algorithms.
  3. Explore job postings for your desired roles and see the most requested skills.

Learning Resources

Take advantage of the vast learning resources available. These include:

Online Courses

You could develop and sharpen your coding skills with online courses. Here’s where to find the best:

  • Udemy offers affordable, comprehensive courses on many programming topics.
  • Coursera provides university-level courses, some with certificates.
  • freeCodeCamp offers a free, project-based curriculum.

freecodecamp website

Coding Boot Camps

Boot camps offer intensive programs that can quickly get you job-ready. However, they are usually expensive. So, consider the ROI and choose one with a good job placement rate and alumni network.

Books and Documentation

Official documentation for languages and frameworks is a great resource. Similarly, books provide deep knowledge and are good for offline learning.

Interactive platforms

You can improve your coding skills from other interactive platforms. Consider two examples below:

  • Codecademy offers coding practice in your browser.
  • LeetCode and HackerRank provide coding challenges to sharpen your skills.

Building a Learning Routine

When learning to code, you must develop consistency. This quality will help you grow as a coder and reach your goals. A good earning routine can help you become consistent. And here’s how to build one:

  1. Set realistic goals with timelines and break these goals into smaller, achievable milestones.
  2. Allocate specific times for learning. Treat it like an important commitment.
  3. Use techniques like the Pomodoro method to maintain focus while studying.
  4. Join coding challenges to build motivation.
  5. Balance learning with applying your skills in real software projects.

Your progress may seem slow, but consistent effort will always yield results.

Overcoming Challenges

A man is solving rubic's cube

Learning to code while exploring a coding side hustle can be challenging. Below are some common challenges you may face and how to tackle them:

Dealing with Imposter Syndrome

Imposter syndrome is common among developers, especially beginners. To combat it:

  1. Recognize that your feelings are normal but do not reflect your actual abilities.
  2. Record your achievements and review them whenever you feel doubtful.
  3. Remember that everyone starts as a beginner. Remind yourself that even experienced developers continue learning.
  4. Focus on your progress, and don’t compare yourself to others.
  5. Get support from peers or mentors who encourage you.

Balancing Learning and Earning

Time management is important when you’re trying to make money while learning. Use these tips to improve your time management skills:

  1. Prioritize tasks based on learning value and earning potential.
  2. Use Trello or Asana to organize your projects and learning goals.
  3. Set boundaries to ensure you don’t neglect learning or earning opportunities.
  4. Take on earning projects that allow you to practice new skills you’re learning.
  5. Be realistic about how much you can handle. Doing fewer things well is better than spreading yourself too thin.

Remember, your learning journey is a marathon, not a sprint. Pace yourself to avoid burnout.

Long-term Career Development

While utilizing immediate earning opportunities, look out for long-term career prospects. This section explores the possibility of career development in coding and how to do it.

Building a Personal Brand

A strong personal brand can open doors to better opportunities in coding. Follow these five steps to build your personal brand:

  1. Create an outstanding GitHub profile. Then, regularly contribute to open-source projects and display your best works.
  2. Maintain an active presence on LinkedIn. Share your projects, write articles about your coding journey, and engage with industry content.
  3. Start a coding blog or YouTube channel to share your knowledge and experiences.
  4. Attend and speak at local tech meetups or conferences to build your reputation and network.
  5. Develop a unique perspective or specialty that differentiates you from other developers.

Planning for Career Growth

Consider where you want your coding career to go and start laying the foundation. You can do the following while learning:

  1. Research different career paths for software engineers.
  2. Set long-term goals and break them down into actionable steps.
  3. Stay informed about industry trends and emerging technologies.
  4. Obtain relevant certifications to boost your credentials.
  5. Build relationships with mentors who can guide your career development.

Conclusion

If you want to get paid to learn code, that dream will never come true. However, you can start earning a good income as a beginner coder. This article has shown five effective strategies for earning as a beginner coder and three additional ways to earn while learning. Each path offers unique opportunities and challenges. Choose yours today to start a successful career in coding!

If you want to establish a personal brand, create a website to showcase it. At HostAdvice, we recommend the best hosting services to suit your needs. Invest in a reliable hosting provider to ensure your website runs smoothly and performs optimally.

Business
Web Hosting
best option

Next Steps: What Now?

After learning how to make money coding, follow these practical steps to start earning:

  1. Choose a strategy that aligns with you and implement it.
  2. Build a learning schedule and stick to it.
  3. Start building your portfolio with personal projects or volunteer work.
  4. Join coding communities online for support and networking.
  5. Apply for freelance gigs or entry-level positions, even if you’re not 100% ready.

Remember, the best way to learn is by doing. Don’t wait until you feel fully prepared; start now and learn as you go.

Further Reading & Useful Resources

Looking for alternative ways to make money online? Here are a few suggestions:

  1. How to Make a Website an App: Discover how to turn your website into a fully functional mobile app and reach a wider audience.
  2. 21 Profitable Tech Side Hustles: Discover how to turn your website into a fully functional mobile app and reach a wider audience.
  3. How to Create a Dating App: Discover how to turn your website into a fully functional mobile app and reach a wider audience.
  4. 49 Proven Online Business Ideas: Find inspiration with this extensive list of online business ideas you can start with minimal investment.
  5. Side Hustles for Men: Check out practical and profitable side hustle ideas specifically tailored for men looking to earn extra income.
  6. How to Make Money From Open-Source Software: Understand how developers can generate income by contributing to and managing open-source projects.
  7. How to Sell Software Online: Get step-by-step guidance on packaging, marketing, and selling your software to a global audience.
  8. Earn from Blogging on Facebook: Learn how to start your own blog on Facebook and earn from it.
  9. How to Make Money with ChatGPT: Explore other innovative ways to earn money online.
  10. How to Make Money Through Affiliate Marketing: Learn simple ways to start and earn from affiliate marketing online.

Frequently Asked Questions

Is coding a good side hustle?

Coding is an excellent side hustle. It offers flexibility and the potential for income. Whether through freelancing, building your own apps, or participating in competitive programming, there are numerous ways to earn extra income through coding.

Do self-taught coders get hired?

Yes, clients and companies hire self-taught coders. Many companies value skills and experience over formal education. They often value a strong portfolio and the ability to pass technical interviews over having a computer science degree.

Is coding a high-paying skill?

Coding is a high-paying skill. The demand for skilled computer programmers often surpasses supply, leading to competitive salaries. Even entry-level positions in many markets offer higher salaries compared to other industries.

Can I earn money with Python?

Absolutely. Python is one of the most in-demand programming languages. You can earn money with Python through various means, including building a website with Python

Handling Webhook Traffic at Scale in n8n

N8n webhook scaling breaks down faster than you'd expect. When request volumes spike, concurrency pressure builds, and executions start backin...
8 min read
Christi Gorbett
Christi Gorbett
Content Marketing Specialist

Running n8n in Production - Stability Checklist

Getting workflows live is only half the battle. n8n production stability is what keeps your automations running reliably when it actually matt...
8 min read
Christi Gorbett
Christi Gorbett
Content Marketing Specialist

CI/CD Pipelines for Deploying n8n Updates

Manually pushing n8n updates across environments is error-prone and time-consuming. A well-configured n8n CI/CD pipeline changes that. It auto...
8 min read
Christi Gorbett
Christi Gorbett
Content Marketing Specialist

Running n8n with Docker Compose vs Bare-Metal VPS

Choosing between n8n Docker Compose vs bare metal VPS comes down to more than personal preference. It affects how you deploy, scale, and maint...
8 min read
Christi Gorbett
Christi Gorbett
Content Marketing Specialist
Click to go to the top of the page
Go To Top
HostAdvice.com provides professional web hosting reviews fully independent of any other entity. Our reviews are unbiased, honest, and apply the same evaluation standards to all those reviewed. While monetary compensation is received from a few of the companies listed on this site, compensation of services and products have no influence on the direction or conclusions of our reviews. Nor does the compensation influence our rankings for certain host companies. This compensation covers account purchasing costs, testing costs and royalties paid to reviewers.