a:6:{i:0;s:7970:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for pricing analyst in chennai</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.bsrics.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.bsrics.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for pricing analyst in chennai</p>
					</div>
					</div>
					</section>
									<section id="middle">
				<div class="wrap" id="bodyFormatNT">
				<div class="row1 dt columns23"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls detail_pm_15"><!--MIDDLE ROW1 COL-2 STARTS-->
				
								<div class="pt10px">
				<div class="xxxlarge fw6 dif">Pricing Analyst</div>
									<p class="mt7px fw6">Chennai</p>
									
				<br>
				<p class="aj mt7px">Into Automobile Technical<br />
•	In depth knowledge on automobile parts<br />
•	In depth knowledge on Automobile technologies, for example Cruise Control and their parts, Lane keeping and their parts<br />
•	Having good knowledge on vehicles (like what Is F series, Europe Vehicle line etc.)<br />
•	Must be familiar with Ford service part number strategy. Candidate should be easily decoding the Service part number by viewing it like Prefix- Base-Suffix<br />
•	Must have Basic knowledge on Motorcraft and Omnicraft parts and Colour coding<br />
<br />
Into Technicalities<br />
•	Should be excellent in writing and communication skills<br />
•	Should be flexible in working in shifts<br />
•	Must be good at analytical thinking and understanding on parts business<br />
•	Must be familiar with internet searching methodology<br />
•	Must be familiar with “Competitive Benchmarking Process”<br />
•	Candidate should have knowledge on Microsoft all applications<br />
•	In depth knowledge on Microsoft excel 365,<br />
o	Filtering method<br />
o	V Lookup<br />
o	Conditional formatting<br />
o	Formulas<br />
o	Macro techniques. And many more……<br />
•	Assessing project requirements, and co-ordinate to team leader frequently to update the progress status<br />
•	Developing and Implementing Monthly pricing Projects and adhoc projects<br />
•	Interpreting and analysing the result data frequently<br />
•	Making improvements regularly in response to team lead feedback <br />
•	Working closely with team members<br />
•	Writing reports and documentation</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">3 - 9 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 2  Lac  50 Thousand  To  12  Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Analytic and Business Intelligence</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">Professional Degree, Other Bachelor Degree, Post Graduate Diploma</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Pricing Analyst</span>
												<span class="bdr dib p2px10px mr5px mt2px"> automobile maintenance</span>
												<span class="bdr dib p2px10px mr5px mt2px"> automobile repair</span>
												<span class="bdr dib p2px10px mr5px mt2px"> colour coating</span>
											</td>
					</tr>
									
				</table>
				</div>
				<br>
				<div class="pt20px">
				<p class="large fw6">About Company</p>
				<div class="mt10px">
				
									<table class="w100 formTable bdr0 mt5px">
											<tr>
						<td class="w195 alpha75 p5px">Contact Person</td>
						<td class="p5px">Mr.S.Buvanesh</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">Regus Business Centre, No.136, 3rd Floor, Shyamala Tower, Arcot Rd,</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">9176376488 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:admin@bsrisolutions.com"> admin@bsrisolutions.com </a></td>
						</tr>
										
					</table>
									
				<br />
				
									
					<div class="bdrT pt20px">
					<form name="frmvacdetail" method="post" action="enquiry-form-10009.htm">
					<input style="padding:7px 15px;" class="button b ffos" type="submit" value="APPLY NOW !" />
					<input type="hidden" name="catalog_mi" value="696341">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="974566"><input type="hidden" name="subject" value="Applied for Pricing Analyst">
					</form>
					</div>
			
									</div>
				</div>			
				
				<!--MIDDLE ROW1 COL-2 ENDS--> 
				</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Location</h2>
				</div>
				<div class="ic">
				<div class="mt10px">
									<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-chennai.htm" title="Jobs in Chennai">Chennai</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-mumbai.htm" title="Jobs in Mumbai">Mumbai</a> <b class="alpha50 bn small">(2)</b></span>
									</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Functional Area</h2>
				</div>
				<div style="padding:10px 18px;" class="ic">
									<p class="mb5px "><span class="fr">(12)</span><a href="jobs-in-application-programming-fid.htm" title="IT Software - Application Programming / Maintenance Jobs">IT Software - Application Prog...</a></p>
										<p class="mb5px "><span class="fr">(2)</span><a href="jobs-in-web-designing-programming-fid.htm" title="IT Software - Others Jobs">IT Software - Others</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-network-administration-security-fid.htm" title="IT Software - Network Administration, Security Jobs">IT Software - Network Administ...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-analytic-business-intelligence-fid.htm" title="Analytic and Business Intelligence Jobs">Analytic and Business Intellig...</a></p>
									
				</div>
				</div>
				</div>
				
				</div>
				<!--MIDDLE ROW1 COL-1 ENDS-->
				
				<!--MIDDLE ROW1 ENDS--> 
				</div>
				<br><br>
				</div>
				</section>
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
					<script>
	$.ajax({
	  url: "https://www.placementindia.com/job_posting_view.php",
	  type: "POST",
	  dataType: 'html',
	  data: {job_view_id: 'T0VmendIandhL3ZKaWhOM2lhR3piQT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:68:"Job openings for pricing analyst in chennai | BSRI Solutions Pvt Ltd";i:2;s:168:"Pricing Analyst Jobs,Pricing Analyst Jobs in Chennai,Pricing Analyst Vacancy in Chennai,Pricing Analyst jobs in India,Analytic and Business Intelligence jobs in Chennai";i:3;s:302:"Apply for Pricing Analyst Jobs in Chennai India - Pricing Analyst Vacancy  in Analytic and Business Intelligence field with 3 to 9 years Work Experience, Key Skills are Pricing Analyst, automobile maintenance, automobile repair, colour coating, Analytic and Business Intelligence jobs in Chennai  India";i:4;s:2282:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Pricing Analyst",
		  "baseSalary": " 2  Lac  50 Thousand  To  12  Lac ",
		  "description": "Into Automobile Technical
•	In depth knowledge on automobile parts
•	In depth knowledge on Automobile technologies, for example Cruise Control and their parts, Lane keeping and their parts
•	Having good knowledge on vehicles (like what Is F series, Europe Vehicle line etc.)
•	Must be familiar with Ford service part number strategy. Candidate should be easily decoding the Service part number by viewing it like Prefix- Base-Suffix
•	Must have Basic knowledge on Motorcraft and Omnicraft parts and Colour coding

Into Technicalities
•	Should be excellent in writing and communication skills
•	Should be flexible in working in shifts
•	Must be good at analytical thinking and understanding on parts business
•	Must be familiar with internet searching methodology
•	Must be familiar with “Competitive Benchmarking Process”
•	Candidate should have knowledge on Microsoft all applications
•	In depth knowledge on Microsoft excel 365,
o	Filtering method
o	V Lookup
o	Conditional formatting
o	Formulas
o	Macro techniques. And many more……
•	Assessing project requirements, and co-ordinate to team leader frequently to update the progress status
•	Developing and Implementing Monthly pricing Projects and adhoc projects
•	Interpreting and analysing the result data frequently
•	Making improvements regularly in response to team lead feedback 
•	Working closely with team members
•	Writing reports and documentation",
		  "educationRequirements": "Professional Degree, Other Bachelor Degree, Post Graduate Diploma",
		  "experienceRequirements": "3 - 9 Years",
		  "industry": "Analytic and Business Intelligence",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Tamil Nadu",
		      "addressRegion": "Chennai"
		    }
		  },
		 "qualifications": "Professional Degree, Other Bachelor Degree, Post Graduate Diploma",
		     "skills": "Pricing Analyst, automobile maintenance, automobile repair, colour coating"
		  }
		</script>
		";i:5;N;}